refactor(backend): add status constants and update code to use them

- Create constants/statuses.js with MATCH_STATUS, SUGGESTION_STATUS
- Update routes/dashboard.js to use MATCH_STATUS
- Update routes/matches.js to use MATCH_STATUS
- Update routes/events.js to use SUGGESTION_STATUS
- Update services/matching.js to use SUGGESTION_STATUS
- Update tests to use constants
This commit is contained in:
Radosław Gierwiało
2025-11-23 22:40:54 +01:00
parent 408317b974
commit 0ca79b6c7d
9 changed files with 56 additions and 18 deletions

View File

@@ -8,6 +8,7 @@ const router = express.Router();
const { authenticate } = require('../middleware/auth');
const { PrismaClient } = require('@prisma/client');
const { getEventsOnlineCounts } = require('../socket');
const { MATCH_STATUS } = require('../constants');
const prisma = new PrismaClient();
@@ -101,7 +102,7 @@ router.get('/', authenticate, async (req, res, next) => {
{ user1Id: userId },
{ user2Id: userId },
],
status: 'accepted',
status: MATCH_STATUS.ACCEPTED,
},
include: {
user1: {
@@ -219,7 +220,7 @@ router.get('/', authenticate, async (req, res, next) => {
const incomingRequests = await prisma.match.findMany({
where: {
user2Id: userId,
status: 'pending',
status: MATCH_STATUS.PENDING,
},
include: {
user1: {
@@ -298,7 +299,7 @@ router.get('/', authenticate, async (req, res, next) => {
const outgoingRequests = await prisma.match.findMany({
where: {
user1Id: userId,
status: 'pending',
status: MATCH_STATUS.PENDING,
},
include: {
user2: {

View File

@@ -3,6 +3,7 @@ const { prisma } = require('../utils/db');
const { authenticate } = require('../middleware/auth');
const { getIO } = require('../socket');
const matchingService = require('../services/matching');
const { SUGGESTION_STATUS } = require('../constants');
const router = express.Router();
@@ -1122,8 +1123,8 @@ router.post('/:slug/run-matching', authenticate, async (req, res, next) => {
const count = await matchingService.saveMatchingResults(event.id, suggestions);
// Get statistics
const notFoundCount = suggestions.filter(s => s.status === 'not_found').length;
const matchedCount = suggestions.filter(s => s.status === 'pending').length;
const notFoundCount = suggestions.filter(s => s.status === SUGGESTION_STATUS.NOT_FOUND).length;
const matchedCount = suggestions.filter(s => s.status === SUGGESTION_STATUS.PENDING).length;
res.json({
success: true,

View File

@@ -2,6 +2,7 @@ const express = require('express');
const { prisma } = require('../utils/db');
const { authenticate } = require('../middleware/auth');
const { getIO } = require('../socket');
const { MATCH_STATUS } = require('../constants');
const router = express.Router();
@@ -98,7 +99,7 @@ router.post('/', authenticate, async (req, res, next) => {
user1Id: requesterId,
user2Id: targetUserId,
eventId: event.id,
status: 'pending',
status: MATCH_STATUS.PENDING,
},
include: {
user1: {
@@ -534,7 +535,7 @@ router.put('/:slug/accept', authenticate, async (req, res, next) => {
const updated = await tx.match.update({
where: { slug },
data: {
status: 'accepted',
status: MATCH_STATUS.ACCEPTED,
roomId: chatRoom.id,
},
include: {
@@ -828,7 +829,7 @@ router.post('/:slug/ratings', authenticate, async (req, res, next) => {
// Both users have rated - mark match as completed
await prisma.match.update({
where: { id: match.id },
data: { status: 'completed' },
data: { status: MATCH_STATUS.COMPLETED },
});
}