pg-mvc-service 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Service.js CHANGED
@@ -120,6 +120,20 @@ class Service {
120
120
  });
121
121
  return;
122
122
  }
123
+ else if (ex instanceof Exception_1.DbConflictException) {
124
+ this.res.status(409).json({
125
+ errorCode: `${this.apiCode}-${ex.ErrorId}`,
126
+ errorMessage: ex.message
127
+ });
128
+ return;
129
+ }
130
+ else if (ex instanceof Exception_1.BusinessLogicException) {
131
+ this.res.status(422).json({
132
+ errorCode: `${this.apiCode}-${ex.ErrorId}`,
133
+ errorMessage: ex.message
134
+ });
135
+ return;
136
+ }
123
137
  else if (ex instanceof Exception_1.MaintenanceException) {
124
138
  this.res.status(503).json({
125
139
  errorMessage: ex.message
@@ -19,15 +19,10 @@ class InputErrorException extends Error {
19
19
  get ErrorId() {
20
20
  return this.errorId;
21
21
  }
22
- get ErrorLog() {
23
- return this.errorLog;
24
- }
25
- constructor(errorId, message = "", errorLog = "") {
22
+ constructor(errorId, message = "") {
26
23
  super(message);
27
24
  this.errorId = "";
28
- this.errorLog = "";
29
25
  this.errorId = errorId;
30
- this.errorLog = errorLog;
31
26
  }
32
27
  }
33
28
  exports.InputErrorException = InputErrorException;
@@ -38,16 +33,26 @@ class MaintenanceException extends Error {
38
33
  }
39
34
  exports.MaintenanceException = MaintenanceException;
40
35
  class DbConflictException extends Error {
41
- // for 409 Conflict
42
- constructor(message = "") {
36
+ get ErrorId() {
37
+ return this.errorId;
38
+ }
39
+ constructor(errorId, message = "") {
43
40
  super(message);
41
+ // for 409 Conflict
42
+ this.errorId = "";
43
+ this.errorId = errorId;
44
44
  }
45
45
  }
46
46
  exports.DbConflictException = DbConflictException;
47
47
  class BusinessLogicException extends Error {
48
- // for 422 Unprocessable Entity
49
- constructor(message = "") {
48
+ get ErrorId() {
49
+ return this.errorId;
50
+ }
51
+ constructor(errorId, message = "") {
50
52
  super(message);
53
+ // for 422 Unprocessable Entity
54
+ this.errorId = "";
55
+ this.errorId = errorId;
51
56
  }
52
57
  }
53
58
  exports.BusinessLogicException = BusinessLogicException;
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rollback = exports.migrate = exports.MigrateDatabase = exports.MigrateTable = exports.createTableDoc = exports.TableModel = exports.ResponseType = exports.RequestType = exports.EncryptClient = exports.StringClient = exports.Base64Client = exports.AwsS3Client = exports.createSwagger = exports.ForbiddenException = exports.InputErrorException = exports.AuthException = exports.MaintenanceException = exports.Service = void 0;
3
+ exports.rollback = exports.migrate = exports.MigrateDatabase = exports.MigrateTable = exports.createTableDoc = exports.TableModel = exports.ResponseType = exports.RequestType = exports.EncryptClient = exports.StringClient = exports.Base64Client = exports.AwsS3Client = exports.createSwagger = exports.BusinessLogicException = exports.DbConflictException = exports.ForbiddenException = exports.InputErrorException = exports.AuthException = exports.MaintenanceException = exports.Service = void 0;
4
4
  var Service_1 = require("./Service");
5
5
  Object.defineProperty(exports, "Service", { enumerable: true, get: function () { return Service_1.Service; } });
6
6
  var Exception_1 = require("./exceptions/Exception");
@@ -8,6 +8,8 @@ Object.defineProperty(exports, "MaintenanceException", { enumerable: true, get:
8
8
  Object.defineProperty(exports, "AuthException", { enumerable: true, get: function () { return Exception_1.AuthException; } });
9
9
  Object.defineProperty(exports, "InputErrorException", { enumerable: true, get: function () { return Exception_1.InputErrorException; } });
10
10
  Object.defineProperty(exports, "ForbiddenException", { enumerable: true, get: function () { return Exception_1.ForbiddenException; } });
11
+ Object.defineProperty(exports, "DbConflictException", { enumerable: true, get: function () { return Exception_1.DbConflictException; } });
12
+ Object.defineProperty(exports, "BusinessLogicException", { enumerable: true, get: function () { return Exception_1.BusinessLogicException; } });
11
13
  var Swagger_1 = require("./documents/Swagger");
12
14
  Object.defineProperty(exports, "createSwagger", { enumerable: true, get: function () { return Swagger_1.createSwagger; } });
13
15
  var AwsS3Client_1 = require("./clients/AwsS3Client");
@@ -17,6 +17,7 @@ const ValidateValueUtil_1 = __importDefault(require("./SqlUtils/ValidateValueUti
17
17
  const SelectExpression_1 = __importDefault(require("./SqlUtils/SelectExpression"));
18
18
  const WhereExpression_1 = __importDefault(require("./SqlUtils/WhereExpression"));
19
19
  const ValidateClient_1 = __importDefault(require("./ValidateClient"));
20
+ const Exception_1 = require("../exceptions/Exception");
20
21
  class TableModel {
21
22
  get DbName() { return this.dbName; }
22
23
  get TableName() {
@@ -366,7 +367,7 @@ class TableModel {
366
367
  });
367
368
  }
368
369
  throwValidationError(code, message) {
369
- throw new Error(message);
370
+ throw new Exception_1.InputErrorException(code, message);
370
371
  }
371
372
  validateOptions(options, isInsert) {
372
373
  return __awaiter(this, void 0, void 0, function* () {
@@ -422,8 +423,10 @@ class TableModel {
422
423
  this.throwValidationError("004", this.errorMessages.fk.replace('{name}', name));
423
424
  }
424
425
  let refIndex = 1;
425
- const sql = `SELECT COUNT(*) as count FROM ${ref.table} WHERE ${ref.columns.map(col => `${col.ref} = $${refIndex++}`)}`;
426
+ const sql = `SELECT COUNT(*) as count FROM ${ref.table} WHERE ${ref.columns.map(col => `${col.ref} = $${refIndex++}`).join(" AND ")}`;
426
427
  const datas = yield this.clientQuery(sql, refValues);
428
+ console.log(datas);
429
+ console.log(datas.rows[0].count == "0");
427
430
  if (datas.rows[0].count == "0") {
428
431
  const name = ref.columns.map(col => { var _a; return (_a = this.getColumn(col.target).alias) !== null && _a !== void 0 ? _a : this.getColumn(col.target).columnName; }).join(',');
429
432
  this.throwValidationError("004", this.errorMessages.fk.replace('{name}', name));
@@ -530,7 +533,7 @@ class TableModel {
530
533
  const sql = `UPDATE ${this.TableName} SET ${updateExpressions.join(',')} WHERE id = $${vars.length}`;
531
534
  const data = yield this.executeQuery(sql, vars);
532
535
  if (data.rowCount !== 1) {
533
- this.throwValidationError("201", this.errorMessages.idNotExist.replace('{id}', id));
536
+ throw new Exception_1.BusinessLogicException("201", this.errorMessages.idNotExist.replace('{id}', id));
534
537
  }
535
538
  });
536
539
  }
@@ -564,7 +567,7 @@ class TableModel {
564
567
  let sql = `DELETE FROM ${this.TableName} WHERE id = $1`;
565
568
  const datas = yield this.executeQuery(sql, [id]);
566
569
  if (datas.rowCount !== 1) {
567
- this.throwValidationError("301", this.errorMessages.idNotExist.replace('{id}', id));
570
+ throw new Exception_1.BusinessLogicException("301", this.errorMessages.idNotExist.replace('{id}', id));
568
571
  }
569
572
  });
570
573
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pg-mvc-service",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/n-daira/npm-pack_mvc-service#readme",
6
6
  "bugs": {
package/src/Service.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import axios, { AxiosResponse } from "axios";
2
2
  import { Request, Response } from 'express';
3
3
  import { Pool, type PoolClient } from 'pg';
4
- import { MaintenanceException, AuthException, InputErrorException, ForbiddenException } from './exceptions/Exception';
4
+ import { MaintenanceException, AuthException, InputErrorException, ForbiddenException, DbConflictException, BusinessLogicException } from './exceptions/Exception';
5
5
  import { RequestType } from './reqestResponse/RequestType';
6
6
  import { ResponseType } from './reqestResponse/ResponseType';
7
7
  import { AwsS3Client } from './clients/AwsS3Client';
@@ -104,6 +104,18 @@ export class Service {
104
104
  errorMessage : ex.message
105
105
  });
106
106
  return;
107
+ } else if (ex instanceof DbConflictException) {
108
+ this.res.status(409).json({
109
+ errorCode : `${this.apiCode}-${ex.ErrorId}`,
110
+ errorMessage : ex.message
111
+ });
112
+ return;
113
+ } else if (ex instanceof BusinessLogicException) {
114
+ this.res.status(422).json({
115
+ errorCode : `${this.apiCode}-${ex.ErrorId}`,
116
+ errorMessage : ex.message
117
+ });
118
+ return;
107
119
  } else if (ex instanceof MaintenanceException) {
108
120
  this.res.status(503).json({
109
121
  errorMessage : ex.message
@@ -242,7 +254,7 @@ export class Service {
242
254
  }
243
255
  } catch (ex) {
244
256
  let response = (ex as any).response as AxiosResponse<TResponse>;
245
- if (response && [400,401,403,409,422].includes(response.status)) {
257
+ if (response && [400, 401, 403, 409, 422].includes(response.status)) {
246
258
  return response;
247
259
  }
248
260
  throw ex;
@@ -14,21 +14,14 @@ export class ForbiddenException extends Error {
14
14
  }
15
15
 
16
16
  export class InputErrorException extends Error {
17
-
18
17
  private errorId: string = "";
19
18
  get ErrorId(): string {
20
19
  return this.errorId;
21
20
  }
22
21
 
23
- private errorLog: string = "";
24
- get ErrorLog(): string {
25
- return this.errorLog;
26
- }
27
-
28
- constructor(errorId: string, message: string = "", errorLog: string = "") {
22
+ constructor(errorId: string, message: string = "") {
29
23
  super(message);
30
24
  this.errorId = errorId;
31
- this.errorLog = errorLog;
32
25
  }
33
26
  }
34
27
 
@@ -41,14 +34,26 @@ export class MaintenanceException extends Error {
41
34
 
42
35
  export class DbConflictException extends Error {
43
36
  // for 409 Conflict
44
- constructor(message: string = "") {
37
+ private errorId: string = "";
38
+ get ErrorId(): string {
39
+ return this.errorId;
40
+ }
41
+
42
+ constructor(errorId: string, message: string = "") {
45
43
  super(message);
44
+ this.errorId = errorId;
46
45
  }
47
46
  }
48
47
 
49
48
  export class BusinessLogicException extends Error {
50
49
  // for 422 Unprocessable Entity
51
- constructor(message: string = "") {
50
+ private errorId: string = "";
51
+ get ErrorId(): string {
52
+ return this.errorId;
53
+ }
54
+
55
+ constructor(errorId: string, message: string = "") {
52
56
  super(message);
57
+ this.errorId = errorId;
53
58
  }
54
59
  }
package/src/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { Service } from './Service';
2
- export { MaintenanceException, AuthException, InputErrorException, ForbiddenException } from './exceptions/Exception';
2
+ export { MaintenanceException, AuthException, InputErrorException, ForbiddenException, DbConflictException, BusinessLogicException } from './exceptions/Exception';
3
3
  export { createSwagger } from './documents/Swagger';
4
4
  export { AwsS3Client } from './clients/AwsS3Client';
5
5
  export { Base64Client } from './clients/Base64Client';
@@ -4,6 +4,7 @@ import ValidateValueUtil from './SqlUtils/ValidateValueUtil';
4
4
  import SelectExpression from './SqlUtils/SelectExpression';
5
5
  import WhereExpression from './SqlUtils/WhereExpression';
6
6
  import ValidateClient from './ValidateClient';
7
+ import { BusinessLogicException, InputErrorException } from '../exceptions/Exception';
7
8
 
8
9
  export class TableModel {
9
10
 
@@ -422,7 +423,7 @@ export class TableModel {
422
423
  'idNotExist': 'The specified ID({id}) does not exist in the table.',
423
424
  }
424
425
  public throwValidationError(code: string, message: string): never {
425
- throw new Error(message);
426
+ throw new InputErrorException(code, message);
426
427
  }
427
428
 
428
429
  protected async validateOptions(options: TOption, isInsert: boolean): Promise<void> {
@@ -486,8 +487,10 @@ export class TableModel {
486
487
  }
487
488
 
488
489
  let refIndex = 1;
489
- const sql = `SELECT COUNT(*) as count FROM ${ref.table} WHERE ${ref.columns.map(col => `${col.ref} = $${refIndex++}`)}`;
490
+ const sql = `SELECT COUNT(*) as count FROM ${ref.table} WHERE ${ref.columns.map(col => `${col.ref} = $${refIndex++}`).join(" AND ")}`;
490
491
  const datas = await this.clientQuery(sql, refValues);
492
+ console.log(datas);
493
+ console.log(datas.rows[0].count == "0");
491
494
  if (datas.rows[0].count == "0") {
492
495
  const name = ref.columns.map(col => this.getColumn(col.target).alias ?? this.getColumn(col.target).columnName).join(',');
493
496
  this.throwValidationError("004", this.errorMessages.fk.replace('{name}', name));
@@ -598,7 +601,7 @@ export class TableModel {
598
601
  const sql = `UPDATE ${this.TableName} SET ${updateExpressions.join(',')} WHERE id = $${vars.length}`;
599
602
  const data = await this.executeQuery(sql, vars);
600
603
  if (data.rowCount !== 1) {
601
- this.throwValidationError("201", this.errorMessages.idNotExist.replace('{id}', id));
604
+ throw new BusinessLogicException("201", this.errorMessages.idNotExist.replace('{id}', id));
602
605
  }
603
606
  }
604
607
 
@@ -635,7 +638,7 @@ export class TableModel {
635
638
 
636
639
  const datas = await this.executeQuery(sql, [id]);
637
640
  if (datas.rowCount !== 1) {
638
- this.throwValidationError("301", this.errorMessages.idNotExist.replace('{id}', id));
641
+ throw new BusinessLogicException("301", this.errorMessages.idNotExist.replace('{id}', id));
639
642
  }
640
643
  }
641
644