File

src/application-user/application-user.controller.ts

Prefix

client/application/:applicationClientId/user

Index

Methods

Methods

Async addApplicationUser
addApplicationUser(response: Response, applicationClientId: number, body: ApplicationUserBodyDto)
Decorators :
@Post()
@ApiResponse({status: undefined, type: ApplicationUser})
Parameters :
Name Type Optional
response Response No
applicationClientId number No
body ApplicationUserBodyDto No
Returns : any
Async createPasswordForUser
createPasswordForUser(response: Response, body: UserSetPasswordBodyDto)
Decorators :
@Post('/create-password')
Parameters :
Name Type Optional
response Response No
body UserSetPasswordBodyDto No
Returns : any
Async deleteApplicationUser
deleteApplicationUser(query: ApplicationUserBodyDto, response: Response, applicationClientId: number, id: number)
Decorators :
@Delete('/:id')
@ApiResponse({status: undefined, type: ApplicationUser})
Parameters :
Name Type Optional
query ApplicationUserBodyDto No
response Response No
applicationClientId number No
id number No
Returns : unknown
Async disableApplication
disableApplication(body: ApplicationUserBodyDto, applicationClientId: number, id: number)
Decorators :
@Patch(':id/disable')
@ApiResponse({type: ApplicationUser})
Parameters :
Name Type Optional
body ApplicationUserBodyDto No
applicationClientId number No
id number No
Returns : unknown
Async enableApplication
enableApplication(body: ApplicationUserBodyDto, applicationClientId: number, id: number)
Decorators :
@Patch(':id/enable')
@ApiResponse({type: ApplicationUser})
Parameters :
Name Type Optional
body ApplicationUserBodyDto No
applicationClientId number No
id number No
Returns : unknown
getApplication
getApplication(applicationClientId: number)
Decorators :
@Get()
@ApiResponse({type: undefined})
Parameters :
Name Type Optional
applicationClientId number No
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();
  }
}

results matching ""

    No results matching ""