@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.
- package/constants/header.d.ts +10 -0
- package/constants/header.js +2 -0
- package/constants/http.d.ts +44 -0
- package/constants/http.js +2 -0
- package/database/index.d.ts +3 -0
- package/database/index.js +34 -0
- package/database/redis.d.ts +15 -0
- package/database/redis.js +68 -0
- package/errors/authError.d.ts +55 -0
- package/errors/authError.js +57 -0
- package/errors/index.d.ts +32 -0
- package/errors/index.js +113 -0
- package/index.d.ts +1 -0
- package/index.js +4 -0
- package/interface/param.d.ts +41 -0
- package/interface/param.js +2 -0
- package/middlewares/accessToken.d.ts +13 -0
- package/middlewares/accessToken.js +200 -0
- package/middlewares/coreSite.d.ts +4 -0
- package/middlewares/coreSite.js +52 -0
- package/middlewares/paramQuery.d.ts +16 -0
- package/middlewares/paramQuery.js +220 -0
- package/middlewares/refSite.d.ts +2 -0
- package/middlewares/refSite.js +58 -0
- package/middlewares/refreshToken.d.ts +2 -0
- package/middlewares/refreshToken.js +56 -0
- package/middlewares/systemSite.d.ts +6 -0
- package/middlewares/systemSite.js +106 -0
- package/middlewares/webSite.d.ts +7 -0
- package/middlewares/webSite.js +109 -0
- package/models/core/city.d.ts +66 -0
- package/models/core/city.js +79 -0
- package/models/core/country.d.ts +35 -0
- package/models/core/country.js +44 -0
- package/models/core/district.d.ts +17 -0
- package/models/core/district.js +23 -0
- package/models/core/domain.d.ts +57 -0
- package/models/core/domain.js +75 -0
- package/models/core/site.d.ts +60 -0
- package/models/core/site.js +70 -0
- package/models/core/state.d.ts +49 -0
- package/models/core/state.js +58 -0
- package/models/core/zipcode.d.ts +5 -0
- package/models/core/zipcode.js +28 -0
- package/models/stream/field.d.ts +60 -0
- package/models/stream/field.js +66 -0
- package/models/stream/field_section.d.ts +33 -0
- package/models/stream/field_section.js +39 -0
- package/models/stream/stream.d.ts +89 -0
- package/models/stream/stream.js +97 -0
- package/models/system/currency.d.ts +5 -0
- package/models/system/currency.js +32 -0
- package/models/system/email_log.d.ts +5 -0
- package/models/system/email_log.js +54 -0
- package/models/system/email_sender.d.ts +22 -0
- package/models/system/email_sender.js +53 -0
- package/models/system/email_template.d.ts +5 -0
- package/models/system/email_template.js +49 -0
- package/models/system/file.d.ts +98 -0
- package/models/system/file.js +111 -0
- package/models/system/folder.d.ts +59 -0
- package/models/system/folder.js +78 -0
- package/models/system/language.d.ts +44 -0
- package/models/system/language.js +50 -0
- package/models/system/metadata.d.ts +5 -0
- package/models/system/metadata.js +24 -0
- package/models/system/module.d.ts +5 -0
- package/models/system/module.js +35 -0
- package/models/system/notification_log.d.ts +25 -0
- package/models/system/notification_log.js +76 -0
- package/models/system/notification_module.d.ts +5 -0
- package/models/system/notification_module.js +35 -0
- package/models/system/notification_setting.d.ts +22 -0
- package/models/system/notification_setting.js +44 -0
- package/models/system/notification_template.d.ts +5 -0
- package/models/system/notification_template.js +49 -0
- package/models/system/notification_type.d.ts +5 -0
- package/models/system/notification_type.js +38 -0
- package/models/system/payment_transaction.d.ts +5 -0
- package/models/system/payment_transaction.js +46 -0
- package/models/system/pdf_page.d.ts +5 -0
- package/models/system/pdf_page.js +39 -0
- package/models/system/pdf_template.d.ts +22 -0
- package/models/system/pdf_template.js +67 -0
- package/models/system/review_template.d.ts +5 -0
- package/models/system/review_template.js +35 -0
- package/models/system/review_vote.d.ts +5 -0
- package/models/system/review_vote.js +36 -0
- package/models/system/session.d.ts +5 -0
- package/models/system/session.js +19 -0
- package/models/system/setting.d.ts +15 -0
- package/models/system/setting.js +22 -0
- package/models/system/site_token.d.ts +25 -0
- package/models/system/site_token.js +31 -0
- package/models/system/sms_log.d.ts +4 -0
- package/models/system/sms_log.js +52 -0
- package/models/system/sms_setting.d.ts +4 -0
- package/models/system/sms_setting.js +39 -0
- package/models/system/sms_template.d.ts +5 -0
- package/models/system/sms_template.js +48 -0
- package/models/system/tax.d.ts +5 -0
- package/models/system/tax.js +33 -0
- package/models/system/website.d.ts +56 -0
- package/models/system/website.js +66 -0
- package/models/system/zone.d.ts +57 -0
- package/models/system/zone.js +141 -0
- package/models/user/access_token.d.ts +37 -0
- package/models/user/access_token.js +46 -0
- package/models/user/address.d.ts +69 -0
- package/models/user/address.js +119 -0
- package/models/user/b2b_group.d.ts +57 -0
- package/models/user/b2b_group.js +63 -0
- package/models/user/group.d.ts +28 -0
- package/models/user/group.js +34 -0
- package/models/user/group_permission.d.ts +4 -0
- package/models/user/group_permission.js +27 -0
- package/models/user/notification_token.d.ts +32 -0
- package/models/user/notification_token.js +39 -0
- package/models/user/organ.d.ts +85 -0
- package/models/user/organ.js +100 -0
- package/models/user/profile.d.ts +31 -0
- package/models/user/profile.js +37 -0
- package/models/user/refresh_token.d.ts +41 -0
- package/models/user/refresh_token.js +51 -0
- package/models/user/team.d.ts +59 -0
- package/models/user/team.js +71 -0
- package/models/user/user.d.ts +79 -0
- package/models/user/user.js +100 -0
- package/models/user/user_organ.d.ts +52 -0
- package/models/user/user_organ.js +87 -0
- package/package.json +59 -0
- package/utils/auth.d.ts +25 -0
- package/utils/auth.js +137 -0
- package/utils/config.d.ts +8 -0
- package/utils/config.js +6 -0
- package/utils/core.d.ts +6 -0
- package/utils/core.js +39 -0
- package/utils/currency.d.ts +16 -0
- package/utils/currency.js +38 -0
- package/utils/db.d.ts +94 -0
- package/utils/db.js +399 -0
- package/utils/file.d.ts +232 -0
- package/utils/file.js +772 -0
- package/utils/helper.d.ts +113 -0
- package/utils/helper.js +508 -0
- package/utils/index.d.ts +10 -0
- package/utils/index.js +13 -0
- package/utils/language.d.ts +18 -0
- package/utils/language.js +48 -0
- package/utils/metadata.d.ts +18 -0
- package/utils/metadata.js +50 -0
- package/utils/session.d.ts +37 -0
- package/utils/session.js +60 -0
- package/utils/setting.d.ts +14 -0
- package/utils/setting.js +70 -0
- package/utils/stream.d.ts +303 -0
- package/utils/stream.js +1893 -0
- package/utils/user.d.ts +61 -0
- package/utils/user.js +282 -0
- package/utils/validator.d.ts +56 -0
- 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,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,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 {};
|
package/errors/index.js
ADDED
|
@@ -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,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,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>;
|