Files
my-links/app/controllers/links/create_link_controller.ts
2025-12-10 03:18:03 +01:00

31 lines
954 B
TypeScript

import { CollectionService } from '#services/collections/collection_service';
import { LinkService } from '#services/links/link_service';
import { createLinkValidator } from '#validators/links/create_link_validator';
import { inject } from '@adonisjs/core';
import { HttpContext } from '@adonisjs/core/http';
@inject()
export default class CreateLinkController {
constructor(
private linkService: LinkService,
private collectionsService: CollectionService
) {}
async render({ inertia }: HttpContext) {
const collections =
await this.collectionsService.getCollectionsForAuthenticatedUser();
return inertia.render('links/create', { collections });
}
async execute({ request }: HttpContext) {
const { collectionId, ...payload } =
await request.validateUsing(createLinkValidator);
await this.linkService.createLink({
...payload,
collectionId,
});
return this.collectionsService.redirectToCollectionId(collectionId);
}
}