68 lines
2.8 KiB
TypeScript
68 lines
2.8 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 {
|
|
SysAdminExtendUserSubscriptionParams,
|
|
SysAdminExtendUserSubscriptionResult,
|
|
SysAdminFinalizeUserSubscriptionParams,
|
|
SysAdminFinalizeUserSubscriptionResult,
|
|
SysAdminUserSubscriptionDetailsParams,
|
|
SysAdminUserSubscriptionDetailsResult,
|
|
} from "../../../Models/Users/Users.Interface";
|
|
import { SysAdminSubscriptionsService } from "./SysAdminSubscriptions.Service";
|
|
|
|
@Route("sysadmin/subscriptions")
|
|
@Middlewares(sysAdminAuthMiddleware)
|
|
export class SysAdminSubscriptionsController extends Controller {
|
|
@Response<ApiValidationError>(500, "Ha ocurrido un error")
|
|
@SuccessResponse(200, "Done")
|
|
@Post("extend-user")
|
|
public async extendUserSubscription(
|
|
@Body() requestBody: SysAdminExtendUserSubscriptionParams
|
|
): Promise<SysAdminExtendUserSubscriptionResult | ApiValidationError> {
|
|
try {
|
|
const result = await new SysAdminSubscriptionsService().extendUserSubscription(requestBody);
|
|
this.setStatus(200);
|
|
return result;
|
|
} catch (e) {
|
|
const errorOccurred: Error = e as Error;
|
|
this.setStatus(500);
|
|
return new ApiValidationError(500, errorOccurred.message);
|
|
}
|
|
}
|
|
|
|
@Response<ApiValidationError>(500, "Ha ocurrido un error")
|
|
@SuccessResponse(200, "Done")
|
|
@Post("finalize-user")
|
|
public async finalizeUserSubscription(
|
|
@Body() requestBody: SysAdminFinalizeUserSubscriptionParams
|
|
): Promise<SysAdminFinalizeUserSubscriptionResult | ApiValidationError> {
|
|
try {
|
|
const result = await new SysAdminSubscriptionsService().finalizeUserSubscription(requestBody);
|
|
this.setStatus(200);
|
|
return result;
|
|
} catch (e) {
|
|
const errorOccurred: Error = e as Error;
|
|
this.setStatus(500);
|
|
return new ApiValidationError(500, errorOccurred.message);
|
|
}
|
|
}
|
|
|
|
@Response<ApiValidationError>(500, "Ha ocurrido un error")
|
|
@SuccessResponse(200, "Done")
|
|
@Post("user-details")
|
|
public async getUserSubscriptionDetails(
|
|
@Body() requestBody: SysAdminUserSubscriptionDetailsParams
|
|
): Promise<SysAdminUserSubscriptionDetailsResult | ApiValidationError> {
|
|
try {
|
|
const result = await new SysAdminSubscriptionsService().getUserSubscriptionDetails(requestBody);
|
|
this.setStatus(200);
|
|
return result;
|
|
} catch (e) {
|
|
const errorOccurred: Error = e as Error;
|
|
this.setStatus(500);
|
|
return new ApiValidationError(500, errorOccurred.message);
|
|
}
|
|
}
|
|
}
|