src/application-user/application-user.controller.ts
client/application/:applicationClientId/user
Methods |
|
| Async addApplicationUser | ||||||||||||
addApplicationUser(response: Response, applicationClientId: number, body: ApplicationUserBodyDto)
|
||||||||||||
Decorators :
@Post()
|
||||||||||||
|
Parameters :
Returns :
any
|
| Async createPasswordForUser | |||||||||
createPasswordForUser(response: Response, body: UserSetPasswordBodyDto)
|
|||||||||
Decorators :
@Post('/create-password')
|
|||||||||
|
Parameters :
Returns :
any
|
| Async deleteApplicationUser | |||||||||||||||
deleteApplicationUser(query: ApplicationUserBodyDto, response: Response, applicationClientId: number, id: number)
|
|||||||||||||||
Decorators :
@Delete('/:id')
|
|||||||||||||||
|
Parameters :
Returns :
unknown
|
| Async disableApplication | ||||||||||||
disableApplication(body: ApplicationUserBodyDto, applicationClientId: number, id: number)
|
||||||||||||
Decorators :
@Patch(':id/disable')
|
||||||||||||
|
Parameters :
Returns :
unknown
|
| Async enableApplication | ||||||||||||
enableApplication(body: ApplicationUserBodyDto, applicationClientId: number, id: number)
|
||||||||||||
Decorators :
@Patch(':id/enable')
|
||||||||||||
|
Parameters :
Returns :
unknown
|
| getApplication | ||||||
getApplication(applicationClientId: number)
|
||||||
Decorators :
@Get()
|
||||||
|
Parameters :
Returns :
Promise<ApplicationUser[]>
|
import {
Body,
Controller,
Delete,
Get,
HttpStatus,
Param,
Patch,
Post,
Query,
Res,
} from '@nestjs/common';
import { Response } from 'express';
import { ApiBearerAuth, ApiResponse, ApiTags } from '@nestjs/swagger';
import { ApplicationUserService } from './application-user.service';
import { ApplicationUserBodyDto } from './dto/application-user.dto';
import { UserSetPasswordBodyDto } from './dto/user-set-password.dto';
import { ApplicationUser } from 'src/entities/application-user';
@ApiTags('client/application/user')
@ApiBearerAuth('token')
@Controller('client/application/:applicationClientId/user')
export class ApplicationUserController {
constructor(private readonly appUserService: ApplicationUserService) {}
@Post()
@ApiResponse({ status: HttpStatus.OK, type: ApplicationUser })
async addApplicationUser(
@Res() response: Response,
@Param('applicationClientId') applicationClientId: number,
@Body() body: ApplicationUserBodyDto
) {
const id = await this.appUserService.addUser(+applicationClientId, body);
await this.appUserService.userSyncKeycloak(body);
response.status(HttpStatus.OK).json({ id });
}
@Post('/create-password')
async createPasswordForUser(
@Res() response: Response,
@Body() body: UserSetPasswordBodyDto,
) {
await this.appUserService.createPasswordForUserInKeycloak(body);
response.status(HttpStatus.CREATED).send();
}
@Get()
@ApiResponse({ type: [ApplicationUser] })
getApplication(
@Param('applicationClientId') applicationClientId: number
): Promise<ApplicationUser[]> {
return this.appUserService.getUsersByApplicationId(+applicationClientId);
}
@Patch(':id/enable')
@ApiResponse({ type: ApplicationUser })
async enableApplication(
@Body() body: ApplicationUserBodyDto,
@Param('applicationClientId') applicationClientId: number,
@Param('id') id: number
) {
await this.appUserService.userSyncKeycloak(body);
return this.appUserService.enable(+applicationClientId, +id);
}
@Patch(':id/disable')
@ApiResponse({ type: ApplicationUser })
async disableApplication(
@Body() body: ApplicationUserBodyDto,
@Param('applicationClientId') applicationClientId: number,
@Param('id') id: number
) {
await this.appUserService.userSyncKeycloak(body, { leaveGroup: true });
return this.appUserService.disable(+applicationClientId, +id);
}
@Delete('/:id')
@ApiResponse({ status: HttpStatus.OK, type: ApplicationUser })
async deleteApplicationUser(
@Query() query: ApplicationUserBodyDto,
@Res() response: Response,
@Param('applicationClientId') applicationClientId: number,
@Param('id') id: number
) {
await this.appUserService.userSyncKeycloak(query, { leaveGroup: true });
await this.appUserService.delete(+applicationClientId, +id);
return response.json();
}
}