import { Body, Controller, Get, Param, Patch, Post, Put, Query, UseGuards } from '@nestjs/common'; import { ClientContactControlsDTO, CreateClientContactsDTO, CreateClientDataDTO, CreateClientLocationsDTO, GetClientContactByLacationIdDTO, GetClientDTO, GetPreparersParamDTO, GetPreparersQueryDTO, UpdateClientContactsDTO, UpdateClientDTO, UpdateClientLocationsDTO } from 'src/dto/property.dto'; import { ManageClientsService } from './manage-clients.service'; import { Roles } from 'src/decorators/roles.decorator'; import { ApiTags } from '@nestjs/swagger'; import { JwtAuthGuard } from 'src/guards/jwt-auth.guard'; import { RolesGuard } from 'src/guards/roles.guard'; @ApiTags('Manage Clients - PG') @UseGuards(JwtAuthGuard, RolesGuard) @Roles('psa') @Controller('2') export class ManageClientsController { constructor(private readonly manageClientsService: ManageClientsService) { } @Post('CreateNewClients') async CreateClientData(@Body() body: CreateClientDataDTO) { return this.manageClientsService.CreateClientData(body); } @Put('UpdateClient') async UpdateClient(@Body() body: UpdateClientDTO) { return this.manageClientsService.UpdateClient(body); } @Put('UpdateClientContacts') @Roles('pca', 'psa') UpdateClientContacts(@Body() body: UpdateClientContactsDTO) { return this.manageClientsService.UpdateClientContacts(body); } @Put('UpdateClientLocations') @Roles('pca', 'psa') UpdateClientLocations(@Body() body: UpdateClientLocationsDTO) { return this.manageClientsService.UpdateClientLocations(body); } @Post('CreateClientContacts') @Roles('pca', 'psa') CreateClientContact(@Body() body: CreateClientContactsDTO) { return this.manageClientsService.CreateClientContact(body); } @Patch('SetDefaultClientContacts/:P_SPID/:P_CLIENTCONTACTID/:P_USERID') SetDefaultClientContacts(@Param() param: ClientContactControlsDTO) { return this.manageClientsService.SetDefaultClientContacts(param); } @Patch('InactivateClientContacts/:P_SPID/:P_CLIENTCONTACTID/:P_USERID') InactivateClientContacts(@Param() param: ClientContactControlsDTO) { return this.manageClientsService.InactivateClientContacts(param); } @Patch('ReactivateClientContacts/:P_SPID/:P_CLIENTCONTACTID/:P_USERID') ReactivateClientContacts(@Param() param: ClientContactControlsDTO) { return this.manageClientsService.ReactivateClientContacts(param); } @Post('CreateClientLocations') @Roles('pca', 'psa') CreateClientLocation(@Body() body: CreateClientLocationsDTO) { return this.manageClientsService.CreateClientLocation(body); } @Get('GetPreparers/:P_SPID/:P_STATUS') async GetPreparers(@Param() param: GetPreparersParamDTO, @Query() query: GetPreparersQueryDTO) { return await this.manageClientsService.GetPreparers({ ...param, ...query }); } @Get('GetPreparerByClientid/:P_SPID/:P_CLIENTID') GetPreparerByClientid(@Param() body: GetClientDTO) { return this.manageClientsService.GetPreparerByClientid(body); } @Get('GetPreparerContactsByClientid/:P_SPID/:P_CLIENTID') @Roles('pca', 'psa') GetPreparerContactsByClientid(@Param() body: GetClientDTO) { return this.manageClientsService.GetPreparerContactsByClientid(body); } @Get('GetPreparerContactsbyClientLocationID/:P_SPID/:P_LOCATIONID') @Roles('pca', 'psa') GetPreparerContactsbyClientLocationID(@Param() body: GetClientContactByLacationIdDTO) { return this.manageClientsService.GetPreparerContactsbyClientLocationID(body); } @Get('GetPreparerLocByClientid/:P_SPID/:P_CLIENTID') @Roles('pca', 'psa') GetPreparerLocByClientid(@Param() body: GetClientDTO) { return this.manageClientsService.GetPreparerLocByClientid(body); } }