Files
bigcapital/packages/server/src/modules/Auth/Authed.controller.ts
2025-05-09 18:55:16 +02:00

47 lines
1.5 KiB
TypeScript

import { ApiBody, ApiOperation, ApiTags } from '@nestjs/swagger';
import { GetAuthenticatedAccount } from './queries/GetAuthedAccount.service';
import { Controller, Get, Post } from '@nestjs/common';
import { IgnoreTenantSeededRoute } from '../Tenancy/EnsureTenantIsSeeded.guards';
import { IgnoreTenantInitializedRoute } from '../Tenancy/EnsureTenantIsInitialized.guard';
import { AuthenticationApplication } from './AuthApplication.sevice';
import { TenancyContext } from '../Tenancy/TenancyContext.service';
import { IgnoreUserVerifiedRoute } from './guards/EnsureUserVerified.guard';
@Controller('/auth')
@ApiTags('Auth')
@IgnoreTenantSeededRoute()
@IgnoreTenantInitializedRoute()
@IgnoreUserVerifiedRoute()
export class AuthedController {
constructor(
private readonly getAuthedAccountService: GetAuthenticatedAccount,
private readonly authApp: AuthenticationApplication,
) {}
@Post('/signup/verify/resend')
@ApiOperation({ summary: 'Resend the signup confirmation message' })
@ApiBody({
schema: {
type: 'object',
properties: {
code: { type: 'number', example: 200 },
message: { type: 'string', example: 'resent successfully.' },
},
},
})
async resendSignupConfirm() {
await this.authApp.signUpConfirmResend();
return {
code: 200,
message: 'The signup confirmation message has been resent successfully.',
};
}
@Get('/account')
@ApiOperation({ summary: 'Retrieve the authenticated account' })
async getAuthedAcccount() {
return this.getAuthedAccountService.getAccount();
}
}