import { BadRequestException, Controller, Post, UseGuards } from '@nestjs/common' import { JWTOrBasicAuthorizationGuard, BasicAuthorizationGuard } from '../../../guards' import { TeleconsultationsCredit } from '../domain' @UseGuards(JWTOrBasicAuthorizationGuard) @Controller('teleconsultation-credits') export class TeleconsultationCreditsController { constructor(private readonly teleconsultationsCredit: TeleconsultationsCredit) {} @UseGuards(BasicAuthorizationGuard) @Post('renew') async renewsTeleconsultationCredits(): Promise { const date = new Date() const jobs = [ this.teleconsultationsCredit.renewSubscriptionsTeleconsultationsCreditsByPlans(date), this.teleconsultationsCredit.renewCollaboratorsTeleconsultationsCredits(date), ] const errors = (await Promise.allSettled(jobs)) .filter(result => result.status === 'rejected') .map(result => result['reason']) if (errors.length === 1) throw errors.shift() if (errors.length > 0) throw new BadRequestException(null, errors.map(error => error.message).join(' - ')) } }