From 2790d731fbb28905e7758b2fabd063db5dd02a3c Mon Sep 17 00:00:00 2001 From: mingrammer <mingrammer@gmail.com> Date: Sun, 8 Dec 2024 23:48:27 +0900 Subject: [PATCH] fix: events and crews not returned properly --- .../apiserver/controllers/userController.js | 78 +++++++++++++------ 1 file changed, 56 insertions(+), 22 deletions(-) diff --git a/webapp/backend/apiserver/controllers/userController.js b/webapp/backend/apiserver/controllers/userController.js index 54da91b..898238f 100644 --- a/webapp/backend/apiserver/controllers/userController.js +++ b/webapp/backend/apiserver/controllers/userController.js @@ -323,24 +323,40 @@ exports.listUserCrews = async (req, res) => { } const crews = await UserCrew.findAll({ - where: {userID: userID}, + where: { userID: userID }, include: [ { model: Crew, attributes: [ - 'crewID', 'name', 'createdDate', 'regionID', 'sportTypeId', - 'capacity', 'fee_krw', 'description', - [ - sequelize.literal(`( - SELECT COUNT(*) - FROM UserCrew AS uc - WHERE uc.crewID = Crew.crewID - )`), - 'memberCount', - ], + 'crewID', + 'name', + 'createdDate', + 'regionID', + 'sportTypeId', + 'capacity', + 'fee_krw', + 'description', + ], + include: [ + { + model: UserCrew, + attributes: [], + }, ], }, ], + attributes: { + include: [ + [ + sequelize.literal(`( + SELECT COUNT(*) + FROM UserCrew AS uc + WHERE uc.crewID = UserCrew.crewID + )`), + 'memberCount', + ], + ], + }, limit: listItemsPerPage, offset: parseInt(page, 10) * listItemsPerPage, }); @@ -366,6 +382,8 @@ exports.listUserEvents = async (req, res) => { const page = req.query.page || 0; + console.log(userID); + try { const user = await User.findByPk(userID); @@ -374,24 +392,40 @@ exports.listUserEvents = async (req, res) => { } const events = await EventParticipants.findAll({ - where: {userID: userID}, + where: { userID: userID }, include: [ { model: Event, attributes: [ - 'eventID', 'name', 'eventDate', 'regionID', 'sportTypeId', - 'capacity', 'feeCondition', 'createdDate', - [ - sequelize.literal(`( - SELECT COUNT(*) - FROM EventParticipants AS ep - WHERE ep.eventID = Event.eventID - )`), - 'participantCount', - ], + 'eventID', + 'name', + 'eventDate', + 'regionID', + 'sportTypeId', + 'capacity', + 'feeCondition', + 'createdDate', + ], + include: [ + { + model: EventParticipants, + attributes: [], + }, ], }, ], + attributes: { + include: [ + [ + sequelize.literal(`( + SELECT COUNT(*) + FROM EventParticipants AS ep + WHERE ep.eventID = EventParticipants.eventID + )`), + 'participantCount', + ], + ], + }, limit: listItemsPerPage, offset: parseInt(page, 10) * listItemsPerPage, }); -- GitLab