import { Body, Controller, Middlewares, Post, Response, Route, SuccessResponse } from "tsoa"; import { ApiValidationError } from "../../Models/Server.Error.model"; import { CollaboratorScheduleDetailsParams, CollaboratorScheduleDetailsView, } from "../../Models/AdminAssistant/AdminAssistant.Interface"; import { authenticateMiddleware } from "../../middleware/authentication"; import { AdminAssistantService } from "./AdminAssistant.Service"; @Route("admin-assistant/collaborator-schedule-details") @Middlewares(authenticateMiddleware) export class GetCollaboratorScheduleDetailsController extends Controller { @Response(500, "Ha ocurrido un error") @SuccessResponse(200, "Done") @Post() public async getCollaboratorScheduleDetails( @Body() requestBody: CollaboratorScheduleDetailsParams ): Promise { try { const details = await new AdminAssistantService().getCollaboratorScheduleDetails(requestBody); this.setStatus(200); return details; } catch (e) { const errorOccurred: Error = e as Error; this.setStatus(500); return new ApiValidationError(500, errorOccurred.message); } } }