@digione/node-custom-api 0.0.1

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.
Files changed (161) hide show
  1. package/constants/header.d.ts +10 -0
  2. package/constants/header.js +2 -0
  3. package/constants/http.d.ts +44 -0
  4. package/constants/http.js +2 -0
  5. package/database/index.d.ts +3 -0
  6. package/database/index.js +34 -0
  7. package/database/redis.d.ts +15 -0
  8. package/database/redis.js +68 -0
  9. package/errors/authError.d.ts +55 -0
  10. package/errors/authError.js +57 -0
  11. package/errors/index.d.ts +32 -0
  12. package/errors/index.js +113 -0
  13. package/index.d.ts +1 -0
  14. package/index.js +4 -0
  15. package/interface/param.d.ts +41 -0
  16. package/interface/param.js +2 -0
  17. package/middlewares/accessToken.d.ts +13 -0
  18. package/middlewares/accessToken.js +200 -0
  19. package/middlewares/coreSite.d.ts +4 -0
  20. package/middlewares/coreSite.js +52 -0
  21. package/middlewares/paramQuery.d.ts +16 -0
  22. package/middlewares/paramQuery.js +220 -0
  23. package/middlewares/refSite.d.ts +2 -0
  24. package/middlewares/refSite.js +58 -0
  25. package/middlewares/refreshToken.d.ts +2 -0
  26. package/middlewares/refreshToken.js +56 -0
  27. package/middlewares/systemSite.d.ts +6 -0
  28. package/middlewares/systemSite.js +106 -0
  29. package/middlewares/webSite.d.ts +7 -0
  30. package/middlewares/webSite.js +109 -0
  31. package/models/core/city.d.ts +66 -0
  32. package/models/core/city.js +79 -0
  33. package/models/core/country.d.ts +35 -0
  34. package/models/core/country.js +44 -0
  35. package/models/core/district.d.ts +17 -0
  36. package/models/core/district.js +23 -0
  37. package/models/core/domain.d.ts +57 -0
  38. package/models/core/domain.js +75 -0
  39. package/models/core/site.d.ts +60 -0
  40. package/models/core/site.js +70 -0
  41. package/models/core/state.d.ts +49 -0
  42. package/models/core/state.js +58 -0
  43. package/models/core/zipcode.d.ts +5 -0
  44. package/models/core/zipcode.js +28 -0
  45. package/models/stream/field.d.ts +60 -0
  46. package/models/stream/field.js +66 -0
  47. package/models/stream/field_section.d.ts +33 -0
  48. package/models/stream/field_section.js +39 -0
  49. package/models/stream/stream.d.ts +89 -0
  50. package/models/stream/stream.js +97 -0
  51. package/models/system/currency.d.ts +5 -0
  52. package/models/system/currency.js +32 -0
  53. package/models/system/email_log.d.ts +5 -0
  54. package/models/system/email_log.js +54 -0
  55. package/models/system/email_sender.d.ts +22 -0
  56. package/models/system/email_sender.js +53 -0
  57. package/models/system/email_template.d.ts +5 -0
  58. package/models/system/email_template.js +49 -0
  59. package/models/system/file.d.ts +98 -0
  60. package/models/system/file.js +111 -0
  61. package/models/system/folder.d.ts +59 -0
  62. package/models/system/folder.js +78 -0
  63. package/models/system/language.d.ts +44 -0
  64. package/models/system/language.js +50 -0
  65. package/models/system/metadata.d.ts +5 -0
  66. package/models/system/metadata.js +24 -0
  67. package/models/system/module.d.ts +5 -0
  68. package/models/system/module.js +35 -0
  69. package/models/system/notification_log.d.ts +25 -0
  70. package/models/system/notification_log.js +76 -0
  71. package/models/system/notification_module.d.ts +5 -0
  72. package/models/system/notification_module.js +35 -0
  73. package/models/system/notification_setting.d.ts +22 -0
  74. package/models/system/notification_setting.js +44 -0
  75. package/models/system/notification_template.d.ts +5 -0
  76. package/models/system/notification_template.js +49 -0
  77. package/models/system/notification_type.d.ts +5 -0
  78. package/models/system/notification_type.js +38 -0
  79. package/models/system/payment_transaction.d.ts +5 -0
  80. package/models/system/payment_transaction.js +46 -0
  81. package/models/system/pdf_page.d.ts +5 -0
  82. package/models/system/pdf_page.js +39 -0
  83. package/models/system/pdf_template.d.ts +22 -0
  84. package/models/system/pdf_template.js +67 -0
  85. package/models/system/review_template.d.ts +5 -0
  86. package/models/system/review_template.js +35 -0
  87. package/models/system/review_vote.d.ts +5 -0
  88. package/models/system/review_vote.js +36 -0
  89. package/models/system/session.d.ts +5 -0
  90. package/models/system/session.js +19 -0
  91. package/models/system/setting.d.ts +15 -0
  92. package/models/system/setting.js +22 -0
  93. package/models/system/site_token.d.ts +25 -0
  94. package/models/system/site_token.js +31 -0
  95. package/models/system/sms_log.d.ts +4 -0
  96. package/models/system/sms_log.js +52 -0
  97. package/models/system/sms_setting.d.ts +4 -0
  98. package/models/system/sms_setting.js +39 -0
  99. package/models/system/sms_template.d.ts +5 -0
  100. package/models/system/sms_template.js +48 -0
  101. package/models/system/tax.d.ts +5 -0
  102. package/models/system/tax.js +33 -0
  103. package/models/system/website.d.ts +56 -0
  104. package/models/system/website.js +66 -0
  105. package/models/system/zone.d.ts +57 -0
  106. package/models/system/zone.js +141 -0
  107. package/models/user/access_token.d.ts +37 -0
  108. package/models/user/access_token.js +46 -0
  109. package/models/user/address.d.ts +69 -0
  110. package/models/user/address.js +119 -0
  111. package/models/user/b2b_group.d.ts +57 -0
  112. package/models/user/b2b_group.js +63 -0
  113. package/models/user/group.d.ts +28 -0
  114. package/models/user/group.js +34 -0
  115. package/models/user/group_permission.d.ts +4 -0
  116. package/models/user/group_permission.js +27 -0
  117. package/models/user/notification_token.d.ts +32 -0
  118. package/models/user/notification_token.js +39 -0
  119. package/models/user/organ.d.ts +85 -0
  120. package/models/user/organ.js +100 -0
  121. package/models/user/profile.d.ts +31 -0
  122. package/models/user/profile.js +37 -0
  123. package/models/user/refresh_token.d.ts +41 -0
  124. package/models/user/refresh_token.js +51 -0
  125. package/models/user/team.d.ts +59 -0
  126. package/models/user/team.js +71 -0
  127. package/models/user/user.d.ts +79 -0
  128. package/models/user/user.js +100 -0
  129. package/models/user/user_organ.d.ts +52 -0
  130. package/models/user/user_organ.js +87 -0
  131. package/package.json +59 -0
  132. package/utils/auth.d.ts +25 -0
  133. package/utils/auth.js +137 -0
  134. package/utils/config.d.ts +8 -0
  135. package/utils/config.js +6 -0
  136. package/utils/core.d.ts +6 -0
  137. package/utils/core.js +39 -0
  138. package/utils/currency.d.ts +16 -0
  139. package/utils/currency.js +38 -0
  140. package/utils/db.d.ts +94 -0
  141. package/utils/db.js +399 -0
  142. package/utils/file.d.ts +232 -0
  143. package/utils/file.js +772 -0
  144. package/utils/helper.d.ts +113 -0
  145. package/utils/helper.js +508 -0
  146. package/utils/index.d.ts +10 -0
  147. package/utils/index.js +13 -0
  148. package/utils/language.d.ts +18 -0
  149. package/utils/language.js +48 -0
  150. package/utils/metadata.d.ts +18 -0
  151. package/utils/metadata.js +50 -0
  152. package/utils/session.d.ts +37 -0
  153. package/utils/session.js +60 -0
  154. package/utils/setting.d.ts +14 -0
  155. package/utils/setting.js +70 -0
  156. package/utils/stream.d.ts +303 -0
  157. package/utils/stream.js +1893 -0
  158. package/utils/user.d.ts +61 -0
  159. package/utils/user.js +282 -0
  160. package/utils/validator.d.ts +56 -0
  161. package/utils/validator.js +269 -0
@@ -0,0 +1,10 @@
1
+ export declare const enum HEADER {
2
+ COUNT = "X-Total-Count",
3
+ PRICE_RANGE = "X-Price-Range",
4
+ TITLE = "X-Title",
5
+ TOTAL = "X-Total",
6
+ IMAGE = "X-Image",
7
+ CLIENT_SITE = "X-Client-Site",
8
+ ACCESS_TOKEN = "X-Access-Token",
9
+ REFRESH_TOKEN = "X-Refresh-Token"
10
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,44 @@
1
+ export declare const enum HTTP {
2
+ CONTINUE = 100,
3
+ SWITCHING_PROTOCOLS = 101,
4
+ OK = 200,
5
+ CREATED = 201,
6
+ ACCEPTED = 202,
7
+ NON_AUTHORITATIVE_INFORMATION = 203,
8
+ NO_CONTENT = 204,
9
+ RESET_CONTENT = 205,
10
+ PARTIAL_CONTENT = 206,
11
+ MULTIPLE_CHOICES = 300,
12
+ MOVED_PERMANENTLY = 301,
13
+ FOUND = 302,
14
+ SEE_OTHER = 303,
15
+ NOT_MODIFIED = 304,
16
+ USE_PROXY = 305,
17
+ TEMPORARY_REDIRECT = 307,
18
+ BAD_REQUEST = 400,
19
+ UNAUTHORIZED = 401,
20
+ PAYMENT_REQUIRED = 402,
21
+ FORBIDDEN = 403,
22
+ NOT_FOUND = 404,
23
+ METHOD_NOT_ALLOWED = 405,
24
+ NOT_ACCEPTABLE = 406,
25
+ PROXY_AUTHENTICATION_REQUIRED = 407,
26
+ REQUEST_TIMEOUT = 408,
27
+ CONFLICT = 409,
28
+ GONE = 410,
29
+ LENGTH_REQUIRED = 411,
30
+ PRECONDITION_FAILED = 412,
31
+ REQUEST_ENTITY_TOO_LARGE = 413,
32
+ REQUEST_URI_TOO_LONG = 414,
33
+ UNSUPPORTED_MEDIA_TYPE = 415,
34
+ REQUESTED_RANGE_NOT_SATISFIABLE = 416,
35
+ EXPECTATION_FAILED = 417,
36
+ UNPROCESSABLE_ENTITY = 422,
37
+ TOO_MANY_REQUESTS = 429,
38
+ INTERNAL_SERVER_ERROR = 500,
39
+ NOT_IMPLEMENTED = 501,
40
+ BAD_GATEWAY = 502,
41
+ SERVICE_UNAVAILABLE = 503,
42
+ GATEWAY_TIMEOUT = 504,
43
+ HTTP_VERSION_NOT_SUPPORTED = 505
44
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,3 @@
1
+ import { Sequelize } from 'sequelize';
2
+ declare const _default: Sequelize;
3
+ export default _default;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sequelize_1 = require("sequelize");
4
+ const helper_1 = require("../utils/helper");
5
+ const database = (0, helper_1.getENV)("DATABASE");
6
+ const username = (0, helper_1.getENV)('DATABASE_USERNAME');
7
+ const password = (0, helper_1.getENV)('DATABASE_PASSWORD');
8
+ const host = (0, helper_1.getENV)('DATABASE_HOST');
9
+ const port = (0, helper_1.getENV)('DATABASE_PORT');
10
+ const charset = (0, helper_1.getENV)('DATABASE_CHARSET');
11
+ const poolMax = Number((0, helper_1.getENV)('DATABASE_POOL_MAX', '10'));
12
+ const poolMin = Number((0, helper_1.getENV)('DATABASE_POOL_MIN', '2'));
13
+ const poolAcquire = Number((0, helper_1.getENV)('DATABASE_POOL_ACQUIRE', '60000'));
14
+ const poolIdle = Number((0, helper_1.getENV)('DATABASE_POOL_IDLE', '10000'));
15
+ const logging = ((0, helper_1.getENV)('DATABASE_LOGGING') === "true");
16
+ exports.default = new sequelize_1.Sequelize(database, username, password, {
17
+ host,
18
+ port,
19
+ dialect: "mysql",
20
+ pool: {
21
+ max: poolMax,
22
+ min: poolMin,
23
+ acquire: poolAcquire,
24
+ idle: poolIdle
25
+ },
26
+ define: {
27
+ timestamps: false,
28
+ freezeTableName: true,
29
+ charset: charset,
30
+ omitNull: true
31
+ },
32
+ dialectOptions: { decimalNumbers: true },
33
+ logging
34
+ });
@@ -0,0 +1,15 @@
1
+ import { Redis } from 'ioredis';
2
+ import { QueueOptions } from 'bull';
3
+ declare let redisReady: boolean, redisError: any;
4
+ declare const redisClient: Redis;
5
+ declare const redisGet: any;
6
+ declare const redisMGet: any;
7
+ declare const redisHMGet: any;
8
+ declare const redisSet: any;
9
+ declare const redisHSet: any;
10
+ declare const redisHDel: any;
11
+ declare const redisDel: any;
12
+ declare const redisHgetall: any;
13
+ declare const redisFlushDb: any;
14
+ declare const redisQueueOpts: QueueOptions;
15
+ export { redisClient, redisQueueOpts, redisReady, redisError, redisGet, redisMGet, redisHMGet, redisSet, redisHSet, redisHDel, redisDel, redisHgetall, redisFlushDb };
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.redisFlushDb = exports.redisHgetall = exports.redisDel = exports.redisHDel = exports.redisHSet = exports.redisSet = exports.redisHMGet = exports.redisMGet = exports.redisGet = exports.redisError = exports.redisReady = exports.redisQueueOpts = exports.redisClient = void 0;
4
+ const ioredis_1 = require("ioredis");
5
+ const helper_1 = require("../utils/helper");
6
+ const EventEmitter = require("events");
7
+ const host = (0, helper_1.getENV)('REDIS_HOST');
8
+ const port = Number((0, helper_1.getENV)('REDIS_PORT', '6379'));
9
+ let option = { host, port, maxRetriesPerRequest: null, enableReadyCheck: false }, redisReady = false, redisError;
10
+ exports.redisReady = redisReady;
11
+ if ((0, helper_1.getENV)("REDIS_PASSWORD")) {
12
+ option['password'] = (0, helper_1.getENV)("REDIS_PASSWORD");
13
+ }
14
+ EventEmitter.setMaxListeners(0);
15
+ const redisClient = new ioredis_1.Redis(option);
16
+ exports.redisClient = redisClient;
17
+ redisClient.connect();
18
+ redisClient.on("error", (err) => {
19
+ exports.redisReady = redisReady = false;
20
+ exports.redisError = redisError = err['code'];
21
+ console.log("Redis Error", err);
22
+ if ((0, helper_1.getENV)("NODE_ENV") != "production") {
23
+ redisClient.quit();
24
+ }
25
+ });
26
+ redisClient.on('connect', () => {
27
+ exports.redisReady = redisReady = true;
28
+ exports.redisError = redisError = undefined;
29
+ console.log('connected to redis');
30
+ });
31
+ const redisGet = redisClient.get.bind(redisClient);
32
+ exports.redisGet = redisGet;
33
+ const redisMGet = redisClient.mget.bind(redisClient);
34
+ exports.redisMGet = redisMGet;
35
+ const redisHMGet = redisClient.hmget.bind(redisClient);
36
+ exports.redisHMGet = redisHMGet;
37
+ const redisSet = redisClient.set.bind(redisClient);
38
+ exports.redisSet = redisSet;
39
+ const redisHSet = redisClient.hset.bind(redisClient);
40
+ exports.redisHSet = redisHSet;
41
+ const redisHDel = redisClient.hdel.bind(redisClient);
42
+ exports.redisHDel = redisHDel;
43
+ const redisDel = redisClient.del.bind(redisClient);
44
+ exports.redisDel = redisDel;
45
+ const redisHgetall = redisClient.hgetall.bind(redisClient);
46
+ exports.redisHgetall = redisHgetall;
47
+ const redisFlushDb = redisClient.flushdb.bind(redisClient);
48
+ exports.redisFlushDb = redisFlushDb;
49
+ let redisQueueSubscriber;
50
+ const redisQueueOpts = {
51
+ createClient: function (type) {
52
+ switch (type) {
53
+ case 'client':
54
+ return redisClient;
55
+ case 'subscriber':
56
+ if (!redisQueueSubscriber) {
57
+ redisQueueSubscriber = new ioredis_1.Redis(option);
58
+ }
59
+ return redisQueueSubscriber;
60
+ case 'bclient':
61
+ return new ioredis_1.Redis(option);
62
+ default:
63
+ throw new Error('Unexpected connection type: ' + type);
64
+ }
65
+ },
66
+ defaultJobOptions: { removeOnComplete: true, removeOnFail: true }
67
+ };
68
+ exports.redisQueueOpts = redisQueueOpts;
@@ -0,0 +1,55 @@
1
+ import { HTTP } from '../constants/http';
2
+ export declare const authError: {
3
+ DUPLICATE_EMAIL: {
4
+ code: HTTP;
5
+ message: string;
6
+ };
7
+ DUPLICATE_USERNAME: {
8
+ code: HTTP;
9
+ message: string;
10
+ };
11
+ DOMAIN_NOT_ALLOWED: {
12
+ code: HTTP;
13
+ message: string;
14
+ };
15
+ API_KEY_IS_INVALID: {
16
+ code: HTTP;
17
+ message: string;
18
+ };
19
+ SECRET_KEY_IS_INVALID: {
20
+ code: HTTP;
21
+ message: string;
22
+ };
23
+ TOKEN_IS_INVALID: {
24
+ code: HTTP;
25
+ message: string;
26
+ };
27
+ TOKEN_EXPIRED: {
28
+ code: HTTP;
29
+ message: string;
30
+ };
31
+ EMAIL_OR_PASSWORD_IS_WRONG: {
32
+ code: HTTP;
33
+ message: string;
34
+ };
35
+ DOMAIN_IS_WRONG: {
36
+ code: HTTP;
37
+ message: string;
38
+ };
39
+ MODULE_IS_NOT_INSTALLED: {
40
+ code: HTTP;
41
+ message: string;
42
+ };
43
+ TOKEN_SITE_IS_WRONG: {
44
+ code: HTTP;
45
+ message: string;
46
+ };
47
+ ACCESS_DENINED: {
48
+ code: HTTP;
49
+ message: string;
50
+ };
51
+ QUOTA_EXCEEDED: {
52
+ code: HTTP;
53
+ message: string;
54
+ };
55
+ };
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.authError = void 0;
4
+ exports.authError = {
5
+ DUPLICATE_EMAIL: {
6
+ code: 400 /* HTTP.BAD_REQUEST */,
7
+ message: 'DUPLICATE_EMAIL'
8
+ },
9
+ DUPLICATE_USERNAME: {
10
+ code: 400 /* HTTP.BAD_REQUEST */,
11
+ message: 'DUPLICATE_USERNAME'
12
+ },
13
+ DOMAIN_NOT_ALLOWED: {
14
+ code: 401 /* HTTP.UNAUTHORIZED */,
15
+ message: 'DOMAIN_NOT_ALLOWED'
16
+ },
17
+ API_KEY_IS_INVALID: {
18
+ code: 401 /* HTTP.UNAUTHORIZED */,
19
+ message: 'API_KEY_IS_INVALID'
20
+ },
21
+ SECRET_KEY_IS_INVALID: {
22
+ code: 401 /* HTTP.UNAUTHORIZED */,
23
+ message: 'SECRET_KEY_IS_INVALID'
24
+ },
25
+ TOKEN_IS_INVALID: {
26
+ code: 401 /* HTTP.UNAUTHORIZED */,
27
+ message: 'TOKEN_IS_INVALID'
28
+ },
29
+ TOKEN_EXPIRED: {
30
+ code: 401 /* HTTP.UNAUTHORIZED */,
31
+ message: 'TOKEN_EXPIRED'
32
+ },
33
+ EMAIL_OR_PASSWORD_IS_WRONG: {
34
+ code: 400 /* HTTP.BAD_REQUEST */,
35
+ message: 'EMAIL_OR_PASSWORD_IS_WRONG'
36
+ },
37
+ DOMAIN_IS_WRONG: {
38
+ code: 400 /* HTTP.BAD_REQUEST */,
39
+ message: 'DOMAIN_IS_WRONG'
40
+ },
41
+ MODULE_IS_NOT_INSTALLED: {
42
+ code: 400 /* HTTP.BAD_REQUEST */,
43
+ message: 'MODULE_IS_NOT_INSTALLED'
44
+ },
45
+ TOKEN_SITE_IS_WRONG: {
46
+ code: 401 /* HTTP.UNAUTHORIZED */,
47
+ message: 'SITE_REF_IS_NOT_AUTHORIZED'
48
+ },
49
+ ACCESS_DENINED: {
50
+ code: 403 /* HTTP.FORBIDDEN */,
51
+ message: 'ACCESS_DENINED'
52
+ },
53
+ QUOTA_EXCEEDED: {
54
+ code: 403 /* HTTP.FORBIDDEN */,
55
+ message: 'QUOTA_EXCEEDED'
56
+ }
57
+ };
@@ -0,0 +1,32 @@
1
+ export interface ErrorType {
2
+ [name: string]: {
3
+ code: any;
4
+ message: string;
5
+ };
6
+ }
7
+ interface ErrorPayload {
8
+ name?: string;
9
+ code: any;
10
+ message: string;
11
+ fields?: any;
12
+ }
13
+ export declare class CustomError extends Error {
14
+ code: any;
15
+ json: any;
16
+ message: any;
17
+ fields: any;
18
+ constructor(obj: ErrorPayload);
19
+ }
20
+ export declare const generalError: ErrorType;
21
+ export declare const paramError: (message: string, { field, code, prefixMessage }?: {
22
+ field?: string;
23
+ code?: string;
24
+ prefixMessage?: string;
25
+ }) => Promise<never>;
26
+ export declare const errorHandler: (error: any, { defaultValue, prefixMessage }?: {
27
+ defaultValue?: string;
28
+ prefixMessage?: string;
29
+ }) => {
30
+ error: string;
31
+ };
32
+ export {};
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.errorHandler = exports.paramError = exports.generalError = exports.CustomError = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const helper_1 = require("../utils/helper");
6
+ const Raven = require("raven");
7
+ class CustomError extends Error {
8
+ constructor(obj) {
9
+ if (obj.code && obj.code < 505 /* HTTP.HTTP_VERSION_NOT_SUPPORTED */) {
10
+ super(obj.message);
11
+ this.code = obj.code;
12
+ this.message = obj.message;
13
+ this.json = { code: obj.message };
14
+ if (obj.fields) {
15
+ this.fields = obj.fields;
16
+ }
17
+ }
18
+ else {
19
+ if ((0, helper_1.getENV)('NODE_ENV') == "production" && (0, helper_1.getENV)('SENTRY')) {
20
+ obj.name = 'INTERNAL_SERVER_ERROR';
21
+ Raven.captureException(obj);
22
+ }
23
+ super(exports.generalError.INTERNAL_SERVER_ERROR.message);
24
+ this.code = exports.generalError.INTERNAL_SERVER_ERROR.code;
25
+ this.message = obj.message;
26
+ this.json = { code: exports.generalError.INTERNAL_SERVER_ERROR.message };
27
+ }
28
+ Object.setPrototypeOf(this, CustomError.prototype);
29
+ }
30
+ }
31
+ exports.CustomError = CustomError;
32
+ exports.generalError = {
33
+ INTERNAL_SERVER_ERROR: {
34
+ code: 500 /* HTTP.INTERNAL_SERVER_ERROR */,
35
+ message: 'INTERNAL_SERVER_ERROR'
36
+ },
37
+ CACHE_NOT_READY: {
38
+ code: 400 /* HTTP.BAD_REQUEST */,
39
+ message: 'CACHE_NOT_READY'
40
+ },
41
+ NO_CONTENT: {
42
+ code: 204 /* HTTP.NO_CONTENT */,
43
+ message: 'NO_CONTENT'
44
+ },
45
+ NOT_FOUND: {
46
+ code: 404 /* HTTP.NOT_FOUND */,
47
+ message: 'NOT_FOUND'
48
+ },
49
+ NOT_FOUND_OR_NOT_UPDATED: {
50
+ code: 400 /* HTTP.BAD_REQUEST */,
51
+ message: 'NOT_FOUND_OR_NOT_UPDATED'
52
+ },
53
+ DATABASE_ERROR: {
54
+ code: 500 /* HTTP.INTERNAL_SERVER_ERROR */,
55
+ message: 'DATABASE_ERROR'
56
+ },
57
+ BAD_REQUEST: {
58
+ code: 400 /* HTTP.BAD_REQUEST */,
59
+ message: 'BAD_REQUEST'
60
+ },
61
+ EMAIL_DUPLICATE: {
62
+ code: 400 /* HTTP.BAD_REQUEST */,
63
+ message: 'EMAIL_DUPLICATE'
64
+ },
65
+ SLUG_DUPLICATE: {
66
+ code: 400 /* HTTP.BAD_REQUEST */,
67
+ message: 'SLUG_IS_DUPLICATE'
68
+ },
69
+ FILE_TYPE_NOT_ALLOW: {
70
+ code: 400 /* HTTP.BAD_REQUEST */,
71
+ message: 'FILE_TYPE_NOT_ALLOW'
72
+ },
73
+ DATA_DUPLICATE: {
74
+ code: 400 /* HTTP.BAD_REQUEST */,
75
+ message: 'DATA_IS_DUPLICATE'
76
+ },
77
+ DATA_RELATED: {
78
+ code: 400 /* HTTP.BAD_REQUEST */,
79
+ message: 'DATA_IS_RELATED'
80
+ },
81
+ LANG_CODE_NOT_FOUND: {
82
+ code: 400 /* HTTP.BAD_REQUEST */,
83
+ message: 'LANG_CODE_NOT_FOUND'
84
+ },
85
+ JSON_TYPE_REQUIRED: {
86
+ code: 400 /* HTTP.BAD_REQUEST */,
87
+ message: 'JSON_TYPE_REQUIRED'
88
+ }
89
+ };
90
+ const paramError = (message, { field = "default", code = "INVALID_PARAMS", prefixMessage = "" } = {}) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
91
+ const fields = { [field]: { code, message: `${prefixMessage}${message}` } };
92
+ return Promise.reject({
93
+ code: 400 /* HTTP.BAD_REQUEST */,
94
+ message: 'INVALID_PARAMS',
95
+ fields
96
+ });
97
+ });
98
+ exports.paramError = paramError;
99
+ const errorHandler = (error, { defaultValue = "not available", prefixMessage = "" } = {}) => {
100
+ let res = { error: defaultValue };
101
+ if (error.fields && typeof error.fields == "object") {
102
+ res['error'] = Object.keys(error.fields).map(key => (error.fields[key]['message']))[0];
103
+ }
104
+ else if (error.message) {
105
+ res['error'] = error.message;
106
+ }
107
+ else if (typeof error == "string") {
108
+ res['error'] = error;
109
+ }
110
+ res['error'] = `${prefixMessage}${res['error']}`;
111
+ return res;
112
+ };
113
+ exports.errorHandler = errorHandler;
package/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './utils';
package/index.js ADDED
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./utils"), exports);
@@ -0,0 +1,41 @@
1
+ export interface CUDParamOption {
2
+ ref_core?: any;
3
+ type?: string;
4
+ auth_id?: any;
5
+ organ_id?: any;
6
+ parent_organ_id?: any;
7
+ permission?: any;
8
+ records?: Array<any>;
9
+ }
10
+ export interface StreamParamOption {
11
+ ref_core?: any;
12
+ require?: string;
13
+ lang_code?: string;
14
+ field_type?: object;
15
+ type?: string;
16
+ section?: any;
17
+ exclude?: Array<any>;
18
+ excludeObj?: object;
19
+ created_by?: string;
20
+ auth_id?: any;
21
+ organ_id?: any;
22
+ parent_organ_id?: any;
23
+ permission?: any;
24
+ [index: string]: any;
25
+ }
26
+ export interface QueryParamOption {
27
+ ref_core?: any;
28
+ category?: Array<any>;
29
+ limit?: number;
30
+ offset?: number;
31
+ lang_code?: string;
32
+ currency?: string;
33
+ price?: Array<any>;
34
+ order?: Array<any>;
35
+ auth_id?: any;
36
+ organ_id?: any;
37
+ parent_organ_id?: any;
38
+ permission?: any;
39
+ cc?: string;
40
+ no_image?: boolean;
41
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,13 @@
1
+ import { Request, Response } from 'express';
2
+ export declare const verifyAccessToken: (req: Request, res: Response, next: any) => Promise<any>;
3
+ export declare const verifyStaff: (req: Request, res: Response, next: any) => Promise<any>;
4
+ export declare const getGroupSetting: (req: Request, res: Response, next: any) => Promise<any>;
5
+ export declare function getGroupPermission(value: any, { role, param_key }?: {
6
+ role?: string;
7
+ param_key?: string;
8
+ }): (req: Request, res: Response, next: any) => Promise<any>;
9
+ export declare function verifyPermissionGroup(value: any, { role, param_key }?: {
10
+ role?: string;
11
+ param_key?: string;
12
+ }): (req: Request, res: Response, next: any) => Promise<any>;
13
+ export declare const accessToken: (req: Request, res: Response, next: any) => Promise<any>;