Controller
import { Controller, Get, Post, AdminOnly, ResultMapper } from '@soapjs/soap-express';
import { Inject } from '@soapjs/soap';
import { Request, Response } from 'express';
@Controller('/comics')
export class ComicsController {
constructor(
@Inject(ListComicsUseCase.Token) private readonly listComics: ListComicsUseCase,
@Inject(CreateComicUseCase.Token) private readonly createComic: CreateComicUseCase,
) {}
@Get('/')
async list(req: Request, res: Response): Promise<void> {
const result = await this.listComics.execute({ publisher: req.query.publisher as string });
ResultMapper.toResponse(result, res);
}
@Post('/')
@AdminOnly()
async create(req: Request, res: Response): Promise<void> {
const result = await this.createComic.execute(req.body);
ResultMapper.toResponse(result, res, { successStatus: 201 });
}
}Last updated