Files
turnosxpress/server/src/api/SysAdmin/PlanUsageCycle/SysAdminPlanUsageCycle.Controller.ts
T

30 lines
1.3 KiB
TypeScript

import { Body, Controller, Middlewares, Post, Response, Route, SuccessResponse } from "tsoa";
import { ApiValidationError } from "../../../Models/Server.Error.model";
import { sysAdminAuthMiddleware } from "../../../middleware/sysadminAuth";
import {
SysAdminRecalculatePlanUsageCycleParams,
SysAdminRecalculatePlanUsageCycleResult,
} from "../../../Models/PlanUsageCycle/PlanUsageCycle.Interface";
import { SysAdminPlanUsageCycleService } from "./SysAdminPlanUsageCycle.Service";
@Route("sysadmin/plan-usage-cycle")
@Middlewares(sysAdminAuthMiddleware)
export class SysAdminPlanUsageCycleController extends Controller {
@Response<ApiValidationError>(500, "Ha ocurrido un error")
@SuccessResponse(200, "Done")
@Post("recalculate-user")
public async recalculateUserUsageCycle(
@Body() requestBody: SysAdminRecalculatePlanUsageCycleParams
): Promise<SysAdminRecalculatePlanUsageCycleResult | ApiValidationError> {
try {
const result = await new SysAdminPlanUsageCycleService().recalculateUserUsageCycle(requestBody);
this.setStatus(200);
return result;
} catch (e) {
const errorOccurred: Error = e as Error;
this.setStatus(500);
return new ApiValidationError(500, errorOccurred.message);
}
}
}