uppercase all response keys

This commit is contained in:
Kallesh B S 2025-09-22 14:50:17 +05:30
parent a1fd355171
commit f0399567ed
13 changed files with 796 additions and 226 deletions

View File

@ -53,107 +53,107 @@ export class CarnetApplicationController {
return this.carnetApplicationService.UpdateHolder(body); return this.carnetApplicationService.UpdateHolder(body);
} }
// @Patch('UpdateExpGoodsAuthRep') @Patch('UpdateExpGoodsAuthRep')
// UpdateExpGoodsAuthRep(@Body() body: UpdateExpGoodsAuthRepDTO) { UpdateExpGoodsAuthRep(@Body() body: UpdateExpGoodsAuthRepDTO) {
// return this.carnetApplicationService.UpdateExpGoodsAuthRep(body); return this.carnetApplicationService.UpdateExpGoodsAuthRep(body);
// } }
// @Post('AddGenerallistItems') @Post('AddGenerallistItems')
// AddGenerallistItems(@Body() body: AddGenerallistItemsDTO) { AddGenerallistItems(@Body() body: AddGenerallistItemsDTO) {
// return this.carnetApplicationService.AddGenerallistItems(body); return this.carnetApplicationService.AddGenerallistItems(body);
// } }
// @Post('AddCountries') @Post('AddCountries')
// AddCountries(@Body() body: AddCountriesDTO) { AddCountries(@Body() body: AddCountriesDTO) {
// return this.carnetApplicationService.AddCountries(body); return this.carnetApplicationService.AddCountries(body);
// } }
// @Put('EditGenerallistItems') @Put('EditGenerallistItems')
// EditGenerallistItems(@Body() body: EditGenerallistItemsDTO) { EditGenerallistItems(@Body() body: EditGenerallistItemsDTO) {
// return this.carnetApplicationService.EditGenerallistItems(body); return this.carnetApplicationService.EditGenerallistItems(body);
// } }
// @Delete('DeleteGenerallistItems') @Delete('DeleteGenerallistItems')
// DeleteGenerallistItems(@Body() body: DeleteGenerallistItemsDTO) { DeleteGenerallistItems(@Body() body: DeleteGenerallistItemsDTO) {
// return this.carnetApplicationService.DeleteGenerallistItems(body); return this.carnetApplicationService.DeleteGenerallistItems(body);
// } }
// @Patch('UpdateShippingDetails') @Patch('UpdateShippingDetails')
// UpdateShippingDetails(@Body() body: UpdateShippingDetailsDTO) { UpdateShippingDetails(@Body() body: UpdateShippingDetailsDTO) {
// return this.carnetApplicationService.UpdateShippingDetails(body); return this.carnetApplicationService.UpdateShippingDetails(body);
// } }
// @Get('EstimatedFees/:P_SPID/:P_USERID/:P_HEADERID') @Get('EstimatedFees/:P_SPID/:P_USERID/:P_HEADERID')
// EstimatedFees(@Param() body: GetCarnetControlCenterDTO) { EstimatedFees(@Param() body: GetCarnetControlCenterDTO) {
// return this.carnetApplicationService.EstimatedFees(body); return this.carnetApplicationService.EstimatedFees(body);
// } }
// // processing [ PROCESSINGCENTER_PKG ] // // processing [ PROCESSINGCENTER_PKG ]
// @Patch('ProcessCarnet') @Patch('ProcessCarnet')
// ProcessOriginalCarnet(@Body() body: CarnetProcessingCenterDTO) { ProcessOriginalCarnet(@Body() body: CarnetProcessingCenterDTO) {
// return this.carnetApplicationService.ProcessCarnet(body); return this.carnetApplicationService.ProcessCarnet(body);
// } }
// @Patch('UpdatePrintCarnet') @Patch('UpdatePrintCarnet')
// UpdatePrintCarnet(@Body() body: CarnetProcessingCenterDTO) { UpdatePrintCarnet(@Body() body: CarnetProcessingCenterDTO) {
// return this.carnetApplicationService.UpdatePrintCarnet(body); return this.carnetApplicationService.UpdatePrintCarnet(body);
// } }
// @Patch('VoidCarnet') @Patch('VoidCarnet')
// @Roles('sa') @Roles('sa')
// VoidCarnet(@Body() body: CarnetProcessingCenterDTO) { VoidCarnet(@Body() body: CarnetProcessingCenterDTO) {
// return this.carnetApplicationService.VoidCarnet(body); return this.carnetApplicationService.VoidCarnet(body);
// } }
// @Patch('CopyCarnet') @Patch('CopyCarnet')
// CopyCarnet(@Body() body: CopyCarnetDTO) { CopyCarnet(@Body() body: CopyCarnetDTO) {
// return this.carnetApplicationService.CopyCarnet(body); return this.carnetApplicationService.CopyCarnet(body);
// } }
// @Patch('DuplicateCarnet') @Patch('DuplicateCarnet')
// DuplicateCarnet(@Body() body: CarnetProcessingCenterDTO2) { DuplicateCarnet(@Body() body: CarnetProcessingCenterDTO2) {
// return this.carnetApplicationService.DuplicateCarnet(body); return this.carnetApplicationService.DuplicateCarnet(body);
// } }
// @Patch('AddlSets') @Patch('AddlSets')
// AddlSets(@Body() body: CarnetProcessingCenterDTO2) { AddlSets(@Body() body: CarnetProcessingCenterDTO2) {
// return this.carnetApplicationService.AddlSets(body); return this.carnetApplicationService.AddlSets(body);
// } }
// @Patch('ExtendCarnet') @Patch('ExtendCarnet')
// ExtendCarnet(@Body() body: CarnetProcessingCenterDTO2) { ExtendCarnet(@Body() body: CarnetProcessingCenterDTO2) {
// return this.carnetApplicationService.ExtendCarnet(body); return this.carnetApplicationService.ExtendCarnet(body);
// } }
// @Get('GetExtendedSection/:P_SPID/:P_HEADERID') @Get('GetExtendedSection/:P_SPID/:P_HEADERID')
// GetExtendedSection(@Param() body: GetExtendedSectionDTO) { GetExtendedSection(@Param() body: GetExtendedSectionDTO) {
// return this.carnetApplicationService.GetExtendedSection(body); return this.carnetApplicationService.GetExtendedSection(body);
// } }
// @Post('SaveExtensionApplication') @Post('SaveExtensionApplication')
// @HttpCode(200) @HttpCode(200)
// SaveExtensionApplication(@Body() body: SaveExtensionApplicationDTO) { SaveExtensionApplication(@Body() body: SaveExtensionApplicationDTO) {
// return this.carnetApplicationService.SaveExtensionApplication(body); return this.carnetApplicationService.SaveExtensionApplication(body);
// } }
// @Patch('CloseCarnet') @Patch('CloseCarnet')
// @Roles('sa') @Roles('sa')
// CloseCarnet(@Body() body: CarnetProcessingCenterDTO) { CloseCarnet(@Body() body: CarnetProcessingCenterDTO) {
// return this.carnetApplicationService.CloseCarnet(body); return this.carnetApplicationService.CloseCarnet(body);
// } }
// @Patch('ResetCarnet') @Patch('ResetCarnet')
// @Roles('sa') @Roles('sa')
// ResetCarnet(@Body() body: CarnetProcessingCenterDTO) { ResetCarnet(@Body() body: CarnetProcessingCenterDTO) {
// return this.carnetApplicationService.ResetCarnet(body); return this.carnetApplicationService.ResetCarnet(body);
// } }
// @Delete('DeleteCarnet') @Delete('DeleteCarnet')
// DeleteCarnet(@Body() body: CarnetProcessingCenterDTO) { DeleteCarnet(@Body() body: CarnetProcessingCenterDTO) {
// return this.carnetApplicationService.DeleteCarnet(body); return this.carnetApplicationService.DeleteCarnet(body);
// } }
// [ CARNETCONTROLCENTER_PKG ] // [ CARNETCONTROLCENTER_PKG ]

View File

@ -26,7 +26,7 @@ import {
import { BadRequestException } from 'src/exceptions/badRequest.exception'; import { BadRequestException } from 'src/exceptions/badRequest.exception';
import { PoolClient } from 'pg'; import { PoolClient } from 'pg';
import { PgDBService } from 'src/db/db.service'; import { PgDBService } from 'src/db/db.service';
import { checkPgUserDefinedErrors, handlePgError, releasePgClient, ResponseStatus } from 'src/utils/helper'; import { checkPgUserDefinedErrors, handlePgError, releasePgClient, ResponseStatus, toUpperCaseKeys } from 'src/utils/helper';
@Injectable() @Injectable()
export class CarnetApplicationService { export class CarnetApplicationService {
@ -63,7 +63,7 @@ export class CarnetApplicationService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.transmitted, message: ResponseStatus.transmitted,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -101,7 +101,7 @@ export class CarnetApplicationService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.created, message: ResponseStatus.created,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -139,7 +139,7 @@ export class CarnetApplicationService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.updated, message: ResponseStatus.updated,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -177,7 +177,7 @@ export class CarnetApplicationService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.updated, message: ResponseStatus.updated,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -242,7 +242,7 @@ export class CarnetApplicationService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.added, message: ResponseStatus.added,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -307,7 +307,7 @@ export class CarnetApplicationService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.updated, message: ResponseStatus.updated,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -345,7 +345,7 @@ export class CarnetApplicationService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.deleted, message: ResponseStatus.deleted,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -406,7 +406,7 @@ export class CarnetApplicationService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.added, message: ResponseStatus.added,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -417,26 +417,557 @@ export class CarnetApplicationService {
} }
} }
async UpdateShippingDetails(body: UpdateShippingDetailsDTO) { } async UpdateShippingDetails(body: UpdateShippingDetailsDTO) {
let client: PoolClient | null = null;
async EstimatedFees(body: GetCarnetControlCenterDTO) { } const cursorName = 'p_cursor';
try {
client = await this.pgDBService.getConnection();
await client.query('BEGIN');
const callProcQuery = `
CALL "CARNETSYS".carnetapplication_pkg_updateshippingdetails($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29)
`;
await client.query(callProcQuery,
[
body.P_HEADERID,
body.P_SHIPTOTYPE,
body.P_SHIPCONTACTID,
body.P_SHIPNAME,
body.P_ADDRESS1,
body.P_ADDRESS2,
body.P_CITY,
body.P_STATE,
body.P_ZIP,
body.P_COUNTRY,
body.P_FIRSTNAME,
body.P_LASTNAME,
body.P_TITLE,
body.P_PHONENO,
body.P_MOBILENO,
body.P_FAXNO,
body.P_EMAILADDRESS,
body.P_MIDDLEINITIAL,
body.P_FORMOFSECURITY,
body.P_INSPROTECTION,
body.P_LDIPROTECTION,
body.P_DELIVERYTYPE,
body.P_DELIVERYMETHOD,
body.P_PAYMENTMETHOD,
body.P_CUSTCOURIERNO,
body.P_REFNO,
body.P_NOTES,
body.P_USERID,
cursorName
]);
// 🚫 DON'T quote the cursor name in FETCH
const fetchResult = await client.query(`FETCH ALL FROM ${cursorName}`);
// 🚫 DON'T quote the cursor name in CLOSE
await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT');
checkPgUserDefinedErrors(fetchResult);
return {
statusCode: 200,
message: ResponseStatus.updated,
...toUpperCaseKeys(fetchResult?.rows)[0]
};
} catch (error) {
if (client) await client.query('ROLLBACK');
handlePgError(error, CarnetApplicationService.name)
} finally {
releasePgClient(client)
}
}
async EstimatedFees(body: GetCarnetControlCenterDTO) {
let client: PoolClient | null = null;
const cursorName = 'p_cursor';
try {
client = await this.pgDBService.getConnection();
await client.query('BEGIN');
const callProcQuery = `
CALL "CARNETSYS".carnetapplication_pkg_estimatedfees($1, $2, $3, $4)
`;
await client.query(callProcQuery, [body.P_SPID, body.P_USERID, body.P_HEADERID, cursorName]);
// 🚫 DON'T quote the cursor name in FETCH
const fetchResult = await client.query(`FETCH ALL FROM ${cursorName}`);
// 🚫 DON'T quote the cursor name in CLOSE
await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT');
return toUpperCaseKeys(fetchResult.rows);
} catch (error) {
if (client) await client.query('ROLLBACK');
handlePgError(error, CarnetApplicationService.name)
} finally {
releasePgClient(client)
}
}
// processing [ PROCESSINGCENTER_PKG ] // processing [ PROCESSINGCENTER_PKG ]
async ProcessCarnet(body: CarnetProcessingCenterDTO) { } async ProcessCarnet(body: CarnetProcessingCenterDTO) {
async UpdatePrintCarnet(body: CarnetProcessingCenterDTO) { } let client: PoolClient | null = null;
async VoidCarnet(body: CarnetProcessingCenterDTO) { }
async CopyCarnet(body: CopyCarnetDTO) { } const cursorName = 'p_cursor';
async DuplicateCarnet(body: CarnetProcessingCenterDTO2) { }
async AddlSets(body: CarnetProcessingCenterDTO2) { }
async ExtendCarnet(body: CarnetProcessingCenterDTO2) { }
async GetExtendedSection(body: GetExtendedSectionDTO) { }
async SaveExtensionApplication(body: SaveExtensionApplicationDTO) { }
async CloseCarnet(body: CarnetProcessingCenterDTO) { } try {
async ResetCarnet(body: CarnetProcessingCenterDTO) { } client = await this.pgDBService.getConnection();
async DeleteCarnet(body: CarnetProcessingCenterDTO) { }
await client.query('BEGIN');
const callProcQuery = `
CALL "CARNETSYS".processingcenter_pkg_processcarnet($1, $2, $3)
`;
await client.query(callProcQuery, [body.P_USERID, body.P_HEADERID, cursorName]);
// 🚫 DON'T quote the cursor name in FETCH
const fetchResult = await client.query(`FETCH ALL FROM ${cursorName}`);
// 🚫 DON'T quote the cursor name in CLOSE
await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT');
checkPgUserDefinedErrors(fetchResult);
return {
statusCode: 200,
message: ResponseStatus.processed,
...toUpperCaseKeys(fetchResult?.rows)[0]
};
} catch (error) {
if (client) await client.query('ROLLBACK');
handlePgError(error, CarnetApplicationService.name)
} finally {
releasePgClient(client)
}
}
async UpdatePrintCarnet(body: CarnetProcessingCenterDTO) {
let client: PoolClient | null = null;
const cursorName = 'p_cursor';
try {
client = await this.pgDBService.getConnection();
await client.query('BEGIN');
const callProcQuery = `
CALL "CARNETSYS".processingcenter_pkg_updateprintcarnet($1, $2, $3)
`;
await client.query(callProcQuery, [body.P_USERID, body.P_HEADERID, cursorName]);
// 🚫 DON'T quote the cursor name in FETCH
const fetchResult = await client.query(`FETCH ALL FROM ${cursorName}`);
// 🚫 DON'T quote the cursor name in CLOSE
await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT');
checkPgUserDefinedErrors(fetchResult);
return {
statusCode: 200,
message: ResponseStatus.updated,
...toUpperCaseKeys(fetchResult?.rows)[0]
};
} catch (error) {
if (client) await client.query('ROLLBACK');
handlePgError(error, CarnetApplicationService.name)
} finally {
releasePgClient(client)
}
}
async VoidCarnet(body: CarnetProcessingCenterDTO) {
let client: PoolClient | null = null;
const cursorName = 'p_cursor';
try {
client = await this.pgDBService.getConnection();
await client.query('BEGIN');
const callProcQuery = `
CALL "CARNETSYS".processingcenter_pkg_voidcarnet($1, $2, $3)
`;
await client.query(callProcQuery, [body.P_USERID, body.P_HEADERID, cursorName]);
// 🚫 DON'T quote the cursor name in FETCH
const fetchResult = await client.query(`FETCH ALL FROM ${cursorName}`);
// 🚫 DON'T quote the cursor name in CLOSE
await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT');
checkPgUserDefinedErrors(fetchResult);
return {
statusCode: 200,
message: ResponseStatus.voided,
...toUpperCaseKeys(fetchResult?.rows)[0]
};
} catch (error) {
if (client) await client.query('ROLLBACK');
handlePgError(error, CarnetApplicationService.name)
} finally {
releasePgClient(client)
}
}
async CopyCarnet(body: CopyCarnetDTO) {
let client: PoolClient | null = null;
const cursorName = 'p_cursor';
try {
client = await this.pgDBService.getConnection();
await client.query('BEGIN');
const callProcQuery = `
CALL "CARNETSYS".processingcenter_pkg_copycarnet($1, $2, $3, $4)
`;
await client.query(callProcQuery, [body.P_USERID, body.P_HEADERID, body.P_APPLICATIONNAME, cursorName]);
// 🚫 DON'T quote the cursor name in FETCH
const fetchResult = await client.query(`FETCH ALL FROM ${cursorName}`);
// 🚫 DON'T quote the cursor name in CLOSE
await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT');
checkPgUserDefinedErrors(fetchResult);
return {
statusCode: 200,
message: ResponseStatus.copied,
...toUpperCaseKeys(fetchResult?.rows)[0]
};
} catch (error) {
if (client) await client.query('ROLLBACK');
handlePgError(error, CarnetApplicationService.name)
} finally {
releasePgClient(client)
}
}
async DuplicateCarnet(body: CarnetProcessingCenterDTO2) {
let client: PoolClient | null = null;
const cursorName = 'p_cursor';
try {
client = await this.pgDBService.getConnection();
await client.query('BEGIN');
const callProcQuery = `
CALL "CARNETSYS".processingcenter_pkg_duplicatecarnet($1, $2, $3)
`;
await client.query(callProcQuery, [body.P_USERID, body.P_CARNETNO, cursorName]);
// 🚫 DON'T quote the cursor name in FETCH
const fetchResult = await client.query(`FETCH ALL FROM ${cursorName}`);
// 🚫 DON'T quote the cursor name in CLOSE
await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT');
checkPgUserDefinedErrors(fetchResult);
return {
statusCode: 200,
message: ResponseStatus.duplicated,
...toUpperCaseKeys(fetchResult?.rows)[0]
};
} catch (error) {
if (client) await client.query('ROLLBACK');
handlePgError(error, CarnetApplicationService.name)
} finally {
releasePgClient(client)
}
}
async AddlSets(body: CarnetProcessingCenterDTO2) {
let client: PoolClient | null = null;
const cursorName = 'p_cursor';
try {
client = await this.pgDBService.getConnection();
await client.query('BEGIN');
const callProcQuery = `
CALL "CARNETSYS".processingcenter_pkg_addlsets($1, $2, $3)
`;
await client.query(callProcQuery, [body.P_USERID, body.P_CARNETNO, cursorName]);
// 🚫 DON'T quote the cursor name in FETCH
const fetchResult = await client.query(`FETCH ALL FROM ${cursorName}`);
// 🚫 DON'T quote the cursor name in CLOSE
await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT');
checkPgUserDefinedErrors(fetchResult);
return {
statusCode: 200,
message: ResponseStatus.addl_completed,
...toUpperCaseKeys(fetchResult?.rows)[0]
};
} catch (error) {
if (client) await client.query('ROLLBACK');
handlePgError(error, CarnetApplicationService.name)
} finally {
releasePgClient(client)
}
}
async ExtendCarnet(body: CarnetProcessingCenterDTO2) {
let client: PoolClient | null = null;
const cursorName = 'p_cursor';
try {
client = await this.pgDBService.getConnection();
await client.query('BEGIN');
const callProcQuery = `
CALL "CARNETSYS".processingcenter_pkg_extendcarnet($1, $2, $3)
`;
await client.query(callProcQuery, [body.P_USERID, body.P_CARNETNO, cursorName]);
// 🚫 DON'T quote the cursor name in FETCH
const fetchResult = await client.query(`FETCH ALL FROM ${cursorName}`);
// 🚫 DON'T quote the cursor name in CLOSE
await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT');
checkPgUserDefinedErrors(fetchResult);
return {
statusCode: 200,
message: ResponseStatus.extended,
...toUpperCaseKeys(fetchResult?.rows)[0]
};
} catch (error) {
if (client) await client.query('ROLLBACK');
handlePgError(error, CarnetApplicationService.name)
} finally {
releasePgClient(client)
}
}
async GetExtendedSection(body: GetExtendedSectionDTO) {
let client: PoolClient | null = null;
const cursorName = 'p_cursor';
try {
client = await this.pgDBService.getConnection();
await client.query('BEGIN');
const callProcQuery = `
CALL "CARNETSYS".processingcenter_pkg_getextendedsection($1, $2, $3)
`;
await client.query(callProcQuery, [body.P_SPID, body.P_HEADERID, cursorName]);
// 🚫 DON'T quote the cursor name in FETCH
const fetchResult = await client.query(`FETCH ALL FROM ${cursorName}`);
// 🚫 DON'T quote the cursor name in CLOSE
await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT');
return toUpperCaseKeys(fetchResult.rows);
} catch (error) {
if (client) await client.query('ROLLBACK');
handlePgError(error, CarnetApplicationService.name)
} finally {
releasePgClient(client)
}
}
async SaveExtensionApplication(body: SaveExtensionApplicationDTO) {
let client: PoolClient | null = null;
const cursorName = 'p_cursor';
try {
client = await this.pgDBService.getConnection();
await client.query('BEGIN');
const callProcQuery = `
CALL "CARNETSYS".processingcenter_pkg_saveextensionapplication($1, $2, $3, $4, $5, $6, $7, $8)
`;
await client.query(callProcQuery, [body.P_USERID, body.P_SPID, body.P_HEADERID, body.P_GOODSPORT, body.P_GOODSCOUNTRY, body.P_REASONCODE, body.P_EXTENSIONPERIOD, cursorName]);
// 🚫 DON'T quote the cursor name in FETCH
const fetchResult = await client.query(`FETCH ALL FROM ${cursorName}`);
// 🚫 DON'T quote the cursor name in CLOSE
await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT');
checkPgUserDefinedErrors(fetchResult);
return {
statusCode: 200,
message: ResponseStatus.saved,
...toUpperCaseKeys(fetchResult?.rows)[0]
};
} catch (error) {
if (client) await client.query('ROLLBACK');
handlePgError(error, CarnetApplicationService.name)
} finally {
releasePgClient(client)
}
}
async CloseCarnet(body: CarnetProcessingCenterDTO) {
let client: PoolClient | null = null;
const cursorName = 'p_cursor';
try {
client = await this.pgDBService.getConnection();
await client.query('BEGIN');
const callProcQuery = `
CALL "CARNETSYS".processingcenter_pkg_closecarnet($1, $2, $3)
`;
await client.query(callProcQuery, [body.P_USERID, body.P_HEADERID, cursorName]);
// 🚫 DON'T quote the cursor name in FETCH
const fetchResult = await client.query(`FETCH ALL FROM ${cursorName}`);
// 🚫 DON'T quote the cursor name in CLOSE
await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT');
checkPgUserDefinedErrors(fetchResult);
return {
statusCode: 200,
message: ResponseStatus.closed,
...toUpperCaseKeys(fetchResult?.rows)[0]
};
} catch (error) {
if (client) await client.query('ROLLBACK');
handlePgError(error, CarnetApplicationService.name)
} finally {
releasePgClient(client)
}
}
async ResetCarnet(body: CarnetProcessingCenterDTO) {
let client: PoolClient | null = null;
const cursorName = 'p_cursor';
try {
client = await this.pgDBService.getConnection();
await client.query('BEGIN');
const callProcQuery = `
CALL "CARNETSYS".processingcenter_pkg_resetcarnet($1, $2, $3)
`;
await client.query(callProcQuery, [body.P_USERID, body.P_HEADERID, cursorName]);
// 🚫 DON'T quote the cursor name in FETCH
const fetchResult = await client.query(`FETCH ALL FROM ${cursorName}`);
// 🚫 DON'T quote the cursor name in CLOSE
await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT');
checkPgUserDefinedErrors(fetchResult);
return {
statusCode: 200,
message: ResponseStatus.reset_successfull,
...toUpperCaseKeys(fetchResult?.rows)[0]
};
} catch (error) {
if (client) await client.query('ROLLBACK');
handlePgError(error, CarnetApplicationService.name)
} finally {
releasePgClient(client)
}
}
async DeleteCarnet(body: CarnetProcessingCenterDTO) {
let client: PoolClient | null = null;
const cursorName = 'p_cursor';
try {
client = await this.pgDBService.getConnection();
await client.query('BEGIN');
const callProcQuery = `
CALL "CARNETSYS".processingcenter_pkg_deletecarnet($1, $2, $3)
`;
await client.query(callProcQuery, [body.P_USERID, body.P_HEADERID, cursorName]);
// 🚫 DON'T quote the cursor name in FETCH
const fetchResult = await client.query(`FETCH ALL FROM ${cursorName}`);
// 🚫 DON'T quote the cursor name in CLOSE
await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT');
checkPgUserDefinedErrors(fetchResult);
return {
statusCode: 200,
message: ResponseStatus.deleted,
...toUpperCaseKeys(fetchResult?.rows)[0]
};
} catch (error) {
if (client) await client.query('ROLLBACK');
handlePgError(error, CarnetApplicationService.name)
} finally {
releasePgClient(client)
}
}
// [ CARNETCONTROLCENTER_PKG ] // [ CARNETCONTROLCENTER_PKG ]
@ -462,7 +993,7 @@ export class CarnetApplicationService {
await client.query(`CLOSE ${cursorName}`); await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT'); await client.query('COMMIT');
return fetchResult.rows; return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -494,7 +1025,7 @@ export class CarnetApplicationService {
await client.query(`CLOSE ${cursorName}`); await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT'); await client.query('COMMIT');
return fetchResult.rows; return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -526,7 +1057,7 @@ export class CarnetApplicationService {
await client.query(`CLOSE ${cursorName}`); await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT'); await client.query('COMMIT');
return fetchResult.rows; return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -558,7 +1089,7 @@ export class CarnetApplicationService {
await client.query(`CLOSE ${cursorName}`); await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT'); await client.query('COMMIT');
return fetchResult.rows; return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -590,7 +1121,7 @@ export class CarnetApplicationService {
await client.query(`CLOSE ${cursorName}`); await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT'); await client.query('COMMIT');
return fetchResult.rows; return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');

View File

@ -1,6 +1,6 @@
import { Injectable } from '@nestjs/common'; import { Injectable } from '@nestjs/common';
import { ClientContactControlsDTO, CreateClientContactsDTO, CreateClientDataDTO, CreateClientLocationsDTO, GetClientContactByLacationIdDTO, GetClientDTO, GetPreparersDTO, UpdateClientContactsDTO, UpdateClientDTO, UpdateClientLocationsDTO } from 'src/dto/property.dto'; import { ClientContactControlsDTO, CreateClientContactsDTO, CreateClientDataDTO, CreateClientLocationsDTO, GetClientContactByLacationIdDTO, GetClientDTO, GetPreparersDTO, UpdateClientContactsDTO, UpdateClientDTO, UpdateClientLocationsDTO } from 'src/dto/property.dto';
import { checkPgUserDefinedErrors, handlePgError, releasePgClient, ResponseStatus } from 'src/utils/helper'; import { checkPgUserDefinedErrors, handlePgError, releasePgClient, ResponseStatus, toUpperCaseKeys } from 'src/utils/helper';
import { PoolClient } from 'pg'; import { PoolClient } from 'pg';
import { PgDBService } from 'src/db/db.service'; import { PgDBService } from 'src/db/db.service';
@ -52,7 +52,7 @@ export class ManageClientsService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.created, message: ResponseStatus.created,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -105,7 +105,7 @@ export class ManageClientsService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.updated, message: ResponseStatus.updated,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -157,7 +157,7 @@ export class ManageClientsService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.updated, message: ResponseStatus.updated,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -208,7 +208,7 @@ export class ManageClientsService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.updated, message: ResponseStatus.updated,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -278,7 +278,7 @@ export class ManageClientsService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.created, message: ResponseStatus.created,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -316,7 +316,7 @@ export class ManageClientsService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.updated, message: ResponseStatus.updated,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -354,7 +354,7 @@ export class ManageClientsService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.inActivate, message: ResponseStatus.inActivate,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -392,7 +392,7 @@ export class ManageClientsService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.reActivate, message: ResponseStatus.reActivate,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -459,7 +459,7 @@ export class ManageClientsService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.created, message: ResponseStatus.created,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -494,7 +494,7 @@ export class ManageClientsService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -528,7 +528,7 @@ export class ManageClientsService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -562,7 +562,7 @@ export class ManageClientsService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -596,7 +596,7 @@ export class ManageClientsService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -630,7 +630,7 @@ export class ManageClientsService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');

View File

@ -3,7 +3,7 @@ import { PgDBService } from 'src/db/db.service';
import { CreateBasicFeeDTO, CreateBondRateDTO, CreateCargoRateDTO, CreateCfFeeDTO, CreateCsFeeDTO, CreateEfFeeDTO, CreateFeeCommDTO, GetFeeGeneralDTO, UpdateBasicFeeDTO, UpdateBondRateDTO, UpdateCargoRateDTO, UpdateCfFeeDTO, UpdateCsFeeDTO, UpdateEfFeeDTO, UpdateFeeCommDTO } from 'src/dto/property.dto'; import { CreateBasicFeeDTO, CreateBondRateDTO, CreateCargoRateDTO, CreateCfFeeDTO, CreateCsFeeDTO, CreateEfFeeDTO, CreateFeeCommDTO, GetFeeGeneralDTO, UpdateBasicFeeDTO, UpdateBondRateDTO, UpdateCargoRateDTO, UpdateCfFeeDTO, UpdateCsFeeDTO, UpdateEfFeeDTO, UpdateFeeCommDTO } from 'src/dto/property.dto';
import { PoolClient } from 'pg'; import { PoolClient } from 'pg';
import { checkPgUserDefinedErrors, handlePgError, releasePgClient, ResponseStatus } from 'src/utils/helper'; import { checkPgUserDefinedErrors, handlePgError, releasePgClient, ResponseStatus, toUpperCaseKeys } from 'src/utils/helper';
@Injectable() @Injectable()
export class ManageFeeService { export class ManageFeeService {
@ -35,7 +35,7 @@ export class ManageFeeService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -82,7 +82,7 @@ export class ManageFeeService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.created, message: ResponseStatus.created,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -129,7 +129,7 @@ export class ManageFeeService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.updated, message: ResponseStatus.updated,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -168,7 +168,7 @@ export class ManageFeeService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -219,7 +219,7 @@ export class ManageFeeService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.created, message: ResponseStatus.created,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -266,7 +266,7 @@ export class ManageFeeService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.updated, message: ResponseStatus.updated,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -305,7 +305,7 @@ export class ManageFeeService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -353,7 +353,7 @@ export class ManageFeeService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.created, message: ResponseStatus.created,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -400,7 +400,7 @@ export class ManageFeeService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.updated, message: ResponseStatus.updated,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -438,7 +438,7 @@ export class ManageFeeService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -488,7 +488,7 @@ export class ManageFeeService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.created, message: ResponseStatus.created,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -535,7 +535,7 @@ export class ManageFeeService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.updated, message: ResponseStatus.updated,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -575,7 +575,7 @@ export class ManageFeeService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -622,7 +622,7 @@ export class ManageFeeService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.created, message: ResponseStatus.created,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -668,7 +668,7 @@ export class ManageFeeService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.updated, message: ResponseStatus.updated,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -707,7 +707,7 @@ export class ManageFeeService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -757,7 +757,7 @@ export class ManageFeeService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.created, message: ResponseStatus.created,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -803,7 +803,7 @@ export class ManageFeeService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.updated, message: ResponseStatus.updated,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -842,7 +842,7 @@ export class ManageFeeService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -888,7 +888,7 @@ export class ManageFeeService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.created, message: ResponseStatus.created,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -934,7 +934,7 @@ export class ManageFeeService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.updated, message: ResponseStatus.updated,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {

View File

@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common';
import { PgDBService } from 'src/db/db.service'; import { PgDBService } from 'src/db/db.service';
import { CONTACTSTABLE_ROW_DTO, CreateHolderContactsDTO, CreateHoldersDTO, GetHolderDTO, HolderActivateOrInactivateDTO, HolderContactActivateOrInactivateDTO, UpdateHolderContactDTO, UpdateHolderDTO } from 'src/dto/property.dto'; import { CONTACTSTABLE_ROW_DTO, CreateHolderContactsDTO, CreateHoldersDTO, GetHolderDTO, HolderActivateOrInactivateDTO, HolderContactActivateOrInactivateDTO, UpdateHolderContactDTO, UpdateHolderDTO } from 'src/dto/property.dto';
import { PoolClient } from 'pg'; import { PoolClient } from 'pg';
import { checkPgUserDefinedErrors, handlePgError, releasePgClient, ResponseStatus } from 'src/utils/helper'; import { checkPgUserDefinedErrors, handlePgError, releasePgClient, ResponseStatus, toUpperCaseKeys } from 'src/utils/helper';
@Injectable() @Injectable()
export class ManageHolderService { export class ManageHolderService {
@ -55,7 +55,7 @@ export class ManageHolderService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.created, message: ResponseStatus.created,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -122,7 +122,7 @@ export class ManageHolderService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.created, message: ResponseStatus.created,
...fetchResult?.rows?.[0] || {}, ...toUpperCaseKeys(fetchResult?.rows)[0],
}; };
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -179,7 +179,7 @@ export class ManageHolderService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.updated, message: ResponseStatus.updated,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -214,7 +214,7 @@ export class ManageHolderService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -265,7 +265,7 @@ export class ManageHolderService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.updated, message: ResponseStatus.updated,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -300,7 +300,7 @@ export class ManageHolderService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -337,7 +337,7 @@ export class ManageHolderService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.inActivate, message: ResponseStatus.inActivate,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -375,7 +375,7 @@ export class ManageHolderService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.reActivate, message: ResponseStatus.reActivate,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -413,7 +413,7 @@ export class ManageHolderService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.inActivate, message: ResponseStatus.inActivate,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -451,7 +451,7 @@ export class ManageHolderService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.reActivate, message: ResponseStatus.reActivate,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -486,7 +486,7 @@ export class ManageHolderService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');

View File

@ -2,7 +2,7 @@ import { Injectable, Logger } from '@nestjs/common';
import { PoolClient } from 'pg'; import { PoolClient } from 'pg';
import { PgDBService } from 'src/db/db.service'; import { PgDBService } from 'src/db/db.service';
import { ActivateOrInactivateParamRecordDTO, CreateParamRecordDTO, CreateTableRecordDTO, getParamValuesDTO, SPID_DTO, UpdateParamRecordDTO } from 'src/dto/property.dto'; import { ActivateOrInactivateParamRecordDTO, CreateParamRecordDTO, CreateTableRecordDTO, getParamValuesDTO, SPID_DTO, UpdateParamRecordDTO } from 'src/dto/property.dto';
import { checkPgUserDefinedErrors, handlePgError, releasePgClient, ResponseStatus } from 'src/utils/helper'; import { checkPgUserDefinedErrors, handlePgError, releasePgClient, ResponseStatus, toUpperCaseKeys } from 'src/utils/helper';
@Injectable() @Injectable()
export class ParamTableService { export class ParamTableService {
@ -32,7 +32,7 @@ export class ParamTableService {
await client.query(`CLOSE ${cursorName}`); await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT'); await client.query('COMMIT');
return fetchResult.rows; return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -64,7 +64,7 @@ export class ParamTableService {
await client.query(`CLOSE ${cursorName}`); await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT'); await client.query('COMMIT');
return fetchResult.rows; return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -95,7 +95,7 @@ export class ParamTableService {
await client.query(`CLOSE ${cursorName}`); await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT'); await client.query('COMMIT');
return fetchResult.rows; return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -129,8 +129,10 @@ export class ParamTableService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
let fr: any = toUpperCaseKeys(fetchResult?.rows)
// return fetchResult.rows; // return fetchResult.rows;
return { statusCode: 201, message: ResponseStatus.created, ...fetchResult?.rows[0] }; return { statusCode: 201, message: ResponseStatus.created, ...fr[0] };
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -181,11 +183,13 @@ export class ParamTableService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
let fr: any = toUpperCaseKeys(fetchResult?.rows)
// Return response // Return response
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.created, message: ResponseStatus.created,
...fetchResult?.rows?.[0] || {} ...fr[0] || {}
}; };
} catch (error) { } catch (error) {
@ -239,7 +243,7 @@ export class ParamTableService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.updated, message: ResponseStatus.updated,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {

View File

@ -4,7 +4,7 @@ import { CreateCarnetSequenceDTO, SPID_DTO } from 'src/dto/property.dto';
import { InternalServerException } from 'src/exceptions/internalServerError.exception'; import { InternalServerException } from 'src/exceptions/internalServerError.exception';
import { PoolClient } from 'pg'; import { PoolClient } from 'pg';
import { checkPgUserDefinedErrors, handlePgError, releasePgClient, ResponseStatus } from 'src/utils/helper'; import { checkPgUserDefinedErrors, handlePgError, releasePgClient, ResponseStatus, toUpperCaseKeys } from 'src/utils/helper';
@Injectable() @Injectable()
@ -37,7 +37,7 @@ export class CarnetSequenceService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return { statusCode: 201, message: ResponseStatus.created, ...fetchResult?.rows[0] }; return { statusCode: 201, message: ResponseStatus.created, ...toUpperCaseKeys(fetchResult?.rows)[0] };
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -69,7 +69,7 @@ export class CarnetSequenceService {
await client.query(`CLOSE ${cursorName}`); await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT'); await client.query('COMMIT');
return fetchResult.rows; return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');

View File

@ -4,7 +4,7 @@ import { InsertRegionsDto, SPID_DTO, UpdateRegionDto } from 'src/dto/property.dt
import { InternalServerException } from 'src/exceptions/internalServerError.exception'; import { InternalServerException } from 'src/exceptions/internalServerError.exception';
import { PoolClient } from 'pg'; import { PoolClient } from 'pg';
import { checkPgUserDefinedErrors, handlePgError, releasePgClient, ResponseStatus } from 'src/utils/helper'; import { checkPgUserDefinedErrors, handlePgError, releasePgClient, ResponseStatus, toUpperCaseKeys } from 'src/utils/helper';
@Injectable() @Injectable()
export class RegionService { export class RegionService {
@ -39,7 +39,7 @@ export class RegionService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.created, message: ResponseStatus.created,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -74,7 +74,7 @@ export class RegionService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return { statusCode: 200, message: ResponseStatus.updated, ...fetchResult?.rows[0] || {} }; return { statusCode: 200, message: ResponseStatus.updated, ...toUpperCaseKeys(fetchResult?.rows)[0] || {} };
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -107,7 +107,7 @@ export class RegionService {
await client.query(`CLOSE ${cursorName}`); await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT'); await client.query('COMMIT');
return fetchResult.rows; return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');

View File

@ -4,7 +4,7 @@ import { InternalServerException } from 'src/exceptions/internalServerError.exce
import { PoolClient } from 'pg'; import { PoolClient } from 'pg';
import { PgDBService } from 'src/db/db.service'; import { PgDBService } from 'src/db/db.service';
import { checkPgUserDefinedErrors, handlePgError, releasePgClient, ResponseStatus } from 'src/utils/helper'; import { checkPgUserDefinedErrors, handlePgError, releasePgClient, ResponseStatus, toUpperCaseKeys } from 'src/utils/helper';
@Injectable() @Injectable()
export class SpContactsService { export class SpContactsService {
@ -52,7 +52,7 @@ export class SpContactsService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.created, message: ResponseStatus.created,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -128,7 +128,7 @@ export class SpContactsService {
return { return {
statusCode: 200, statusCode: 200,
message: ResponseStatus.updated, message: ResponseStatus.updated,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -194,7 +194,7 @@ export class SpContactsService {
await client.query(`CLOSE ${cursorName}`); await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT'); await client.query('COMMIT');
return fetchResult.rows; return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -228,7 +228,7 @@ export class SpContactsService {
await client.query(`CLOSE ${cursorName}`); await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT'); await client.query('COMMIT');
return fetchResult.rows; return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');

View File

@ -4,7 +4,7 @@ import { InsertNewServiceProviderDTO, SPID_DTO, UpdateServiceProviderDTO } from
import { InternalServerException } from 'src/exceptions/internalServerError.exception'; import { InternalServerException } from 'src/exceptions/internalServerError.exception';
import { PoolClient } from 'pg'; import { PoolClient } from 'pg';
import { checkPgUserDefinedErrors, handlePgError, releasePgClient, ResponseStatus } from 'src/utils/helper'; import { checkPgUserDefinedErrors, handlePgError, releasePgClient, ResponseStatus, toUpperCaseKeys } from 'src/utils/helper';
@Injectable() @Injectable()
export class SpService { export class SpService {
@ -67,7 +67,7 @@ export class SpService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return { statusCode: 201, message: ResponseStatus.created, ...fetchResult?.rows[0] || {} }; return { statusCode: 201, message: ResponseStatus.created, ...toUpperCaseKeys(fetchResult?.rows)[0] || {} };
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -125,7 +125,7 @@ export class SpService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return { statusCode: 201, message: ResponseStatus.created, ...fetchResult?.rows[0] || {} }; return { statusCode: 201, message: ResponseStatus.created, ...toUpperCaseKeys(fetchResult?.rows)[0] || {} };
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -158,7 +158,7 @@ export class SpService {
await client.query(`CLOSE ${cursorName}`); await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT'); await client.query('COMMIT');
return fetchResult.rows; return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -192,7 +192,7 @@ export class SpService {
await client.query(`CLOSE ${cursorName}`); await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT'); await client.query('COMMIT');
return fetchResult.rows; return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');

View File

@ -16,11 +16,15 @@ export class UserMaintenanceController {
// SP_USER_DETAILS // SP_USER_DETAILS
// @Get('GetUserDetails/:P_USERID') // [spclientuser_pkg]
@Get('GetUserDetails/:P_USERID')
async GetPreparers(@Param() params: USERID_DTO) { async GetPreparers(@Param() params: USERID_DTO) {
return await this.userMaintenanceService.GetSPUserDetails(params); return await this.userMaintenanceService.GetSPUserDetails(params);
} }
// [userlogin_pkg]
@Patch('LockUserAccount') @Patch('LockUserAccount')
async LockUserAccount(@Body() body: SPID_EMAIL_DTO) { async LockUserAccount(@Body() body: SPID_EMAIL_DTO) {
return await this.userMaintenanceService.LockUserAccount(body); return await this.userMaintenanceService.LockUserAccount(body);

View File

@ -1,6 +1,6 @@
import { forwardRef, Inject, Injectable, Logger } from '@nestjs/common'; import { forwardRef, Inject, Injectable, Logger } from '@nestjs/common';
import { CreateClientLoginsDTO, CreateSPLoginsDTO, CreateUSCIBLoginsDTO, EMAIL_DTO, SPID_CLIENTID_DTO, SPID_DTO, SPID_EMAIL_DTO, USERID_DTO } from 'src/dto/property.dto'; import { CreateClientLoginsDTO, CreateSPLoginsDTO, CreateUSCIBLoginsDTO, EMAIL_DTO, SPID_CLIENTID_DTO, SPID_DTO, SPID_EMAIL_DTO, USERID_DTO } from 'src/dto/property.dto';
import { checkPgUserDefinedErrors, handlePgError, normalizeKeysToUpperCase, releasePgClient, ResponseStatus } from 'src/utils/helper'; import { checkPgUserDefinedErrors, handlePgError, normalizeKeysToUpperCase, releasePgClient, ResponseStatus, toUpperCaseKeys } from 'src/utils/helper';
import { PoolClient } from 'pg'; import { PoolClient } from 'pg';
import { PgDBService } from 'src/db/db.service'; import { PgDBService } from 'src/db/db.service';
@ -22,48 +22,53 @@ export class UserMaintenanceService {
async GetSPUserDetails(body: USERID_DTO): Promise<any> { async GetSPUserDetails(body: USERID_DTO): Promise<any> {
let client: PoolClient | null = null; let client: PoolClient | null = null;
const cursorName = 'p_cursor'; // Assign unique names to each cursor
const roleCursor = 'role_cursor';
const menuCursor = 'menu_cursor';
const menuPageCursor = 'menu_page_cursor';
const userDetailsCursor = 'user_details_cursor';
try { try {
client = await this.pgDBService.getConnection(); client = await this.pgDBService.getConnection();
await client.query('BEGIN'); await client.query('BEGIN');
const callProcQuery = ` const callProcQuery = `
CALL "CARNETSYS".userlogin_pkg_createclientlogins($1, $2, $3, $4, $5) CALL "CARNETSYS".spclientuser_pkg_getspuserdetails($1, $2, $3, $4, $5)
`; `;
await client.query(callProcQuery,
[ await client.query(callProcQuery, [
body.P_USERID, body.P_USERID,
cursorName roleCursor,
menuCursor,
menuPageCursor,
userDetailsCursor
]); ]);
// 🚫 DON'T quote the cursor name in FETCH // Fetch all data from each cursor
const fetchResult = await client.query(`FETCH ALL FROM ${cursorName}`); const roleResult = await client.query(`FETCH ALL FROM ${roleCursor}`);
const menuResult = await client.query(`FETCH ALL FROM ${menuCursor}`);
const menuPageResult = await client.query(`FETCH ALL FROM ${menuPageCursor}`);
const userDetailsResult = await client.query(`FETCH ALL FROM ${userDetailsCursor}`);
// Close all cursors
await client.query(`CLOSE ${roleCursor}`);
await client.query(`CLOSE ${menuCursor}`);
await client.query(`CLOSE ${menuPageCursor}`);
await client.query(`CLOSE ${userDetailsCursor}`);
// 🚫 DON'T quote the cursor name in CLOSE
await client.query(`CLOSE ${cursorName}`);
await client.query('COMMIT'); await client.query('COMMIT');
checkPgUserDefinedErrors(fetchResult);
const mailRes = await this.authService.sendMail({ P_TO: body.P_USERID, P_MAIL_TYPE: MailTypeDTO.REGISTER_CLIENT })
if (mailRes.statusCode !== 200) {
throw new InternalServerException();
}
return { return {
statusCode: 201, roleDetails: toUpperCaseKeys(roleResult.rows),
message: ResponseStatus.clientRegistrationDone, menuDetails: toUpperCaseKeys(menuResult.rows),
...fetchResult?.rows?.[0] || {} menuPageDetails: toUpperCaseKeys(menuPageResult.rows),
userDetails: toUpperCaseKeys(userDetailsResult.rows),
}; };
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
handlePgError(error, UserMaintenanceService.name) handlePgError(error, 'getSpUserDetails');
} finally { } finally {
releasePgClient(client) releasePgClient(client);
} }
} }
@ -100,7 +105,7 @@ export class UserMaintenanceService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.lockedUserDone, message: ResponseStatus.lockedUserDone,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -138,7 +143,7 @@ export class UserMaintenanceService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -183,7 +188,7 @@ export class UserMaintenanceService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.created, message: ResponseStatus.created,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -221,7 +226,7 @@ export class UserMaintenanceService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -266,10 +271,16 @@ export class UserMaintenanceService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
const mailRes = await this.authService.sendMail({ P_TO: body.P_USERID, P_MAIL_TYPE: MailTypeDTO.REGISTER_SP })
if (mailRes.statusCode !== 200) {
throw new InternalServerException();
}
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.created, message: ResponseStatus.created,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -307,7 +318,7 @@ export class UserMaintenanceService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -341,7 +352,7 @@ export class UserMaintenanceService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');
@ -392,7 +403,7 @@ export class UserMaintenanceService {
return { return {
statusCode: 201, statusCode: 201,
message: ResponseStatus.clientRegistrationDone, message: ResponseStatus.clientRegistrationDone,
...fetchResult?.rows?.[0] || {} ...toUpperCaseKeys(fetchResult?.rows)[0]
}; };
} catch (error) { } catch (error) {
@ -431,7 +442,7 @@ export class UserMaintenanceService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
if (fetchResult?.rows.length > 0) { if (fetchResult?.rows.length > 0) {
return [normalizeKeysToUpperCase(fetchResult?.rows[0])] return [toUpperCaseKeys(fetchResult.rows)[0]]
} }
else { else {
return []; return [];
@ -473,7 +484,7 @@ export class UserMaintenanceService {
checkPgUserDefinedErrors(fetchResult); checkPgUserDefinedErrors(fetchResult);
return fetchResult?.rows ? fetchResult?.rows : [] return toUpperCaseKeys(fetchResult.rows);
} catch (error) { } catch (error) {
if (client) await client.query('ROLLBACK'); if (client) await client.query('ROLLBACK');

View File

@ -28,6 +28,15 @@ export enum ResponseStatus {
transmitted = 'Transmitted Successfully', transmitted = 'Transmitted Successfully',
added = 'Added Successfully', added = 'Added Successfully',
deleted = 'Deleted Successfully', deleted = 'Deleted Successfully',
processed = 'Processed Successfully',
voided = 'Voided Successfully',
copied = 'Coppied Successfully',
duplicated = 'Duplicated Successfully',
addl_completed = 'Additional sets completed',
extended = 'Extended Successfully',
saved = 'Saved Successfully',
closed = 'Closed Successfully',
reset_successfull = 'Reset Successfull'
} }
@ -38,6 +47,17 @@ export function normalizeKeysToUpperCase(obj) {
}, {}); }, {});
} }
export function toUpperCaseKeys(rows: Record<string, any>[]): Record<string, any>[] {
return rows.map(row => {
const transformedRow: Record<string, any> = {};
for (const key in row) {
transformedRow[key.toUpperCase()] = row[key];
}
return transformedRow;
});
}
export const handleError = (error: any, context: string = 'UnknownService'): never => { export const handleError = (error: any, context: string = 'UnknownService'): never => {
if (error instanceof BadRequestException || error instanceof BR) { if (error instanceof BadRequestException || error instanceof BR) {