npm_microservice 1.0.10 → 1.0.12
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/config.js +4 -0
- package/dist/service.js +121 -2
- package/dist/services/BaseService.js +4 -1
- package/dist/services/SettingService.js +4 -1
- package/dist/services/app/AppTestService.js +355 -0
- package/dist/services/app/CategoryService.js +4 -1
- package/dist/services/app/NewService.js +4 -1
- package/dist/services/app/RecommendedCourseService.js +4 -1
- package/dist/services/app/SettingAppService.js +4 -1
- package/dist/services/app/TargetService.js +4 -1
- package/dist/services/call_center/CategoryService.js +4 -1
- package/dist/services/call_center/TicketActivityService.js +4 -1
- package/dist/services/call_center/TicketService.js +4 -1
- package/dist/services/call_center/TicketTemplateService.js +4 -1
- package/dist/services/call_center/TicketTopicService.js +4 -1
- package/dist/services/crm/ContactsService.js +4 -1
- package/dist/services/crm/DeviceService.js +4 -1
- package/dist/services/finance/InvoicesCancelService.js +4 -1
- package/dist/services/finance/InvoicesDetailService.js +4 -1
- package/dist/services/finance/InvoicesLogsAssignService.js +4 -1
- package/dist/services/finance/InvoicesService.js +4 -1
- package/dist/services/finance/PaymentRequestService.js +4 -1
- package/dist/services/finance/PaymentService.js +4 -1
- package/dist/services/finance/VouchersCategoryService.js +4 -1
- package/dist/services/finance/VouchersService.js +4 -1
- package/dist/services/finance/WalletTransactionService.js +4 -1
- package/dist/services/finance/WalletsService.js +4 -1
- package/dist/services/hr/AllowanceService.js +4 -1
- package/dist/services/hr/AnnualLeaveService.js +4 -1
- package/dist/services/hr/CategoryService.js +4 -1
- package/dist/services/hr/DepartmentService.js +4 -1
- package/dist/services/hr/DeviceService.js +4 -1
- package/dist/services/hr/DocumentService.js +4 -1
- package/dist/services/hr/EmployeeExtendService.js +4 -1
- package/dist/services/hr/EmployeeExtendTempService.js +4 -1
- package/dist/services/hr/EmployeeLeaveService.js +4 -1
- package/dist/services/hr/EmployeeQuitService.js +4 -1
- package/dist/services/hr/EmployeeService.js +4 -1
- package/dist/services/hr/EmployeeShiftService.js +4 -1
- package/dist/services/hr/HolidayService.js +4 -1
- package/dist/services/hr/JobTitleService.js +4 -1
- package/dist/services/hr/PositionService.js +4 -1
- package/dist/services/hr/ReasonTypeService.js +4 -1
- package/dist/services/hr/ResignationService.js +4 -1
- package/dist/services/hr/SalaryService.js +4 -1
- package/dist/services/hr/ScheduleOnlineService.js +4 -1
- package/dist/services/hr/ScheduleService.js +4 -1
- package/dist/services/hr/SettingDocumentService.js +4 -1
- package/dist/services/hr/ShiftService.js +4 -1
- package/dist/services/hr/ShiftsCustomerCareService.js +4 -1
- package/dist/services/hr/TicketExtendService.js +4 -1
- package/dist/services/hr/TicketService.js +4 -1
- package/dist/services/hr/TicketTypeService.js +4 -1
- package/dist/services/hr/TrackingConfirmService.js +4 -1
- package/dist/services/hr/TrackingErrorService.js +4 -1
- package/dist/services/inventory/InventoryService.js +4 -1
- package/dist/services/inventory/LogService.js +4 -1
- package/dist/services/inventory/ProductService.js +4 -1
- package/dist/services/inventory/ProductShipmentService.js +4 -1
- package/dist/services/inventory/StoreService.js +4 -1
- package/dist/services/inventory/SupplierService.js +4 -1
- package/dist/services/inventory/TransactionDetailService.js +4 -1
- package/dist/services/inventory/TransactionService.js +4 -1
- package/dist/services/lms/AlbumCategoryService.js +4 -1
- package/dist/services/lms/AlbumFileService.js +4 -1
- package/dist/services/lms/AlbumService.js +4 -1
- package/dist/services/lms/ClassScheduleService.js +4 -1
- package/dist/services/lms/ClassesService.js +4 -1
- package/dist/services/lms/CourseLessonService.js +4 -1
- package/dist/services/lms/CoursePriceService.js +4 -1
- package/dist/services/lms/CourseProductService.js +4 -1
- package/dist/services/lms/CourseService.js +4 -1
- package/dist/services/lms/DocumentCategoryService.js +4 -1
- package/dist/services/lms/DocumentService.js +8 -1
- package/dist/services/lms/LicenseService.js +4 -1
- package/dist/services/lms/PracticeResultService.js +4 -1
- package/dist/services/lms/PracticeService.js +4 -1
- package/dist/services/lms/StudentAgainService.js +4 -1
- package/dist/services/lms/StudentDocumentService.js +4 -1
- package/dist/services/lms/StudentExamTimeService.js +4 -1
- package/dist/services/lms/StudentReviewService.js +4 -1
- package/dist/services/lms/StudentScoreService.js +4 -1
- package/dist/services/lms/StudentService.js +4 -1
- package/dist/services/lms/StudentSettingReviewService.js +4 -1
- package/dist/services/lms/StudentTrackingService.js +4 -1
- package/dist/services/lms/StudentTrialService.js +4 -1
- package/dist/services/notification/AppService.js +4 -1
- package/dist/services/notification/NotificationService.js +4 -1
- package/dist/services/online/CourseLessonService.js +4 -1
- package/dist/services/online/CourseService.js +4 -1
- package/dist/services/online/StudentService.js +4 -1
- package/dist/services/org/BranchRequestService.js +4 -1
- package/dist/services/org/BranchService.js +4 -1
- package/dist/services/org/BranchToMacsService.js +4 -1
- package/dist/services/org/BrandService.js +4 -1
- package/dist/services/org/CitiesService.js +4 -1
- package/dist/services/org/LegalEntityService.js +4 -1
- package/dist/services/pm/NoteService.js +4 -1
- package/dist/services/pm/TaskService.js +4 -1
- package/dist/services/support/CommentService.js +357 -0
- package/dist/services/test/EduTestService.js +4 -1
- package/package.json +1 -1
package/dist/config.js
CHANGED
|
@@ -42,6 +42,7 @@ var configRouteService = {
|
|
|
42
42
|
App: {
|
|
43
43
|
CategoryService: `${baseUrl}/app/category`,
|
|
44
44
|
NewService: `${baseUrl}/app/news`,
|
|
45
|
+
AppTestService: `${baseUrl}/app/test`,
|
|
45
46
|
RecommendedCourseService: `${baseUrl}/app/recommended_level`,
|
|
46
47
|
SettingAppService: `${baseUrl}/app/setting`,
|
|
47
48
|
TargetAppService: `${baseUrl}/app/target`
|
|
@@ -156,6 +157,9 @@ var configRouteService = {
|
|
|
156
157
|
TrackingConfirmService: `${baseUrl}/hr/tracking_confirm`,
|
|
157
158
|
TrackingErrorService: `${baseUrl}/hr/tracking-error`,
|
|
158
159
|
SettingDocumentService: `${baseUrl}/hr/setting/profile`
|
|
160
|
+
},
|
|
161
|
+
Support: {
|
|
162
|
+
CommentService: `${baseUrl}/support/comment`
|
|
159
163
|
}
|
|
160
164
|
};
|
|
161
165
|
module.exports = {
|
package/dist/service.js
CHANGED
|
@@ -49,6 +49,7 @@ var require_config = __commonJS({
|
|
|
49
49
|
App: {
|
|
50
50
|
CategoryService: `${baseUrl}/app/category`,
|
|
51
51
|
NewService: `${baseUrl}/app/news`,
|
|
52
|
+
AppTestService: `${baseUrl}/app/test`,
|
|
52
53
|
RecommendedCourseService: `${baseUrl}/app/recommended_level`,
|
|
53
54
|
SettingAppService: `${baseUrl}/app/setting`,
|
|
54
55
|
TargetAppService: `${baseUrl}/app/target`
|
|
@@ -163,6 +164,9 @@ var require_config = __commonJS({
|
|
|
163
164
|
TrackingConfirmService: `${baseUrl}/hr/tracking_confirm`,
|
|
164
165
|
TrackingErrorService: `${baseUrl}/hr/tracking-error`,
|
|
165
166
|
SettingDocumentService: `${baseUrl}/hr/setting/profile`
|
|
167
|
+
},
|
|
168
|
+
Support: {
|
|
169
|
+
CommentService: `${baseUrl}/support/comment`
|
|
166
170
|
}
|
|
167
171
|
};
|
|
168
172
|
module2.exports = {
|
|
@@ -202,7 +206,6 @@ var require_BaseService = __commonJS({
|
|
|
202
206
|
setHeader(headers = {}) {
|
|
203
207
|
var Authorization = `Bearer ${API_MICROSERVICE_TOKEN}`;
|
|
204
208
|
if (headers && headers.Authorization) Authorization = headers.Authorization;
|
|
205
|
-
if (headers && headers.authorization) Authorization = headers.authorization;
|
|
206
209
|
this.headers = {
|
|
207
210
|
...this.headers || {},
|
|
208
211
|
Authorization
|
|
@@ -329,6 +332,60 @@ var require_BaseService = __commonJS({
|
|
|
329
332
|
}
|
|
330
333
|
});
|
|
331
334
|
|
|
335
|
+
// src/services/SettingService.js
|
|
336
|
+
var require_SettingService = __commonJS({
|
|
337
|
+
"src/services/SettingService.js"(exports2, module2) {
|
|
338
|
+
var BaseService = require_BaseService();
|
|
339
|
+
var { CONFIG_ROUTER_SERVICE, API_MICROSERVICE_TOKEN } = require_config();
|
|
340
|
+
var SettingService = class extends BaseService {
|
|
341
|
+
constructor() {
|
|
342
|
+
super("", {
|
|
343
|
+
Authorization: `Bearer ${API_MICROSERVICE_TOKEN}`
|
|
344
|
+
});
|
|
345
|
+
this.isCache = true;
|
|
346
|
+
}
|
|
347
|
+
async getBranches(filter = {}) {
|
|
348
|
+
let url = CONFIG_ROUTER_SERVICE.BASE_URL + "/org/branch";
|
|
349
|
+
this.service = "branches";
|
|
350
|
+
this.timeCache = 24 * 60 * 60;
|
|
351
|
+
return this.request("get", url, { params: filter });
|
|
352
|
+
}
|
|
353
|
+
async getBrands(filter = {}) {
|
|
354
|
+
let url = CONFIG_ROUTER_SERVICE.BASE_URL + "/org/brand";
|
|
355
|
+
this.service = "brands";
|
|
356
|
+
this.timeCache = 24 * 60 * 60;
|
|
357
|
+
return this.request("get", url, { params: filter });
|
|
358
|
+
}
|
|
359
|
+
async getCities(filter = {}) {
|
|
360
|
+
let url = CONFIG_ROUTER_SERVICE.BASE_URL + "/org/city";
|
|
361
|
+
this.service = "cities";
|
|
362
|
+
this.timeCache = 24 * 60 * 60;
|
|
363
|
+
return this.request("get", url, { params: filter });
|
|
364
|
+
}
|
|
365
|
+
async getShifts(filter = {}) {
|
|
366
|
+
let url = CONFIG_ROUTER_SERVICE.BASE_URL + "/lms/setting-shifts";
|
|
367
|
+
this.service = "setting_shifts";
|
|
368
|
+
this.timeCache = 24 * 60 * 60;
|
|
369
|
+
return this.request("get", url, { params: filter });
|
|
370
|
+
}
|
|
371
|
+
async getShift(id) {
|
|
372
|
+
let url = CONFIG_ROUTER_SERVICE.BASE_URL + "/lms/setting-shifts/" + id;
|
|
373
|
+
this.service = "setting_shifts";
|
|
374
|
+
this.timeCache = 24 * 60 * 60;
|
|
375
|
+
return this.request("get", url);
|
|
376
|
+
}
|
|
377
|
+
async getLevels(filter = {}) {
|
|
378
|
+
let url = CONFIG_ROUTER_SERVICE.BASE_URL + "/lms/course-levels";
|
|
379
|
+
this.service = "course_levels";
|
|
380
|
+
this.timeCache = 24 * 60 * 60;
|
|
381
|
+
return this.request("get", url, { params: filter });
|
|
382
|
+
}
|
|
383
|
+
// có thể thêm method riêng cho user nếu cần
|
|
384
|
+
};
|
|
385
|
+
module2.exports = SettingService;
|
|
386
|
+
}
|
|
387
|
+
});
|
|
388
|
+
|
|
332
389
|
// src/services/app/CategoryService.js
|
|
333
390
|
var require_CategoryService = __commonJS({
|
|
334
391
|
"src/services/app/CategoryService.js"(exports2, module2) {
|
|
@@ -426,6 +483,32 @@ var require_TargetService = __commonJS({
|
|
|
426
483
|
}
|
|
427
484
|
});
|
|
428
485
|
|
|
486
|
+
// src/services/app/AppTestService.js
|
|
487
|
+
var require_AppTestService = __commonJS({
|
|
488
|
+
"src/services/app/AppTestService.js"(exports2, module2) {
|
|
489
|
+
var BaseService = require_BaseService();
|
|
490
|
+
var { CONFIG_ROUTER_SERVICE } = require_config();
|
|
491
|
+
var AppTestService = class extends BaseService {
|
|
492
|
+
constructor() {
|
|
493
|
+
super(CONFIG_ROUTER_SERVICE.App.AppTestService);
|
|
494
|
+
this.service = "app_test";
|
|
495
|
+
}
|
|
496
|
+
async category(filter = {}) {
|
|
497
|
+
this.service = "app_category";
|
|
498
|
+
let url = CONFIG_ROUTER_SERVICE.BASE_URL + "/app/category";
|
|
499
|
+
return this.request("get", url, { params: filter });
|
|
500
|
+
}
|
|
501
|
+
async count(filter = {}) {
|
|
502
|
+
let url = CONFIG_ROUTER_SERVICE.BASE_URL + "/app/tests/count";
|
|
503
|
+
this.service = "app_tests";
|
|
504
|
+
return this.request("get", url, { params: filter });
|
|
505
|
+
}
|
|
506
|
+
// có thể thêm method riêng cho user nếu cần
|
|
507
|
+
};
|
|
508
|
+
module2.exports = AppTestService;
|
|
509
|
+
}
|
|
510
|
+
});
|
|
511
|
+
|
|
429
512
|
// src/services/call_center/CategoryService.js
|
|
430
513
|
var require_CategoryService2 = __commonJS({
|
|
431
514
|
"src/services/call_center/CategoryService.js"(exports2, module2) {
|
|
@@ -1685,6 +1768,10 @@ var require_DocumentService2 = __commonJS({
|
|
|
1685
1768
|
this.service = "student_documents";
|
|
1686
1769
|
return this.request("post", url, { params: filter });
|
|
1687
1770
|
}
|
|
1771
|
+
async view(id, params) {
|
|
1772
|
+
const url = `${CONFIG_ROUTER_SERVICE.BASE_URL}/lms/documents/${id}/view`;
|
|
1773
|
+
return this.request("post", url, params);
|
|
1774
|
+
}
|
|
1688
1775
|
async count(filter = {}) {
|
|
1689
1776
|
let url = CONFIG_ROUTER_SERVICE.BASE_URL + "/lms/documents/count";
|
|
1690
1777
|
this.service = "student_documents";
|
|
@@ -2142,14 +2229,44 @@ var require_EduTestService = __commonJS({
|
|
|
2142
2229
|
}
|
|
2143
2230
|
});
|
|
2144
2231
|
|
|
2232
|
+
// src/services/support/CommentService.js
|
|
2233
|
+
var require_CommentService = __commonJS({
|
|
2234
|
+
"src/services/support/CommentService.js"(exports2, module2) {
|
|
2235
|
+
var BaseService = require_BaseService();
|
|
2236
|
+
var { CONFIG_ROUTER_SERVICE } = require_config();
|
|
2237
|
+
var CommentService = class extends BaseService {
|
|
2238
|
+
constructor() {
|
|
2239
|
+
super(CONFIG_ROUTER_SERVICE.Support.CommentService);
|
|
2240
|
+
this.service = "comment";
|
|
2241
|
+
}
|
|
2242
|
+
async countLikes(filter = {}) {
|
|
2243
|
+
let url = CONFIG_ROUTER_SERVICE.BASE_URL + "/support/likes/count";
|
|
2244
|
+
return this.request("get", url, { params: filter });
|
|
2245
|
+
}
|
|
2246
|
+
async likes(params) {
|
|
2247
|
+
const url = `${CONFIG_ROUTER_SERVICE.BASE_URL}/support/likes`;
|
|
2248
|
+
return this.request("post", url, { data: params });
|
|
2249
|
+
}
|
|
2250
|
+
async getComment(filter = {}) {
|
|
2251
|
+
let url = CONFIG_ROUTER_SERVICE.BASE_URL + "/support/comment/render_comment";
|
|
2252
|
+
return this.request("get", url, { params: filter });
|
|
2253
|
+
}
|
|
2254
|
+
// có thể thêm method riêng cho user nếu cần
|
|
2255
|
+
};
|
|
2256
|
+
module2.exports = CommentService;
|
|
2257
|
+
}
|
|
2258
|
+
});
|
|
2259
|
+
|
|
2145
2260
|
// src/service.js
|
|
2146
2261
|
module.exports = {
|
|
2262
|
+
settingService: new (require_SettingService())(),
|
|
2147
2263
|
// app
|
|
2148
2264
|
appCategoryService: new (require_CategoryService())(),
|
|
2149
2265
|
appNewService: new (require_NewService())(),
|
|
2150
2266
|
recommendedCourseService: new (require_RecommendedCourseService())(),
|
|
2151
2267
|
settingAppService: new (require_SettingAppService())(),
|
|
2152
2268
|
targetService: new (require_TargetService())(),
|
|
2269
|
+
appTestService: new (require_AppTestService())(),
|
|
2153
2270
|
// call_center
|
|
2154
2271
|
callCenterCategoryService: new (require_CategoryService2())(),
|
|
2155
2272
|
ticketActivityService: new (require_TicketActivityService())(),
|
|
@@ -2245,5 +2362,7 @@ module.exports = {
|
|
|
2245
2362
|
noteService: new (require_NoteService())(),
|
|
2246
2363
|
taskService: new (require_TaskService())(),
|
|
2247
2364
|
// test
|
|
2248
|
-
eduTestService: new (require_EduTestService())()
|
|
2365
|
+
eduTestService: new (require_EduTestService())(),
|
|
2366
|
+
// support
|
|
2367
|
+
commentService: new (require_CommentService())()
|
|
2249
2368
|
};
|
|
@@ -49,6 +49,7 @@ var require_config = __commonJS({
|
|
|
49
49
|
App: {
|
|
50
50
|
CategoryService: `${baseUrl}/app/category`,
|
|
51
51
|
NewService: `${baseUrl}/app/news`,
|
|
52
|
+
AppTestService: `${baseUrl}/app/test`,
|
|
52
53
|
RecommendedCourseService: `${baseUrl}/app/recommended_level`,
|
|
53
54
|
SettingAppService: `${baseUrl}/app/setting`,
|
|
54
55
|
TargetAppService: `${baseUrl}/app/target`
|
|
@@ -163,6 +164,9 @@ var require_config = __commonJS({
|
|
|
163
164
|
TrackingConfirmService: `${baseUrl}/hr/tracking_confirm`,
|
|
164
165
|
TrackingErrorService: `${baseUrl}/hr/tracking-error`,
|
|
165
166
|
SettingDocumentService: `${baseUrl}/hr/setting/profile`
|
|
167
|
+
},
|
|
168
|
+
Support: {
|
|
169
|
+
CommentService: `${baseUrl}/support/comment`
|
|
166
170
|
}
|
|
167
171
|
};
|
|
168
172
|
module2.exports = {
|
|
@@ -200,7 +204,6 @@ var BaseService = class {
|
|
|
200
204
|
setHeader(headers = {}) {
|
|
201
205
|
var Authorization = `Bearer ${API_MICROSERVICE_TOKEN}`;
|
|
202
206
|
if (headers && headers.Authorization) Authorization = headers.Authorization;
|
|
203
|
-
if (headers && headers.authorization) Authorization = headers.authorization;
|
|
204
207
|
this.headers = {
|
|
205
208
|
...this.headers || {},
|
|
206
209
|
Authorization
|
|
@@ -49,6 +49,7 @@ var require_config = __commonJS({
|
|
|
49
49
|
App: {
|
|
50
50
|
CategoryService: `${baseUrl}/app/category`,
|
|
51
51
|
NewService: `${baseUrl}/app/news`,
|
|
52
|
+
AppTestService: `${baseUrl}/app/test`,
|
|
52
53
|
RecommendedCourseService: `${baseUrl}/app/recommended_level`,
|
|
53
54
|
SettingAppService: `${baseUrl}/app/setting`,
|
|
54
55
|
TargetAppService: `${baseUrl}/app/target`
|
|
@@ -163,6 +164,9 @@ var require_config = __commonJS({
|
|
|
163
164
|
TrackingConfirmService: `${baseUrl}/hr/tracking_confirm`,
|
|
164
165
|
TrackingErrorService: `${baseUrl}/hr/tracking-error`,
|
|
165
166
|
SettingDocumentService: `${baseUrl}/hr/setting/profile`
|
|
167
|
+
},
|
|
168
|
+
Support: {
|
|
169
|
+
CommentService: `${baseUrl}/support/comment`
|
|
166
170
|
}
|
|
167
171
|
};
|
|
168
172
|
module2.exports = {
|
|
@@ -202,7 +206,6 @@ var require_BaseService = __commonJS({
|
|
|
202
206
|
setHeader(headers = {}) {
|
|
203
207
|
var Authorization = `Bearer ${API_MICROSERVICE_TOKEN2}`;
|
|
204
208
|
if (headers && headers.Authorization) Authorization = headers.Authorization;
|
|
205
|
-
if (headers && headers.authorization) Authorization = headers.authorization;
|
|
206
209
|
this.headers = {
|
|
207
210
|
...this.headers || {},
|
|
208
211
|
Authorization
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
2
|
+
var __commonJS = (cb, mod) => function __require() {
|
|
3
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
// src/config.js
|
|
7
|
+
var require_config = __commonJS({
|
|
8
|
+
"src/config.js"(exports2, module2) {
|
|
9
|
+
require("dotenv").config({ quiet: true, override: true });
|
|
10
|
+
var Redis = require("ioredis");
|
|
11
|
+
var redis = new Redis({
|
|
12
|
+
host: process.env.REDIS_HOST || "128.199.195.180",
|
|
13
|
+
port: process.env.REDIS_PORT || 6379,
|
|
14
|
+
password: process.env.REDIS_PASSWORD || "WZyB5Z7BRRgvrzuGzRwB"
|
|
15
|
+
});
|
|
16
|
+
var baseUrl = process.env.API_MICROSERVICE_URL;
|
|
17
|
+
var configRouteService = {
|
|
18
|
+
BASE_URL: baseUrl,
|
|
19
|
+
Finance: {
|
|
20
|
+
InvoicesService: `${baseUrl}/finance/invoices`,
|
|
21
|
+
InvoicesCancelService: `${baseUrl}/finance/invoice_detail_cancel`,
|
|
22
|
+
InvoicesDetailService: `${baseUrl}/finance/invoices-detail`,
|
|
23
|
+
InvoicesLogsAssignService: `${baseUrl}/finance/invoices-logs-assign`,
|
|
24
|
+
PaymentService: `${baseUrl}/finance/payments`,
|
|
25
|
+
PaymentRequestService: `${baseUrl}/finance/payments-request`,
|
|
26
|
+
VouchersService: `${baseUrl}/finance/vouchers`,
|
|
27
|
+
VouchersCategoryService: `${baseUrl}/finance/vouchers-category`,
|
|
28
|
+
WalletsService: `${baseUrl}/finance/wallets`,
|
|
29
|
+
WalletTransactionService: `${baseUrl}/finance/wallet-transaction`
|
|
30
|
+
},
|
|
31
|
+
CallCenter: {
|
|
32
|
+
CategoryService: `${baseUrl}/call-center/ticket-categories`,
|
|
33
|
+
TicketService: `${baseUrl}/call-center/ticket`,
|
|
34
|
+
TicketActivityService: `${baseUrl}/call-center/ticket-activities`,
|
|
35
|
+
TicketTemplateService: `${baseUrl}/call-center/ticket-template`,
|
|
36
|
+
TicketTopicService: `${baseUrl}/call-center/ticket-topics`,
|
|
37
|
+
CallService: `${baseUrl}/call-center/calls`
|
|
38
|
+
},
|
|
39
|
+
Inventory: {
|
|
40
|
+
InventoryService: `${baseUrl}/inventory/inventory-products`,
|
|
41
|
+
LogService: `${baseUrl}/inventory/logs`,
|
|
42
|
+
ProductService: `${baseUrl}/inventory/products`,
|
|
43
|
+
ProductShipmentService: `${baseUrl}/inventory/products_shipment`,
|
|
44
|
+
StoreService: `${baseUrl}/inventory/stores`,
|
|
45
|
+
SupplierService: `${baseUrl}/inventory/supplier`,
|
|
46
|
+
TransactionService: `${baseUrl}/inventory/transaction`,
|
|
47
|
+
TransactionDetailService: `${baseUrl}/inventory/transaction_detail`
|
|
48
|
+
},
|
|
49
|
+
App: {
|
|
50
|
+
CategoryService: `${baseUrl}/app/category`,
|
|
51
|
+
NewService: `${baseUrl}/app/news`,
|
|
52
|
+
AppTestService: `${baseUrl}/app/test`,
|
|
53
|
+
RecommendedCourseService: `${baseUrl}/app/recommended_level`,
|
|
54
|
+
SettingAppService: `${baseUrl}/app/setting`,
|
|
55
|
+
TargetAppService: `${baseUrl}/app/target`
|
|
56
|
+
},
|
|
57
|
+
Asset: {
|
|
58
|
+
AllocationDetailService: `${baseUrl}/asset/asset-allocation-detail`,
|
|
59
|
+
BroadcastService: `${baseUrl}/asset/broadcast`,
|
|
60
|
+
EntityAssetService: `${baseUrl}/asset/entity-asset`,
|
|
61
|
+
SubAssetService: `${baseUrl}/asset/sub-asset`
|
|
62
|
+
},
|
|
63
|
+
Course: {
|
|
64
|
+
CategoryService: `${baseUrl}/course/category`,
|
|
65
|
+
ClassesService: `${baseUrl}/course/classes`,
|
|
66
|
+
ClassesScheduleService: `${baseUrl}/course/classes_schedule`,
|
|
67
|
+
CourseService: `${baseUrl}/course/course`,
|
|
68
|
+
CourseScheduleService: `${baseUrl}/course/course_schedule`,
|
|
69
|
+
StudentsService: `${baseUrl}/course/students`
|
|
70
|
+
},
|
|
71
|
+
Test: {
|
|
72
|
+
TestService: `${baseUrl}/tests/tests`
|
|
73
|
+
},
|
|
74
|
+
Pm: {
|
|
75
|
+
NoteService: `${baseUrl}/pm/notes`,
|
|
76
|
+
TaskService: `${baseUrl}/pm/tasks`
|
|
77
|
+
},
|
|
78
|
+
Crm: {
|
|
79
|
+
ContactService: `${baseUrl}/crm/contacts`,
|
|
80
|
+
AccountsService: `${baseUrl}/crm/accounts`,
|
|
81
|
+
CalendarContactService: `${baseUrl}/crm/calendar-contact`,
|
|
82
|
+
CalendarsService: `${baseUrl}/crm/calendars`,
|
|
83
|
+
CampaignService: `${baseUrl}/crm/campaigns`,
|
|
84
|
+
CompanyService: `${baseUrl}/crm/company`,
|
|
85
|
+
ContactDocumentService: `${baseUrl}/crm/contact-document`,
|
|
86
|
+
ContactToCampaignService: `${baseUrl}/crm/contacts-campaign`,
|
|
87
|
+
DeviceService: `${baseUrl}/crm/devices`,
|
|
88
|
+
LeadsService: `${baseUrl}/crm/leads`,
|
|
89
|
+
NotificationService: `${baseUrl}/crm/notifications`,
|
|
90
|
+
NotificationContactService: `${baseUrl}/crm/notification-to-contact`,
|
|
91
|
+
OpportunitiesService: `${baseUrl}/crm/opportunities`,
|
|
92
|
+
SegmentsService: `${baseUrl}/crm/segments`
|
|
93
|
+
},
|
|
94
|
+
Notification: {
|
|
95
|
+
AppService: `${baseUrl}/notification/type/app`,
|
|
96
|
+
MailService: `${baseUrl}/notification/type/mail`,
|
|
97
|
+
SmsService: `${baseUrl}/notification/type/sms`,
|
|
98
|
+
ZnsService: `${baseUrl}/notification/type/zns`,
|
|
99
|
+
NotificationContactService: `${baseUrl}/notification/notification_contact`,
|
|
100
|
+
NotificationEmployeeService: `${baseUrl}/notification/notification_employee`,
|
|
101
|
+
NotificationService: `${baseUrl}/notification`,
|
|
102
|
+
TemplateService: `${baseUrl}/notification/template`
|
|
103
|
+
},
|
|
104
|
+
Org: {
|
|
105
|
+
BranchService: `${baseUrl}/org/branch`,
|
|
106
|
+
BranchRequestService: `${baseUrl}/org/branch_request`,
|
|
107
|
+
BranchToMacsService: `${baseUrl}/org/branch_to_mac`,
|
|
108
|
+
BrandService: `${baseUrl}/org/brand`,
|
|
109
|
+
CitiesService: `${baseUrl}/org/city`,
|
|
110
|
+
LegalEntityService: `${baseUrl}/org/legal_entities`
|
|
111
|
+
},
|
|
112
|
+
Lms: {
|
|
113
|
+
AlbumService: `${baseUrl}/lms/album`,
|
|
114
|
+
AlbumCategoryService: `${baseUrl}/lms/cate_album`,
|
|
115
|
+
AlbumFileService: `${baseUrl}/lms/album_file`,
|
|
116
|
+
ClassesService: `${baseUrl}/lms/classes`,
|
|
117
|
+
ClassScheduleService: `${baseUrl}/lms/class-schedules`,
|
|
118
|
+
CourseLessonService: `${baseUrl}/lms/course-lessons`,
|
|
119
|
+
CoursePriceService: `${baseUrl}/lms/course-prices`,
|
|
120
|
+
CourseProductService: `${baseUrl}/lms/course-product`,
|
|
121
|
+
CourseService: `${baseUrl}/lms/courses`,
|
|
122
|
+
DocumentService: `${baseUrl}/lms/documents`,
|
|
123
|
+
DocumentCategoryService: `${baseUrl}/lms/document-categories`,
|
|
124
|
+
LicenseService: `${baseUrl}/lms/license`,
|
|
125
|
+
PracticeResultService: `${baseUrl}/lms/practices-result`,
|
|
126
|
+
PracticeService: `${baseUrl}/lms/practices`,
|
|
127
|
+
StudentAgainService: `${baseUrl}/lms/students-agains`,
|
|
128
|
+
StudentDocumentService: `${baseUrl}/lms/students-documents`,
|
|
129
|
+
StudentExamTimeService: `${baseUrl}/lms/student-exam-time`,
|
|
130
|
+
StudentReviewService: `${baseUrl}/lms/students-reviews`,
|
|
131
|
+
StudentService: `${baseUrl}/lms/students`,
|
|
132
|
+
StudentScoreService: `${baseUrl}/lms/students-scores`,
|
|
133
|
+
StudentSettingReviewService: `${baseUrl}/lms/setting-reviews`,
|
|
134
|
+
StudentTrackingService: `${baseUrl}/lms/students-tracking`,
|
|
135
|
+
StudentTrialService: `${baseUrl}/lms/students-trial`
|
|
136
|
+
},
|
|
137
|
+
Hr: {
|
|
138
|
+
AllowanceService: `${baseUrl}/hr/allowance`,
|
|
139
|
+
CategoryService: `${baseUrl}/hr/setting/category`,
|
|
140
|
+
AnnualLeaveService: `${baseUrl}/hr/annual_leave`,
|
|
141
|
+
EmployeeService: `${baseUrl}/hr/employees`,
|
|
142
|
+
JobTitleService: `${baseUrl}/hr/setting/job_title`,
|
|
143
|
+
DepartmentService: `${baseUrl}/hr/departments`,
|
|
144
|
+
DeviceService: `${baseUrl}/hr/device`,
|
|
145
|
+
DocumentService: `${baseUrl}/hr/documents`,
|
|
146
|
+
EmployeeExtendService: `${baseUrl}/hr/employees/extend`,
|
|
147
|
+
EmployeeExtendTempService: `${baseUrl}/hr/employees/extend/temp`,
|
|
148
|
+
EmployeeLeaveService: `${baseUrl}/hr/employee_leave`,
|
|
149
|
+
EmployeeNotificationService: `${baseUrl}/hr/notification-employee`,
|
|
150
|
+
EmployeeQuitService: `${baseUrl}/hr/employee_quit`,
|
|
151
|
+
EmployeeShiftService: `${baseUrl}/hr/employee_shift`,
|
|
152
|
+
HolidayService: `${baseUrl}/hr/holidays`,
|
|
153
|
+
PositionService: `${baseUrl}/hr/positions`,
|
|
154
|
+
ReasonTypeService: `${baseUrl}/hr/setting/reason_type`,
|
|
155
|
+
ResignationService: `${baseUrl}/hr/resignations`,
|
|
156
|
+
SalaryService: `${baseUrl}/hr/employee_salary`,
|
|
157
|
+
ScheduleService: `${baseUrl}/hr/schedule`,
|
|
158
|
+
ScheduleOnlineService: `${baseUrl}/hr/schedule_online`,
|
|
159
|
+
ShiftService: `${baseUrl}/hr/setting/shifts`,
|
|
160
|
+
ShiftsCustomerCareService: `${baseUrl}/hr/setting/shifts-customer-care`,
|
|
161
|
+
TicketService: `${baseUrl}/hr/ticket`,
|
|
162
|
+
TicketExtendService: `${baseUrl}/hr/ticket/extend`,
|
|
163
|
+
TicketTypeService: `${baseUrl}/hr/ticket-type`,
|
|
164
|
+
TrackingConfirmService: `${baseUrl}/hr/tracking_confirm`,
|
|
165
|
+
TrackingErrorService: `${baseUrl}/hr/tracking-error`,
|
|
166
|
+
SettingDocumentService: `${baseUrl}/hr/setting/profile`
|
|
167
|
+
},
|
|
168
|
+
Support: {
|
|
169
|
+
CommentService: `${baseUrl}/support/comment`
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
module2.exports = {
|
|
173
|
+
AUTHENTICATOR_PUBLIC_KEY: process.env.AUTHENTICATOR_PUBLIC_KEY || "",
|
|
174
|
+
API_MICROSERVICE_URL: process.env.API_MICROSERVICE_URL || "",
|
|
175
|
+
API_MICROSERVICE_TOKEN: process.env.API_MICROSERVICE_TOKEN || "",
|
|
176
|
+
CONFIG_ROUTER_SERVICE: configRouteService,
|
|
177
|
+
CONFIG_REDIS: redis
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
// src/services/BaseService.js
|
|
183
|
+
var require_BaseService = __commonJS({
|
|
184
|
+
"src/services/BaseService.js"(exports2, module2) {
|
|
185
|
+
var axios = require("axios");
|
|
186
|
+
var qs = require("qs");
|
|
187
|
+
var { API_MICROSERVICE_TOKEN, CONFIG_REDIS } = require_config();
|
|
188
|
+
var BaseService2 = class {
|
|
189
|
+
baseUrl = "";
|
|
190
|
+
headers = {};
|
|
191
|
+
isCache = false;
|
|
192
|
+
service = null;
|
|
193
|
+
// nhớ set ở subclass
|
|
194
|
+
timeCache = 300;
|
|
195
|
+
// 300s = 5 phút
|
|
196
|
+
constructor(baseUrl = "", defaultHeaders = {}) {
|
|
197
|
+
this.baseUrl = baseUrl;
|
|
198
|
+
this.setHeader();
|
|
199
|
+
this.http = axios.create({
|
|
200
|
+
baseURL: this.baseUrl,
|
|
201
|
+
headers: this.headers,
|
|
202
|
+
paramsSerializer: (params) => qs.stringify(params, { arrayFormat: "brackets", encode: true })
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
// Nhận: object headers, hoặc trực tiếp token string ("Bearer x"), hoặc không truyền gì (auto từ ENV)
|
|
206
|
+
setHeader(headers = {}) {
|
|
207
|
+
var Authorization = `Bearer ${API_MICROSERVICE_TOKEN}`;
|
|
208
|
+
if (headers && headers.Authorization) Authorization = headers.Authorization;
|
|
209
|
+
this.headers = {
|
|
210
|
+
...this.headers || {},
|
|
211
|
+
Authorization
|
|
212
|
+
};
|
|
213
|
+
return this;
|
|
214
|
+
}
|
|
215
|
+
buildCacheKey(path, params = {}) {
|
|
216
|
+
const q = qs.stringify(params, { arrayFormat: "brackets", encode: true });
|
|
217
|
+
const full = `${path}${q ? "?" + q : ""}`;
|
|
218
|
+
const service = this.service || "unknown";
|
|
219
|
+
return `gateway.${service}.urls:${full}`;
|
|
220
|
+
}
|
|
221
|
+
async request(method, url, options = {}, cacheKey = null) {
|
|
222
|
+
var _a, _b, _c;
|
|
223
|
+
const isGet = method.toLowerCase() === "get";
|
|
224
|
+
if (isGet && this.isCache) {
|
|
225
|
+
cacheKey = cacheKey ? cacheKey : this.buildCacheKey(url, options.params);
|
|
226
|
+
const cached = await CONFIG_REDIS.get(cacheKey);
|
|
227
|
+
if (cached) {
|
|
228
|
+
console.log(`[CACHE HIT] ${cacheKey}`);
|
|
229
|
+
return JSON.parse(cached);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
try {
|
|
233
|
+
if (method.toLowerCase() === "get") {
|
|
234
|
+
console.log(
|
|
235
|
+
`[HTTP ${method.toUpperCase()}] ${this.buildGET(
|
|
236
|
+
url,
|
|
237
|
+
options.params || {}
|
|
238
|
+
)} `
|
|
239
|
+
);
|
|
240
|
+
}
|
|
241
|
+
let startTime = Date.now();
|
|
242
|
+
const res = await this.http.request({
|
|
243
|
+
method,
|
|
244
|
+
url,
|
|
245
|
+
// dùng path vì đã set baseURL
|
|
246
|
+
headers: this.headers,
|
|
247
|
+
...options
|
|
248
|
+
});
|
|
249
|
+
const data = res.data;
|
|
250
|
+
let duration = (Date.now() - startTime) / 1e3;
|
|
251
|
+
if (duration > 5) {
|
|
252
|
+
if (method.toLowerCase() === "get") {
|
|
253
|
+
let q = qs.stringify(options.params || {}, {
|
|
254
|
+
arrayFormat: "brackets",
|
|
255
|
+
encode: true
|
|
256
|
+
});
|
|
257
|
+
console.log(
|
|
258
|
+
`[HTTP GET] ${url}${q ? "?" + q : ""} - took ${duration.toFixed(
|
|
259
|
+
2
|
|
260
|
+
)}s`
|
|
261
|
+
);
|
|
262
|
+
} else {
|
|
263
|
+
console.log(
|
|
264
|
+
`[HTTP ${method.toUpperCase()}] ${url} - took ${duration.toFixed(
|
|
265
|
+
2
|
|
266
|
+
)}s`
|
|
267
|
+
);
|
|
268
|
+
}
|
|
269
|
+
if (options.params) console.log("Query:", options.params);
|
|
270
|
+
if (options.data) console.log("Body:", options.data);
|
|
271
|
+
}
|
|
272
|
+
return data;
|
|
273
|
+
} catch (error) {
|
|
274
|
+
var safeError = {
|
|
275
|
+
// message: error.message || "Request failed",
|
|
276
|
+
statusCode: ((_a = error.response) == null ? void 0 : _a.status) || 500,
|
|
277
|
+
...(_b = error.response) == null ? void 0 : _b.data
|
|
278
|
+
};
|
|
279
|
+
if (safeError.statusCode == 404) {
|
|
280
|
+
let q = qs.stringify(options.params || {}, {
|
|
281
|
+
arrayFormat: "brackets",
|
|
282
|
+
encode: true
|
|
283
|
+
});
|
|
284
|
+
return {
|
|
285
|
+
statusCode: 404,
|
|
286
|
+
status: "error",
|
|
287
|
+
messag: `[HTTP ${method.toUpperCase()}] ${url}${q ? "?" + q : ""} not found`
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
console.error(
|
|
291
|
+
`[${method.toUpperCase()}] ${url} failed:`,
|
|
292
|
+
safeError,
|
|
293
|
+
(_c = error.response) == null ? void 0 : _c.data
|
|
294
|
+
);
|
|
295
|
+
return {
|
|
296
|
+
error: true,
|
|
297
|
+
...safeError
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
buildGET(url, params = {}) {
|
|
302
|
+
let queryString = qs.stringify(params, {
|
|
303
|
+
arrayFormat: "brackets",
|
|
304
|
+
encode: true
|
|
305
|
+
});
|
|
306
|
+
return `${url}${queryString ? "?" + queryString : ""}`;
|
|
307
|
+
}
|
|
308
|
+
async all(query = {}) {
|
|
309
|
+
if (query.order_by && Array.isArray(query.order_by)) {
|
|
310
|
+
query.order_by = query.order_by.slice(0, 2);
|
|
311
|
+
if (query.order_by[1] && !["asc", "desc"].includes(query.order_by[1])) {
|
|
312
|
+
query.order_by[1] = "asc";
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
return this.request("get", this.baseUrl, { params: query });
|
|
316
|
+
}
|
|
317
|
+
async detail(id) {
|
|
318
|
+
const cacheKey = this.isCache ? `gateway.${this.service}.${id}` : null;
|
|
319
|
+
return this.request("get", `${this.baseUrl}/${id}`);
|
|
320
|
+
}
|
|
321
|
+
async create(data) {
|
|
322
|
+
return this.request("post", this.baseUrl, { data });
|
|
323
|
+
}
|
|
324
|
+
async update(id, data) {
|
|
325
|
+
return this.request("put", `${this.baseUrl}/${id}`, { data });
|
|
326
|
+
}
|
|
327
|
+
async delete(id) {
|
|
328
|
+
return this.request("delete", `${this.baseUrl}/${id}`);
|
|
329
|
+
}
|
|
330
|
+
};
|
|
331
|
+
module2.exports = BaseService2;
|
|
332
|
+
}
|
|
333
|
+
});
|
|
334
|
+
|
|
335
|
+
// src/services/app/AppTestService.js
|
|
336
|
+
var BaseService = require_BaseService();
|
|
337
|
+
var { CONFIG_ROUTER_SERVICE } = require_config();
|
|
338
|
+
var AppTestService = class extends BaseService {
|
|
339
|
+
constructor() {
|
|
340
|
+
super(CONFIG_ROUTER_SERVICE.App.AppTestService);
|
|
341
|
+
this.service = "app_test";
|
|
342
|
+
}
|
|
343
|
+
async category(filter = {}) {
|
|
344
|
+
this.service = "app_category";
|
|
345
|
+
let url = CONFIG_ROUTER_SERVICE.BASE_URL + "/app/category";
|
|
346
|
+
return this.request("get", url, { params: filter });
|
|
347
|
+
}
|
|
348
|
+
async count(filter = {}) {
|
|
349
|
+
let url = CONFIG_ROUTER_SERVICE.BASE_URL + "/app/tests/count";
|
|
350
|
+
this.service = "app_tests";
|
|
351
|
+
return this.request("get", url, { params: filter });
|
|
352
|
+
}
|
|
353
|
+
// có thể thêm method riêng cho user nếu cần
|
|
354
|
+
};
|
|
355
|
+
module.exports = AppTestService;
|
|
@@ -49,6 +49,7 @@ var require_config = __commonJS({
|
|
|
49
49
|
App: {
|
|
50
50
|
CategoryService: `${baseUrl}/app/category`,
|
|
51
51
|
NewService: `${baseUrl}/app/news`,
|
|
52
|
+
AppTestService: `${baseUrl}/app/test`,
|
|
52
53
|
RecommendedCourseService: `${baseUrl}/app/recommended_level`,
|
|
53
54
|
SettingAppService: `${baseUrl}/app/setting`,
|
|
54
55
|
TargetAppService: `${baseUrl}/app/target`
|
|
@@ -163,6 +164,9 @@ var require_config = __commonJS({
|
|
|
163
164
|
TrackingConfirmService: `${baseUrl}/hr/tracking_confirm`,
|
|
164
165
|
TrackingErrorService: `${baseUrl}/hr/tracking-error`,
|
|
165
166
|
SettingDocumentService: `${baseUrl}/hr/setting/profile`
|
|
167
|
+
},
|
|
168
|
+
Support: {
|
|
169
|
+
CommentService: `${baseUrl}/support/comment`
|
|
166
170
|
}
|
|
167
171
|
};
|
|
168
172
|
module2.exports = {
|
|
@@ -202,7 +206,6 @@ var require_BaseService = __commonJS({
|
|
|
202
206
|
setHeader(headers = {}) {
|
|
203
207
|
var Authorization = `Bearer ${API_MICROSERVICE_TOKEN}`;
|
|
204
208
|
if (headers && headers.Authorization) Authorization = headers.Authorization;
|
|
205
|
-
if (headers && headers.authorization) Authorization = headers.authorization;
|
|
206
209
|
this.headers = {
|
|
207
210
|
...this.headers || {},
|
|
208
211
|
Authorization
|
|
@@ -49,6 +49,7 @@ var require_config = __commonJS({
|
|
|
49
49
|
App: {
|
|
50
50
|
CategoryService: `${baseUrl}/app/category`,
|
|
51
51
|
NewService: `${baseUrl}/app/news`,
|
|
52
|
+
AppTestService: `${baseUrl}/app/test`,
|
|
52
53
|
RecommendedCourseService: `${baseUrl}/app/recommended_level`,
|
|
53
54
|
SettingAppService: `${baseUrl}/app/setting`,
|
|
54
55
|
TargetAppService: `${baseUrl}/app/target`
|
|
@@ -163,6 +164,9 @@ var require_config = __commonJS({
|
|
|
163
164
|
TrackingConfirmService: `${baseUrl}/hr/tracking_confirm`,
|
|
164
165
|
TrackingErrorService: `${baseUrl}/hr/tracking-error`,
|
|
165
166
|
SettingDocumentService: `${baseUrl}/hr/setting/profile`
|
|
167
|
+
},
|
|
168
|
+
Support: {
|
|
169
|
+
CommentService: `${baseUrl}/support/comment`
|
|
166
170
|
}
|
|
167
171
|
};
|
|
168
172
|
module2.exports = {
|
|
@@ -202,7 +206,6 @@ var require_BaseService = __commonJS({
|
|
|
202
206
|
setHeader(headers = {}) {
|
|
203
207
|
var Authorization = `Bearer ${API_MICROSERVICE_TOKEN}`;
|
|
204
208
|
if (headers && headers.Authorization) Authorization = headers.Authorization;
|
|
205
|
-
if (headers && headers.authorization) Authorization = headers.authorization;
|
|
206
209
|
this.headers = {
|
|
207
210
|
...this.headers || {},
|
|
208
211
|
Authorization
|