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,
|
ZIP_DTO,
|
||||||
COUNTRY_DTO,
|
COUNTRY_DTO,
|
||||||
USERID_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
|
USERID_DTO
|
||||||
) { }
|
) { }
|
||||||
|
|
||||||
|
|
||||||
export class GetHolderDTO extends IntersectionType(
|
export class GetHolderDTO extends IntersectionType(
|
||||||
SPID_DTO,
|
SPID_DTO,
|
||||||
HOLDERID_DTO
|
HOLDERID_DTO
|
||||||
@ -89,9 +92,9 @@ export class HolderContactActivateOrInactivateDTO extends IntersectionType(
|
|||||||
SPID_DTO,
|
SPID_DTO,
|
||||||
HOLDERCONTACTID_DTO,
|
HOLDERCONTACTID_DTO,
|
||||||
USERID_DTO
|
USERID_DTO
|
||||||
) {}
|
) { }
|
||||||
|
|
||||||
export class SearchHolderDTO extends IntersectionType(
|
export class SearchHolderDTO extends IntersectionType(
|
||||||
SPID_DTO,
|
SPID_DTO,
|
||||||
HOLDERNAME_DTO
|
HOLDERNAME_DTO
|
||||||
){}
|
) { }
|
||||||
@ -13,6 +13,7 @@ import { ApiTags } from '@nestjs/swagger';
|
|||||||
import { ManageHoldersService } from './manage-holders.service';
|
import { ManageHoldersService } from './manage-holders.service';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
CreateHolderContactsDTO,
|
||||||
CreateHoldersDTO, GetHolderDTO, HolderActivateOrInactivateDTO,
|
CreateHoldersDTO, GetHolderDTO, HolderActivateOrInactivateDTO,
|
||||||
HolderContactActivateOrInactivateDTO, SearchHolderDTO, UpdateHolderContactDTO, UpdateHolderDTO
|
HolderContactActivateOrInactivateDTO, SearchHolderDTO, UpdateHolderContactDTO, UpdateHolderDTO
|
||||||
} from 'src/dto/property.dto';
|
} from 'src/dto/property.dto';
|
||||||
@ -34,6 +35,11 @@ export class ManageHoldersController {
|
|||||||
// return {message:"Request received.."}
|
// return {message:"Request received.."}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Post('CreateHoldercontact')
|
||||||
|
CreateHoldercontact(@Body() body: CreateHolderContactsDTO) {
|
||||||
|
return this.manageHoldersService.CreateHoldercontact(body);
|
||||||
|
}
|
||||||
|
|
||||||
@Put('/UpdateHolder')
|
@Put('/UpdateHolder')
|
||||||
UpdateHolder(@Body() body: UpdateHolderDTO) {
|
UpdateHolder(@Body() body: UpdateHolderDTO) {
|
||||||
return this.manageHoldersService.UpdateHolder(body);
|
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 { closeOracleDbConnection, fetchCursor, handleError, setEmptyStringsToNull } from 'src/utils/helper';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
CreateHolderContactsDTO,
|
||||||
CreateHoldersDTO, GetHolderDTO, HolderActivateOrInactivateDTO,
|
CreateHoldersDTO, GetHolderDTO, HolderActivateOrInactivateDTO,
|
||||||
HolderContactActivateOrInactivateDTO, SearchHolderDTO, UpdateHolderContactDTO, UpdateHolderDTO
|
HolderContactActivateOrInactivateDTO, SearchHolderDTO, UpdateHolderContactDTO, UpdateHolderDTO
|
||||||
} from 'src/dto/property.dto';
|
} from 'src/dto/property.dto';
|
||||||
@ -39,7 +40,7 @@ export class ManageHoldersService {
|
|||||||
P_ZIP: null,
|
P_ZIP: null,
|
||||||
P_COUNTRY: null,
|
P_COUNTRY: null,
|
||||||
P_USERID: null,
|
P_USERID: null,
|
||||||
P_CONTACTSTABLE: null,
|
// P_CONTACTSTABLE: null,
|
||||||
};
|
};
|
||||||
|
|
||||||
const reqBody = JSON.parse(JSON.stringify(body));
|
const reqBody = JSON.parse(JSON.stringify(body));
|
||||||
@ -54,7 +55,7 @@ export class ManageHoldersService {
|
|||||||
|
|
||||||
connection = await this.oracleDBService.getConnection();
|
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(
|
const result = await connection.execute(
|
||||||
`BEGIN
|
`BEGIN
|
||||||
@ -83,7 +84,7 @@ export class ManageHoldersService {
|
|||||||
P_ZIP: { val: finalBody.P_ZIP, type: oracledb.DB_TYPE_NVARCHAR },
|
P_ZIP: { val: finalBody.P_ZIP, type: oracledb.DB_TYPE_NVARCHAR },
|
||||||
P_COUNTRY: { val: finalBody.P_COUNTRY, 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_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_HOLDERCURSOR: { type: oracledb.CURSOR, dir: oracledb.BIND_OUT },
|
||||||
P_HOLDERCONTACTCURSOR: { 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)
|
// throw new BadRequestException(fres[0].ERRORMESG)
|
||||||
// }
|
// }
|
||||||
|
|
||||||
return {
|
// return {
|
||||||
holderDetails: await fetchCursor(outBinds.P_HOLDERCURSOR, ManageHoldersService.name),
|
// holderDetails: await fetchCursor(outBinds.P_HOLDERCURSOR, ManageHoldersService.name),
|
||||||
holderContactDetails: await fetchCursor(outBinds.P_HOLDERCONTACTCURSOR, 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) {
|
} catch (error) {
|
||||||
handleError(error, ManageHoldersService.name)
|
handleError(error, ManageHoldersService.name)
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user