modified holder API according to updated holder spec
This commit is contained in:
parent
34c5b5d22d
commit
f0623201b5
@ -35,7 +35,11 @@ export class CreateHoldersDTO extends IntersectionType(
|
||||
ZIP_DTO,
|
||||
COUNTRY_DTO,
|
||||
USERID_DTO,
|
||||
PartialType(CONTACTSTABLE_DTO)
|
||||
// PartialType(CONTACTSTABLE_DTO)
|
||||
) { }
|
||||
|
||||
export class CreateHolderContactsDTO extends IntersectionType(
|
||||
SPID_DTO, HOLDERID_DTO, CONTACTSTABLE_DTO, USERID_DTO
|
||||
) { }
|
||||
|
||||
|
||||
@ -73,7 +77,6 @@ export class UpdateHolderContactDTO extends IntersectionType(
|
||||
USERID_DTO
|
||||
) { }
|
||||
|
||||
|
||||
export class GetHolderDTO extends IntersectionType(
|
||||
SPID_DTO,
|
||||
HOLDERID_DTO
|
||||
@ -89,9 +92,9 @@ export class HolderContactActivateOrInactivateDTO extends IntersectionType(
|
||||
SPID_DTO,
|
||||
HOLDERCONTACTID_DTO,
|
||||
USERID_DTO
|
||||
) {}
|
||||
) { }
|
||||
|
||||
export class SearchHolderDTO extends IntersectionType(
|
||||
SPID_DTO,
|
||||
HOLDERNAME_DTO
|
||||
){}
|
||||
) { }
|
||||
@ -13,6 +13,7 @@ import { ApiTags } from '@nestjs/swagger';
|
||||
import { ManageHoldersService } from './manage-holders.service';
|
||||
|
||||
import {
|
||||
CreateHolderContactsDTO,
|
||||
CreateHoldersDTO, GetHolderDTO, HolderActivateOrInactivateDTO,
|
||||
HolderContactActivateOrInactivateDTO, SearchHolderDTO, UpdateHolderContactDTO, UpdateHolderDTO
|
||||
} from 'src/dto/property.dto';
|
||||
@ -34,6 +35,11 @@ export class ManageHoldersController {
|
||||
// return {message:"Request received.."}
|
||||
}
|
||||
|
||||
@Post('CreateHoldercontact')
|
||||
CreateHoldercontact(@Body() body: CreateHolderContactsDTO) {
|
||||
return this.manageHoldersService.CreateHoldercontact(body);
|
||||
}
|
||||
|
||||
@Put('/UpdateHolder')
|
||||
UpdateHolder(@Body() body: UpdateHolderDTO) {
|
||||
return this.manageHoldersService.UpdateHolder(body);
|
||||
|
||||
@ -6,6 +6,7 @@ import { InternalServerException } from 'src/exceptions/internalServerError.exce
|
||||
import { closeOracleDbConnection, fetchCursor, handleError, setEmptyStringsToNull } from 'src/utils/helper';
|
||||
|
||||
import {
|
||||
CreateHolderContactsDTO,
|
||||
CreateHoldersDTO, GetHolderDTO, HolderActivateOrInactivateDTO,
|
||||
HolderContactActivateOrInactivateDTO, SearchHolderDTO, UpdateHolderContactDTO, UpdateHolderDTO
|
||||
} from 'src/dto/property.dto';
|
||||
@ -39,7 +40,7 @@ export class ManageHoldersService {
|
||||
P_ZIP: null,
|
||||
P_COUNTRY: null,
|
||||
P_USERID: null,
|
||||
P_CONTACTSTABLE: null,
|
||||
// P_CONTACTSTABLE: null,
|
||||
};
|
||||
|
||||
const reqBody = JSON.parse(JSON.stringify(body));
|
||||
@ -54,7 +55,7 @@ export class ManageHoldersService {
|
||||
|
||||
connection = await this.oracleDBService.getConnection();
|
||||
|
||||
const CONTACTSTABLE_INSTANCE = await this.oracleService.get_CONTACTS_TABLE_INSTANCE(finalBody)
|
||||
// const CONTACTSTABLE_INSTANCE = await this.oracleService.get_CONTACTS_TABLE_INSTANCE(finalBody)
|
||||
|
||||
const result = await connection.execute(
|
||||
`BEGIN
|
||||
@ -83,7 +84,7 @@ export class ManageHoldersService {
|
||||
P_ZIP: { val: finalBody.P_ZIP, type: oracledb.DB_TYPE_NVARCHAR },
|
||||
P_COUNTRY: { val: finalBody.P_COUNTRY, type: oracledb.DB_TYPE_NVARCHAR },
|
||||
P_USERID: { val: finalBody.P_USERID, type: oracledb.DB_TYPE_NVARCHAR },
|
||||
P_CONTACTSTABLE: { val: CONTACTSTABLE_INSTANCE, type: oracledb.DB_TYPE_OBJECT },
|
||||
// P_CONTACTSTABLE: { val: CONTACTSTABLE_INSTANCE, type: oracledb.DB_TYPE_OBJECT },
|
||||
P_HOLDERCURSOR: { type: oracledb.CURSOR, dir: oracledb.BIND_OUT },
|
||||
P_HOLDERCONTACTCURSOR: { type: oracledb.CURSOR, dir: oracledb.BIND_OUT }
|
||||
},
|
||||
@ -109,11 +110,76 @@ export class ManageHoldersService {
|
||||
// throw new BadRequestException(fres[0].ERRORMESG)
|
||||
// }
|
||||
|
||||
return {
|
||||
holderDetails: await fetchCursor(outBinds.P_HOLDERCURSOR, ManageHoldersService.name),
|
||||
holderContactDetails: await fetchCursor(outBinds.P_HOLDERCONTACTCURSOR, ManageHoldersService.name),
|
||||
// return {
|
||||
// holderDetails: await fetchCursor(outBinds.P_HOLDERCURSOR, ManageHoldersService.name),
|
||||
// holderContactDetails: await fetchCursor(outBinds.P_HOLDERCONTACTCURSOR, ManageHoldersService.name),
|
||||
// }
|
||||
|
||||
return await fetchCursor(outBinds.P_HOLDERCURSOR, ManageHoldersService.name);
|
||||
|
||||
} catch (error) {
|
||||
handleError(error, ManageHoldersService.name)
|
||||
} finally {
|
||||
await closeOracleDbConnection(connection, ManageHoldersService.name)
|
||||
}
|
||||
}
|
||||
|
||||
async CreateHoldercontact(body: CreateHolderContactsDTO) {
|
||||
// const CONTACTSTABLE_INSTANCE = await this.oracleService.get_CONTACTS_TABLE_INSTANCE(finalBody)
|
||||
// P_CONTACTSTABLE: { val: CONTACTSTABLE_INSTANCE, type: oracledb.DB_TYPE_OBJECT }
|
||||
|
||||
const newBody = {
|
||||
P_SPID: null,
|
||||
P_HOLDERID: null,
|
||||
P_CONTACTSTABLE: null,
|
||||
P_USERID: null,
|
||||
};
|
||||
|
||||
const reqBody = JSON.parse(JSON.stringify(body));
|
||||
|
||||
setEmptyStringsToNull(reqBody);
|
||||
|
||||
const finalBody: CreateHolderContactsDTO = { ...newBody, ...reqBody };
|
||||
|
||||
let connection;
|
||||
try {
|
||||
connection = await this.oracleDBService.getConnection();
|
||||
|
||||
const CONTACTSTABLE_INSTANCE = await this.oracleService.get_CONTACTS_TABLE_INSTANCE(finalBody);
|
||||
|
||||
const result = await connection.execute(
|
||||
`BEGIN
|
||||
MANAGEPREPARER_PKG.CreateClientContact(
|
||||
:P_SPID, :P_HOLDERID, :P_CONTACTSTABLE, :P_USERID, :P_CURSOR
|
||||
);
|
||||
END;`,
|
||||
{
|
||||
P_SPID: { val: finalBody.P_SPID, type: oracledb.DB_TYPE_NUMBER },
|
||||
P_HOLDERID: { val: finalBody.P_HOLDERID, type: oracledb.DB_TYPE_NUMBER },
|
||||
P_CONTACTSTABLE: { val: CONTACTSTABLE_INSTANCE, type: oracledb.DB_TYPE_OBJECT },
|
||||
P_USERID: { val: finalBody.P_USERID, type: oracledb.DB_TYPE_NVARCHAR },
|
||||
P_CURSOR: { type: oracledb.CURSOR, dir: oracledb.BIND_OUT }
|
||||
},
|
||||
{ outFormat: oracledb.OUT_FORMAT_OBJECT }
|
||||
);
|
||||
|
||||
await connection.commit();
|
||||
|
||||
const outBinds = result.outBinds;
|
||||
if (!outBinds?.P_CURSOR) {
|
||||
this.logger.error('One or more expected cursors are missing from stored procedure output.');
|
||||
throw new InternalServerException("Incomplete data received from the database.");
|
||||
}
|
||||
|
||||
const fres: any = await fetchCursor(outBinds.P_CURSOR, ManageHoldersService.name);
|
||||
|
||||
if (fres.length > 0 && fres[0].ERRORMESG) {
|
||||
this.logger.warn(fres[0].ERRORMESG);
|
||||
throw new BadRequestException(fres[0].ERRORMESG)
|
||||
}
|
||||
|
||||
return { statusCode: 201, message: "Created Successfully", ...fres[0] };
|
||||
|
||||
} catch (error) {
|
||||
handleError(error, ManageHoldersService.name)
|
||||
} finally {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user