@trafficgroup/knex-rel 0.1.17 → 0.1.19
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/.claude/settings.local.json +5 -2
- package/CLAUDE.md +2 -11
- package/dist/constants/folder.constants.d.ts +2 -2
- package/dist/constants/folder.constants.js +6 -15
- package/dist/constants/folder.constants.js.map +1 -1
- package/dist/constants/study.constants.d.ts +10 -0
- package/dist/constants/study.constants.js +18 -0
- package/dist/constants/study.constants.js.map +1 -0
- package/dist/constants/video.constants.d.ts +2 -2
- package/dist/constants/video.constants.js +5 -9
- package/dist/constants/video.constants.js.map +1 -1
- package/dist/dao/VideoMinuteResultDAO.d.ts +1 -1
- package/dist/dao/VideoMinuteResultDAO.js +23 -29
- package/dist/dao/VideoMinuteResultDAO.js.map +1 -1
- package/dist/dao/auth/auth.dao.js +1 -4
- package/dist/dao/auth/auth.dao.js.map +1 -1
- package/dist/dao/batch/batch.dao.js +14 -13
- package/dist/dao/batch/batch.dao.js.map +1 -1
- package/dist/dao/camera/camera.dao.js +7 -10
- package/dist/dao/camera/camera.dao.js.map +1 -1
- package/dist/dao/chat/chat.dao.d.ts +1 -1
- package/dist/dao/chat/chat.dao.js +40 -27
- package/dist/dao/chat/chat.dao.js.map +1 -1
- package/dist/dao/folder/folder.dao.js +7 -18
- package/dist/dao/folder/folder.dao.js.map +1 -1
- package/dist/dao/location/location.dao.js +9 -16
- package/dist/dao/location/location.dao.js.map +1 -1
- package/dist/dao/message/message.dao.d.ts +1 -1
- package/dist/dao/message/message.dao.js +26 -18
- package/dist/dao/message/message.dao.js.map +1 -1
- package/dist/dao/reconciliation-log/reconciliation-log.dao.d.ts +6 -0
- package/dist/dao/reconciliation-log/reconciliation-log.dao.js +39 -0
- package/dist/dao/reconciliation-log/reconciliation-log.dao.js.map +1 -0
- package/dist/dao/report-configuration/report-configuration.dao.js +31 -32
- package/dist/dao/report-configuration/report-configuration.dao.js.map +1 -1
- package/dist/dao/study/study.dao.d.ts +8 -1
- package/dist/dao/study/study.dao.js +20 -11
- package/dist/dao/study/study.dao.js.map +1 -1
- package/dist/dao/systemConfiguration/SystemConfigurationDAO.d.ts +2 -2
- package/dist/dao/systemConfiguration/SystemConfigurationDAO.js +26 -26
- package/dist/dao/systemConfiguration/SystemConfigurationDAO.js.map +1 -1
- package/dist/dao/user/user.dao.js +1 -4
- package/dist/dao/user/user.dao.js.map +1 -1
- package/dist/dao/user-push-notification-token/user-push-notification-token.dao.js +8 -26
- package/dist/dao/user-push-notification-token/user-push-notification-token.dao.js.map +1 -1
- package/dist/dao/video/video.dao.js +28 -30
- package/dist/dao/video/video.dao.js.map +1 -1
- package/dist/index.d.ts +12 -7
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/batch/batch.interfaces.d.ts +1 -1
- package/dist/interfaces/camera/camera.interfaces.d.ts +1 -1
- package/dist/interfaces/chat/chat.interfaces.d.ts +3 -3
- package/dist/interfaces/folder/folder.interfaces.d.ts +1 -1
- package/dist/interfaces/message/message.interfaces.d.ts +2 -2
- package/dist/interfaces/reconciliation-log/reconciliation-log.interfaces.d.ts +15 -0
- package/dist/interfaces/reconciliation-log/reconciliation-log.interfaces.js +3 -0
- package/dist/interfaces/reconciliation-log/reconciliation-log.interfaces.js.map +1 -0
- package/dist/interfaces/study/study.interfaces.d.ts +2 -2
- package/dist/interfaces/user/user.interfaces.d.ts +1 -1
- package/dist/interfaces/user-push-notification-token/user-push-notification-token.interfaces.d.ts +1 -1
- package/dist/interfaces/video/video.interfaces.d.ts +2 -2
- package/migrations/20250717160737_migration.ts +1 -1
- package/migrations/20250717160908_migration.ts +2 -5
- package/migrations/20250717161310_migration.ts +1 -1
- package/migrations/20250717161406_migration.ts +3 -3
- package/migrations/20250717162431_migration.ts +1 -1
- package/migrations/20250717173228_migration.ts +2 -2
- package/migrations/20250717204731_migration.ts +1 -1
- package/migrations/20250722210109_migration.ts +4 -8
- package/migrations/20250722211019_migration.ts +1 -1
- package/migrations/20250723153852_migration.ts +10 -13
- package/migrations/20250723162257_migration.ts +7 -4
- package/migrations/20250723171109_migration.ts +7 -4
- package/migrations/20250723205331_migration.ts +9 -6
- package/migrations/20250724191345_migration.ts +11 -8
- package/migrations/20250730180932_migration.ts +13 -14
- package/migrations/20250730213625_migration.ts +11 -8
- package/migrations/20250804124509_migration.ts +21 -26
- package/migrations/20250804132053_migration.ts +8 -5
- package/migrations/20250804164518_migration.ts +7 -7
- package/migrations/20250823223016_migration.ts +21 -32
- package/migrations/20250910015452_migration.ts +6 -18
- package/migrations/20250911000000_migration.ts +4 -18
- package/migrations/20250917144153_migration.ts +7 -14
- package/migrations/20250930200521_migration.ts +4 -8
- package/migrations/20251010143500_migration.ts +6 -27
- package/migrations/20251020225758_migration.ts +15 -51
- package/migrations/20251112120000_migration.ts +2 -10
- package/migrations/20251112120200_migration.ts +7 -19
- package/migrations/20251112120300_migration.ts +2 -7
- package/migrations/20260109140000_migration.ts +2 -7
- package/migrations/20260209140000_migration.ts +27 -0
- package/package.json +1 -1
- package/src/constants/folder.constants.ts +8 -17
- package/src/constants/study.constants.ts +17 -0
- package/src/constants/video.constants.ts +7 -11
- package/src/d.types.ts +14 -18
- package/src/dao/VideoMinuteResultDAO.ts +52 -83
- package/src/dao/auth/auth.dao.ts +55 -58
- package/src/dao/batch/batch.dao.ts +98 -101
- package/src/dao/camera/camera.dao.ts +121 -124
- package/src/dao/chat/chat.dao.ts +45 -45
- package/src/dao/folder/folder.dao.ts +90 -105
- package/src/dao/location/location.dao.ts +87 -109
- package/src/dao/message/message.dao.ts +32 -32
- package/src/dao/reconciliation-log/reconciliation-log.dao.ts +26 -0
- package/src/dao/report-configuration/report-configuration.dao.ts +342 -370
- package/src/dao/study/study.dao.ts +84 -88
- package/src/dao/systemConfiguration/SystemConfigurationDAO.ts +35 -41
- package/src/dao/user/user.dao.ts +50 -52
- package/src/dao/user-push-notification-token/user-push-notification-token.dao.ts +48 -80
- package/src/dao/video/video.dao.ts +345 -396
- package/src/entities/BaseEntity.ts +1 -1
- package/src/index.ts +31 -37
- package/src/interfaces/auth/auth.interfaces.ts +10 -10
- package/src/interfaces/batch/batch.interfaces.ts +1 -1
- package/src/interfaces/camera/camera.interfaces.ts +9 -9
- package/src/interfaces/chat/chat.interfaces.ts +4 -4
- package/src/interfaces/folder/folder.interfaces.ts +2 -2
- package/src/interfaces/location/location.interfaces.ts +7 -7
- package/src/interfaces/message/message.interfaces.ts +3 -3
- package/src/interfaces/reconciliation-log/reconciliation-log.interfaces.ts +15 -0
- package/src/interfaces/report-configuration/report-configuration.interfaces.ts +16 -16
- package/src/interfaces/study/study.interfaces.ts +3 -3
- package/src/interfaces/user/user.interfaces.ts +9 -9
- package/src/interfaces/user-push-notification-token/user-push-notification-token.interfaces.ts +9 -9
- package/src/interfaces/video/video.interfaces.ts +34 -34
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camera.dao.js","sourceRoot":"","sources":["../../../src/dao/camera/camera.dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,0EAA+C;AAE/C,MAAa,SAAS;IAAtB;
|
|
1
|
+
{"version":3,"file":"camera.dao.js","sourceRoot":"","sources":["../../../src/dao/camera/camera.dao.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IBaseDAO, IDataPaginator } from "../../d.types";
|
|
2
|
-
import { IChat, IChatCreate, IChatUpdate } from
|
|
2
|
+
import { IChat, IChatCreate, IChatUpdate } from '../../interfaces/chat/chat.interfaces';
|
|
3
3
|
export interface IChatPaginatorResponse extends IDataPaginator<IChat> {
|
|
4
4
|
hasMore: boolean;
|
|
5
5
|
}
|
|
@@ -20,19 +20,25 @@ class ChatDAO {
|
|
|
20
20
|
}
|
|
21
21
|
create(item) {
|
|
22
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
const [result] = yield this._knex(
|
|
23
|
+
const [result] = yield this._knex('chat')
|
|
24
|
+
.insert(item)
|
|
25
|
+
.returning('*');
|
|
24
26
|
return result;
|
|
25
27
|
});
|
|
26
28
|
}
|
|
27
29
|
getById(id) {
|
|
28
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
-
const result = yield this._knex(
|
|
31
|
+
const result = yield this._knex('chat')
|
|
32
|
+
.where('id', id)
|
|
33
|
+
.first();
|
|
30
34
|
return result || null;
|
|
31
35
|
});
|
|
32
36
|
}
|
|
33
37
|
getByUuid(uuid) {
|
|
34
38
|
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
-
const result = yield this._knex(
|
|
39
|
+
const result = yield this._knex('chat')
|
|
40
|
+
.where('uuid', uuid)
|
|
41
|
+
.first();
|
|
36
42
|
return result || null;
|
|
37
43
|
});
|
|
38
44
|
}
|
|
@@ -40,11 +46,11 @@ class ChatDAO {
|
|
|
40
46
|
return __awaiter(this, arguments, void 0, function* (page = 1, limit = 10) {
|
|
41
47
|
const offset = (page - 1) * limit;
|
|
42
48
|
const [results, [{ count }]] = yield Promise.all([
|
|
43
|
-
this._knex(
|
|
44
|
-
.orderBy(
|
|
49
|
+
this._knex('chat')
|
|
50
|
+
.orderBy('created_at', 'desc')
|
|
45
51
|
.limit(limit)
|
|
46
52
|
.offset(offset),
|
|
47
|
-
this._knex(
|
|
53
|
+
this._knex('chat').count('* as count')
|
|
48
54
|
]);
|
|
49
55
|
const totalCount = parseInt(count);
|
|
50
56
|
return {
|
|
@@ -54,22 +60,24 @@ class ChatDAO {
|
|
|
54
60
|
limit,
|
|
55
61
|
count: results.length,
|
|
56
62
|
totalCount,
|
|
57
|
-
totalPages: Math.ceil(totalCount / limit)
|
|
63
|
+
totalPages: Math.ceil(totalCount / limit)
|
|
58
64
|
};
|
|
59
65
|
});
|
|
60
66
|
}
|
|
61
67
|
update(id, item) {
|
|
62
68
|
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
-
const [result] = yield this._knex(
|
|
64
|
-
.where(
|
|
69
|
+
const [result] = yield this._knex('chat')
|
|
70
|
+
.where('id', id)
|
|
65
71
|
.update(Object.assign(Object.assign({}, item), { updated_at: new Date() }))
|
|
66
|
-
.returning(
|
|
72
|
+
.returning('*');
|
|
67
73
|
return result || null;
|
|
68
74
|
});
|
|
69
75
|
}
|
|
70
76
|
delete(id) {
|
|
71
77
|
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
const result = yield this._knex(
|
|
78
|
+
const result = yield this._knex('chat')
|
|
79
|
+
.where('id', id)
|
|
80
|
+
.delete();
|
|
73
81
|
return result > 0;
|
|
74
82
|
});
|
|
75
83
|
}
|
|
@@ -77,12 +85,14 @@ class ChatDAO {
|
|
|
77
85
|
return __awaiter(this, arguments, void 0, function* (userId, page = 1, limit = 10) {
|
|
78
86
|
const offset = (page - 1) * limit;
|
|
79
87
|
const [results, [{ count }]] = yield Promise.all([
|
|
80
|
-
this._knex(
|
|
81
|
-
.where(
|
|
82
|
-
.orderBy(
|
|
88
|
+
this._knex('chat')
|
|
89
|
+
.where('userId', userId)
|
|
90
|
+
.orderBy('created_at', 'desc')
|
|
83
91
|
.limit(limit)
|
|
84
92
|
.offset(offset),
|
|
85
|
-
this._knex(
|
|
93
|
+
this._knex('chat')
|
|
94
|
+
.where('userId', userId)
|
|
95
|
+
.count('* as count')
|
|
86
96
|
]);
|
|
87
97
|
const totalCount = parseInt(count);
|
|
88
98
|
return {
|
|
@@ -92,7 +102,7 @@ class ChatDAO {
|
|
|
92
102
|
limit,
|
|
93
103
|
count: results.length,
|
|
94
104
|
totalCount,
|
|
95
|
-
totalPages: Math.ceil(totalCount / limit)
|
|
105
|
+
totalPages: Math.ceil(totalCount / limit)
|
|
96
106
|
};
|
|
97
107
|
});
|
|
98
108
|
}
|
|
@@ -100,22 +110,25 @@ class ChatDAO {
|
|
|
100
110
|
return __awaiter(this, arguments, void 0, function* (userId, page = 1, limit = 10, query) {
|
|
101
111
|
const offset = (page - 1) * limit;
|
|
102
112
|
// Build data query
|
|
103
|
-
let dataQuery = this._knex(
|
|
104
|
-
.where(
|
|
105
|
-
.where(
|
|
113
|
+
let dataQuery = this._knex('chat')
|
|
114
|
+
.where('userId', userId)
|
|
115
|
+
.where('status', 'active');
|
|
106
116
|
// Build count query
|
|
107
|
-
let countQuery = this._knex(
|
|
108
|
-
.where(
|
|
109
|
-
.where(
|
|
117
|
+
let countQuery = this._knex('chat')
|
|
118
|
+
.where('userId', userId)
|
|
119
|
+
.where('status', 'active');
|
|
110
120
|
// Apply search filter if query is provided
|
|
111
121
|
if (query && query.trim()) {
|
|
112
122
|
const searchTerm = `%${query.trim()}%`;
|
|
113
|
-
dataQuery = dataQuery.where(
|
|
114
|
-
countQuery = countQuery.where(
|
|
123
|
+
dataQuery = dataQuery.where('title', 'ILIKE', searchTerm);
|
|
124
|
+
countQuery = countQuery.where('title', 'ILIKE', searchTerm);
|
|
115
125
|
}
|
|
116
126
|
const [results, [{ count }]] = yield Promise.all([
|
|
117
|
-
dataQuery
|
|
118
|
-
|
|
127
|
+
dataQuery
|
|
128
|
+
.orderBy('created_at', 'desc')
|
|
129
|
+
.limit(limit)
|
|
130
|
+
.offset(offset),
|
|
131
|
+
countQuery.count('* as count')
|
|
119
132
|
]);
|
|
120
133
|
const totalCount = parseInt(count);
|
|
121
134
|
const totalPages = Math.ceil(totalCount / limit);
|
|
@@ -128,7 +141,7 @@ class ChatDAO {
|
|
|
128
141
|
count: results.length,
|
|
129
142
|
totalCount,
|
|
130
143
|
totalPages,
|
|
131
|
-
hasMore
|
|
144
|
+
hasMore
|
|
132
145
|
};
|
|
133
146
|
});
|
|
134
147
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.dao.js","sourceRoot":"","sources":["../../../src/dao/chat/chat.dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"chat.dao.js","sourceRoot":"","sources":["../../../src/dao/chat/chat.dao.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,9 +21,7 @@ class FolderDAO {
|
|
|
21
21
|
}
|
|
22
22
|
create(item) {
|
|
23
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
const [createdFolder] = yield this._knex("folders")
|
|
25
|
-
.insert(item)
|
|
26
|
-
.returning("*");
|
|
24
|
+
const [createdFolder] = yield this._knex("folders").insert(item).returning("*");
|
|
27
25
|
return createdFolder;
|
|
28
26
|
});
|
|
29
27
|
}
|
|
@@ -49,10 +47,7 @@ class FolderDAO {
|
|
|
49
47
|
}
|
|
50
48
|
update(id, item) {
|
|
51
49
|
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
-
const [updatedFolder] = yield this._knex("folders")
|
|
53
|
-
.where({ id })
|
|
54
|
-
.update(item)
|
|
55
|
-
.returning("*");
|
|
50
|
+
const [updatedFolder] = yield this._knex("folders").where({ id }).update(item).returning("*");
|
|
56
51
|
return updatedFolder || null;
|
|
57
52
|
});
|
|
58
53
|
}
|
|
@@ -81,30 +76,24 @@ class FolderDAO {
|
|
|
81
76
|
}
|
|
82
77
|
// Search by name (case-insensitive)
|
|
83
78
|
if (filters.search) {
|
|
84
|
-
query.whereRaw("LOWER(f.name) LIKE ?", [
|
|
85
|
-
`%${filters.search.toLowerCase()}%`,
|
|
86
|
-
]);
|
|
79
|
+
query.whereRaw("LOWER(f.name) LIKE ?", [`%${filters.search.toLowerCase()}%`]);
|
|
87
80
|
}
|
|
88
81
|
// Apply sorting
|
|
89
82
|
if (filters.sortBy) {
|
|
90
83
|
const columnName = folder_constants_1.FOLDER_SORT_COLUMN_MAP[filters.sortBy];
|
|
91
|
-
const order = filters.sortOrder ||
|
|
84
|
+
const order = filters.sortOrder || 'DESC';
|
|
92
85
|
query.orderBy(columnName, order);
|
|
93
86
|
}
|
|
94
87
|
else {
|
|
95
88
|
// Default sort by created_at DESC
|
|
96
|
-
query.orderBy(
|
|
89
|
+
query.orderBy('f.created_at', 'DESC');
|
|
97
90
|
}
|
|
98
91
|
}
|
|
99
92
|
else {
|
|
100
93
|
// Default sort by created_at DESC
|
|
101
|
-
query.orderBy(
|
|
94
|
+
query.orderBy('f.created_at', 'DESC');
|
|
102
95
|
}
|
|
103
|
-
const [countResult] = yield query
|
|
104
|
-
.clone()
|
|
105
|
-
.clearSelect()
|
|
106
|
-
.clearOrder()
|
|
107
|
-
.count("* as count");
|
|
96
|
+
const [countResult] = yield query.clone().clearSelect().clearOrder().count("* as count");
|
|
108
97
|
const totalCount = +countResult.count;
|
|
109
98
|
const folders = yield query.clone().limit(limit).offset(offset);
|
|
110
99
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folder.dao.js","sourceRoot":"","sources":["../../../src/dao/folder/folder.dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,0EAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"folder.dao.js","sourceRoot":"","sources":["../../../src/dao/folder/folder.dao.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,9 +20,7 @@ class LocationDAO {
|
|
|
20
20
|
}
|
|
21
21
|
create(item) {
|
|
22
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
const [createdLocation] = yield this._knex("locations")
|
|
24
|
-
.insert(item)
|
|
25
|
-
.returning("*");
|
|
23
|
+
const [createdLocation] = yield this._knex("locations").insert(item).returning("*");
|
|
26
24
|
return createdLocation;
|
|
27
25
|
});
|
|
28
26
|
}
|
|
@@ -40,10 +38,7 @@ class LocationDAO {
|
|
|
40
38
|
}
|
|
41
39
|
update(id, item) {
|
|
42
40
|
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
-
const [updatedLocation] = yield this._knex("locations")
|
|
44
|
-
.where({ id })
|
|
45
|
-
.update(item)
|
|
46
|
-
.returning("*");
|
|
41
|
+
const [updatedLocation] = yield this._knex("locations").where({ id }).update(item).returning("*");
|
|
47
42
|
return updatedLocation || null;
|
|
48
43
|
});
|
|
49
44
|
}
|
|
@@ -80,11 +75,13 @@ class LocationDAO {
|
|
|
80
75
|
return __awaiter(this, arguments, void 0, function* (longitude, latitude, radiusKm = 1) {
|
|
81
76
|
// Using ST_DWithin for geographic distance calculation
|
|
82
77
|
// This is a PostgreSQL-specific query for geospatial operations
|
|
83
|
-
const locations = yield this._knex("locations")
|
|
78
|
+
const locations = yield this._knex("locations")
|
|
79
|
+
.whereRaw(`ST_DWithin(
|
|
84
80
|
ST_MakePoint(longitude, latitude)::geography,
|
|
85
81
|
ST_MakePoint(?, ?)::geography,
|
|
86
82
|
?
|
|
87
|
-
)`, [longitude, latitude, radiusKm * 1000]
|
|
83
|
+
)`, [longitude, latitude, radiusKm * 1000] // Convert km to meters
|
|
84
|
+
);
|
|
88
85
|
return locations;
|
|
89
86
|
});
|
|
90
87
|
}
|
|
@@ -97,16 +94,12 @@ class LocationDAO {
|
|
|
97
94
|
let query = this._knex("locations");
|
|
98
95
|
// Apply search filter if name provided (escape special chars to prevent pattern injection)
|
|
99
96
|
if (name && name.trim().length > 0) {
|
|
100
|
-
const escapedName = name.trim().replace(/[%_\\]/g,
|
|
101
|
-
query = query.where(
|
|
97
|
+
const escapedName = name.trim().replace(/[%_\\]/g, '\\$&');
|
|
98
|
+
query = query.where('name', 'ilike', `%${escapedName}%`);
|
|
102
99
|
}
|
|
103
100
|
const [countResult] = yield query.clone().count("* as count");
|
|
104
101
|
const totalCount = +countResult.count;
|
|
105
|
-
const locations = yield query
|
|
106
|
-
.clone()
|
|
107
|
-
.limit(limit)
|
|
108
|
-
.offset(offset)
|
|
109
|
-
.orderBy("name", "asc");
|
|
102
|
+
const locations = yield query.clone().limit(limit).offset(offset).orderBy('name', 'asc');
|
|
110
103
|
return {
|
|
111
104
|
success: true,
|
|
112
105
|
data: locations,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"location.dao.js","sourceRoot":"","sources":["../../../src/dao/location/location.dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,0EAA+C;AAE/C,MAAa,WAAW;IAAxB;
|
|
1
|
+
{"version":3,"file":"location.dao.js","sourceRoot":"","sources":["../../../src/dao/location/location.dao.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IBaseDAO, IDataPaginator } from "../../d.types";
|
|
2
|
-
import { IMessage, IMessageCreate, IMessageUpdate } from
|
|
2
|
+
import { IMessage, IMessageCreate, IMessageUpdate } from '../../interfaces/message/message.interfaces';
|
|
3
3
|
export declare class MessageDAO implements IBaseDAO<IMessage> {
|
|
4
4
|
private _knex;
|
|
5
5
|
create(item: IMessageCreate): Promise<IMessage>;
|
|
@@ -20,13 +20,17 @@ class MessageDAO {
|
|
|
20
20
|
}
|
|
21
21
|
create(item) {
|
|
22
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
const [result] = yield this._knex(
|
|
23
|
+
const [result] = yield this._knex('message')
|
|
24
|
+
.insert(item)
|
|
25
|
+
.returning('*');
|
|
24
26
|
return result;
|
|
25
27
|
});
|
|
26
28
|
}
|
|
27
29
|
getById(id) {
|
|
28
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
-
const result = yield this._knex(
|
|
31
|
+
const result = yield this._knex('message')
|
|
32
|
+
.where('id', id)
|
|
33
|
+
.first();
|
|
30
34
|
return result || null;
|
|
31
35
|
});
|
|
32
36
|
}
|
|
@@ -40,11 +44,11 @@ class MessageDAO {
|
|
|
40
44
|
return __awaiter(this, arguments, void 0, function* (page = 1, limit = 10) {
|
|
41
45
|
const offset = (page - 1) * limit;
|
|
42
46
|
const [results, [{ count }]] = yield Promise.all([
|
|
43
|
-
this._knex(
|
|
44
|
-
.orderBy(
|
|
47
|
+
this._knex('message')
|
|
48
|
+
.orderBy('created_at', 'asc')
|
|
45
49
|
.limit(limit)
|
|
46
50
|
.offset(offset),
|
|
47
|
-
this._knex(
|
|
51
|
+
this._knex('message').count('* as count')
|
|
48
52
|
]);
|
|
49
53
|
const totalCount = parseInt(count);
|
|
50
54
|
return {
|
|
@@ -54,22 +58,24 @@ class MessageDAO {
|
|
|
54
58
|
limit,
|
|
55
59
|
count: results.length,
|
|
56
60
|
totalCount,
|
|
57
|
-
totalPages: Math.ceil(totalCount / limit)
|
|
61
|
+
totalPages: Math.ceil(totalCount / limit)
|
|
58
62
|
};
|
|
59
63
|
});
|
|
60
64
|
}
|
|
61
65
|
update(id, item) {
|
|
62
66
|
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
-
const [result] = yield this._knex(
|
|
64
|
-
.where(
|
|
67
|
+
const [result] = yield this._knex('message')
|
|
68
|
+
.where('id', id)
|
|
65
69
|
.update(Object.assign(Object.assign({}, item), { updated_at: new Date() }))
|
|
66
|
-
.returning(
|
|
70
|
+
.returning('*');
|
|
67
71
|
return result || null;
|
|
68
72
|
});
|
|
69
73
|
}
|
|
70
74
|
delete(id) {
|
|
71
75
|
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
const result = yield this._knex(
|
|
76
|
+
const result = yield this._knex('message')
|
|
77
|
+
.where('id', id)
|
|
78
|
+
.delete();
|
|
73
79
|
return result > 0;
|
|
74
80
|
});
|
|
75
81
|
}
|
|
@@ -77,12 +83,14 @@ class MessageDAO {
|
|
|
77
83
|
return __awaiter(this, arguments, void 0, function* (chatId, page = 1, limit = 50) {
|
|
78
84
|
const offset = (page - 1) * limit;
|
|
79
85
|
const [results, [{ count }]] = yield Promise.all([
|
|
80
|
-
this._knex(
|
|
81
|
-
.where(
|
|
82
|
-
.orderBy(
|
|
86
|
+
this._knex('message')
|
|
87
|
+
.where('chatId', chatId)
|
|
88
|
+
.orderBy('created_at', 'asc')
|
|
83
89
|
.limit(limit)
|
|
84
90
|
.offset(offset),
|
|
85
|
-
this._knex(
|
|
91
|
+
this._knex('message')
|
|
92
|
+
.where('chatId', chatId)
|
|
93
|
+
.count('* as count')
|
|
86
94
|
]);
|
|
87
95
|
const totalCount = parseInt(count);
|
|
88
96
|
return {
|
|
@@ -92,15 +100,15 @@ class MessageDAO {
|
|
|
92
100
|
limit,
|
|
93
101
|
count: results.length,
|
|
94
102
|
totalCount,
|
|
95
|
-
totalPages: Math.ceil(totalCount / limit)
|
|
103
|
+
totalPages: Math.ceil(totalCount / limit)
|
|
96
104
|
};
|
|
97
105
|
});
|
|
98
106
|
}
|
|
99
107
|
getLatestMessages(chatId_1) {
|
|
100
108
|
return __awaiter(this, arguments, void 0, function* (chatId, limit = 50) {
|
|
101
|
-
return yield this._knex(
|
|
102
|
-
.where(
|
|
103
|
-
.orderBy(
|
|
109
|
+
return yield this._knex('message')
|
|
110
|
+
.where('chatId', chatId)
|
|
111
|
+
.orderBy('created_at', 'desc')
|
|
104
112
|
.limit(limit)
|
|
105
113
|
.then((messages) => messages.reverse());
|
|
106
114
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.dao.js","sourceRoot":"","sources":["../../../src/dao/message/message.dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"message.dao.js","sourceRoot":"","sources":["../../../src/dao/message/message.dao.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IReconciliationLog } from "../../interfaces/reconciliation-log/reconciliation-log.interfaces";
|
|
2
|
+
export declare class ReconciliationLogDAO {
|
|
3
|
+
private _knex;
|
|
4
|
+
create(item: Omit<IReconciliationLog, "id">): Promise<IReconciliationLog>;
|
|
5
|
+
getLastRun(): Promise<IReconciliationLog | null>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ReconciliationLogDAO = void 0;
|
|
16
|
+
const KnexConnection_1 = __importDefault(require("../../KnexConnection"));
|
|
17
|
+
class ReconciliationLogDAO {
|
|
18
|
+
constructor() {
|
|
19
|
+
this._knex = KnexConnection_1.default.getConnection();
|
|
20
|
+
}
|
|
21
|
+
create(item) {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
const [created] = yield this._knex("reconciliation_log")
|
|
24
|
+
.insert(Object.assign(Object.assign({}, item), { errors: JSON.stringify(item.errors) }))
|
|
25
|
+
.returning("*");
|
|
26
|
+
return created;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
getLastRun() {
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
const record = yield this._knex("reconciliation_log")
|
|
32
|
+
.orderBy("startedAt", "desc")
|
|
33
|
+
.first();
|
|
34
|
+
return record || null;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.ReconciliationLogDAO = ReconciliationLogDAO;
|
|
39
|
+
//# sourceMappingURL=reconciliation-log.dao.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconciliation-log.dao.js","sourceRoot":"","sources":["../../../src/dao/reconciliation-log/reconciliation-log.dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,0EAA+C;AAE/C,MAAa,oBAAoB;IAAjC;QACU,UAAK,GAAyB,wBAAW,CAAC,aAAa,EAAE,CAAC;IAoBpE,CAAC;IAlBO,MAAM,CACV,IAAoC;;YAEpC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;iBACrD,MAAM,iCACF,IAAI,KACP,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IACnC;iBACD,SAAS,CAAC,GAAG,CAAC,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;KAAA;IAEK,UAAU;;YACd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;iBAClD,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC;iBAC5B,KAAK,EAAE,CAAC;YACX,OAAO,MAAM,IAAI,IAAI,CAAC;QACxB,CAAC;KAAA;CACF;AArBD,oDAqBC"}
|