36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
import { Body, Controller, Delete, Param, Post, Put } from '@nestjs/common';
|
|
import { ExcludePrivilege, Public } from 'src/core/guards';
|
|
import { ApiBearerAuth } from '@nestjs/swagger';
|
|
import { ForceLogoutDto, LoginQueueDto } from './dto/login.dto';
|
|
import { AuthAdminQueueOrchestrator } from '../domain/auth-admin-queue.orchestrator';
|
|
|
|
@Controller('v1/auth/queue')
|
|
export class AuthAdminQueueController {
|
|
constructor(private orchestrator: AuthAdminQueueOrchestrator) {}
|
|
|
|
@Post()
|
|
@Public(true)
|
|
async login(@Body() body: LoginQueueDto) {
|
|
return await this.orchestrator.login(body);
|
|
}
|
|
|
|
@ApiBearerAuth('JWT')
|
|
@Public(false)
|
|
@ExcludePrivilege()
|
|
@Delete('logout')
|
|
async logout() {
|
|
return await this.orchestrator.logout();
|
|
}
|
|
|
|
@Put(':user_id/logout')
|
|
async logoutQueueAdmin(@Param('user_id') userId: string) {
|
|
return await this.orchestrator.logout(userId);
|
|
}
|
|
|
|
@Post('force-logout')
|
|
@Public(true)
|
|
async forceLogout(@Body() body: ForceLogoutDto) {
|
|
return await this.orchestrator.forceLogout(body.token);
|
|
}
|
|
}
|