Files
my-links/app/collections/controllers/delete_collection_controller.ts
2025-08-07 19:42:05 +02:00

30 lines
1.0 KiB
TypeScript

import BaseCollectionController from '#collections/controllers/base_collection_controller';
import { CollectionService } from '#collections/services/collection_service';
import { deleteCollectionValidator } from '#collections/validators/delete_collection_validator';
import { inject } from '@adonisjs/core';
import { HttpContext } from '@adonisjs/core/http';
@inject()
export default class DeleteCollectionController extends BaseCollectionController {
constructor(private collectionService: CollectionService) {
super();
}
async render({ inertia }: HttpContext) {
const collectionId = await this.validateCollectionId();
if (!collectionId) return;
const collection =
await this.collectionService.getCollectionById(collectionId);
return inertia.render('collections/delete', {
collection,
});
}
async execute({ request, response }: HttpContext) {
const { params } = await request.validateUsing(deleteCollectionValidator);
await this.collectionService.deleteCollection(params.id);
return response.redirectToNamedRoute('dashboard');
}
}