Skip to content
Snippets Groups Projects
Commit a71d1779 authored by Lee WooChang's avatar Lee WooChang
Browse files

feat: pc 삭제 기능 추가

parent 68d87585
Branches
No related tags found
1 merge request!22pc 삭제 기능 추가
Pipeline #10878 failed
...@@ -81,6 +81,18 @@ const myRepository = { ...@@ -81,6 +81,18 @@ const myRepository = {
const { rowCount } = await pool.query(query, values); const { rowCount } = await pool.query(query, values);
return rowCount > 0; return rowCount > 0;
}, },
async deleteCombinationById(combinationId) {
const query = `
UPDATE combinations
SET owner_id = NULL
WHERE id = $1
`;
const values = [combinationId];
const { rowCount } = await pool.query(query, values);
return rowCount > 0;
}
}; };
export default myRepository; export default myRepository;
...@@ -21,6 +21,31 @@ myRouter.get( ...@@ -21,6 +21,31 @@ myRouter.get(
}) })
); );
myRouter.delete(
'/pc/:pcId',
authMiddleware,
wrapAsync(async (req, res) => {
const { pcId } = req.params;
const userId = req.user?.userId;
if (!userId) {
throw new ReportableError(400, '유효한 사용자 정보가 없습니다.');
}
if (!pcId) {
throw new ReportableError(400, 'PC ID가 필요합니다.');
}
const result = await myService.deleteUserPC(userId, pcId);
if (result.success) {
return res.sendResponse(result.message, 200, {});
} else {
throw new ReportableError(500, 'PC 삭제 중 문제가 발생했습니다.');
}
})
);
myRouter.patch( myRouter.patch(
'/pc/:combinationId/name', '/pc/:combinationId/name',
authMiddleware, authMiddleware,
......
...@@ -178,6 +178,36 @@ const myService = { ...@@ -178,6 +178,36 @@ const myService = {
return await ShareRepository.createCombinationUuid(combinationId); return await ShareRepository.createCombinationUuid(combinationId);
}, },
async deleteUserPC(userId, pcId) {
if (!userId || !pcId) {
throw new ReportableError(400, '유효한 사용자 ID 및 PC ID가 필요합니다.');
}
const userExists = await myRepository.checkUserExists(userId);
if (!userExists) {
throw new ReportableError(404, '사용자를 찾을 수 없습니다.');
}
const combination = await myRepository.getCombinationById(pcId);
if (!combination) {
throw new ReportableError(404, '해당 PC 조합을 찾을 수 없습니다.');
}
if (combination.userId !== userId) {
throw new ReportableError(403, '해당 PC 조합에 대한 권한이 없습니다.');
}
const deleted = await myRepository.deleteCombinationById(pcId);
if (!deleted) {
throw new ReportableError(500, 'PC 조합 삭제 중 문제가 발생했습니다.');
}
return {
success: true,
message: 'PC 조합이 성공적으로 삭제되었습니다.',
};
},
}; };
export default myService; export default myService;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment