feat(saves): Удаление публикаций
This commit is contained in:
@ -175,6 +175,51 @@ export const savesController = new Elysia({ prefix: '/saves' })
|
||||
}
|
||||
)
|
||||
|
||||
.delete(
|
||||
'/:id',
|
||||
async ({ params: { id }, user, set }) => {
|
||||
if (!user) {
|
||||
set.status = 401;
|
||||
return { error: 'Unauthorized' };
|
||||
}
|
||||
|
||||
const saveId = Number(id);
|
||||
if (isNaN(saveId)) {
|
||||
set.status = 400;
|
||||
return { error: 'Invalid save ID' };
|
||||
}
|
||||
|
||||
try {
|
||||
await savesService.delete(saveId, user.id);
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: 'Сейв успешно удален',
|
||||
};
|
||||
} catch (error) {
|
||||
if (error instanceof Error && error.message.includes('not found')) {
|
||||
set.status = 404;
|
||||
return { error: 'Save not found' };
|
||||
}
|
||||
set.status = 500;
|
||||
return {
|
||||
error: error instanceof Error ? error.message : 'Failed to delete save'
|
||||
};
|
||||
}
|
||||
},
|
||||
{
|
||||
params: t.Object({
|
||||
id: t.String(),
|
||||
}),
|
||||
detail: {
|
||||
tags: ['Saves'],
|
||||
summary: 'Delete save',
|
||||
description: 'Deletes a save by ID (owner only)',
|
||||
},
|
||||
auth: true
|
||||
}
|
||||
)
|
||||
|
||||
.patch(
|
||||
'/:id',
|
||||
async ({ params: { id }, body, user, set }) => {
|
||||
|
||||
Reference in New Issue
Block a user