@trafficgroup/knex-rel 0.1.21 → 0.1.23-rc.0
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 +1 -1
- package/dist/constants/study.constants.js +1 -1
- 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 +19 -2
- package/dist/dao/VideoMinuteResultDAO.js +75 -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.d.ts +0 -10
- package/dist/dao/batch/batch.dao.js +14 -51
- 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/report-configuration/report-configuration.dao.js +68 -39
- 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 -15
- 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 +10 -9
- package/dist/index.js +4 -4
- 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/report-configuration/report-configuration.interfaces.d.ts +1 -0
- package/dist/interfaces/study/study.interfaces.d.ts +2 -8
- 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/package.json +3 -3
- package/src/constants/folder.constants.ts +8 -17
- package/src/constants/study.constants.ts +1 -1
- package/src/constants/video.constants.ts +7 -11
- package/src/d.types.ts +14 -18
- package/src/dao/VideoMinuteResultDAO.ts +127 -83
- package/src/dao/auth/auth.dao.ts +55 -58
- package/src/dao/batch/batch.dao.ts +100 -145
- 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 +1 -1
- package/src/dao/report-configuration/report-configuration.dao.ts +381 -370
- package/src/dao/study/study.dao.ts +83 -94
- 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 +30 -43
- 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/report-configuration/report-configuration.interfaces.ts +17 -16
- package/src/interfaces/study/study.interfaces.ts +3 -10
- 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
|
@@ -20,9 +20,7 @@ class BatchDAO {
|
|
|
20
20
|
}
|
|
21
21
|
create(item) {
|
|
22
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
const [createdBatch] = yield this._knex("video_batch")
|
|
24
|
-
.insert(item)
|
|
25
|
-
.returning("*");
|
|
23
|
+
const [createdBatch] = yield this._knex("video_batch").insert(item).returning("*");
|
|
26
24
|
return createdBatch;
|
|
27
25
|
});
|
|
28
26
|
}
|
|
@@ -48,10 +46,7 @@ class BatchDAO {
|
|
|
48
46
|
}
|
|
49
47
|
update(id, item) {
|
|
50
48
|
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
-
const [updatedBatch] = yield this._knex("video_batch")
|
|
52
|
-
.where({ id })
|
|
53
|
-
.update(item)
|
|
54
|
-
.returning("*");
|
|
49
|
+
const [updatedBatch] = yield this._knex("video_batch").where({ id }).update(item).returning("*");
|
|
55
50
|
return updatedBatch || null;
|
|
56
51
|
});
|
|
57
52
|
}
|
|
@@ -101,59 +96,25 @@ class BatchDAO {
|
|
|
101
96
|
*/
|
|
102
97
|
updateProgress(id, completedVideos, failedVideos) {
|
|
103
98
|
return __awaiter(this, void 0, void 0, function* () {
|
|
104
|
-
yield this._knex("video_batch")
|
|
99
|
+
yield this._knex("video_batch")
|
|
100
|
+
.where({ id })
|
|
101
|
+
.update({
|
|
105
102
|
completedVideos,
|
|
106
103
|
failedVideos,
|
|
107
|
-
updated_at: this._knex.fn.now()
|
|
104
|
+
updated_at: this._knex.fn.now()
|
|
108
105
|
});
|
|
109
106
|
});
|
|
110
107
|
}
|
|
111
|
-
/**
|
|
112
|
-
* Atomically increment completedVideos counter with row-level locking.
|
|
113
|
-
* Returns the updated batch with fresh counters.
|
|
114
|
-
*/
|
|
115
|
-
incrementCompleted(id) {
|
|
116
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
117
|
-
return this._knex.transaction((trx) => __awaiter(this, void 0, void 0, function* () {
|
|
118
|
-
const batch = yield trx("video_batch").where({ id }).forUpdate().first();
|
|
119
|
-
if (!batch)
|
|
120
|
-
throw new Error(`Batch ${id} not found`);
|
|
121
|
-
const newCompleted = batch.completedVideos + 1;
|
|
122
|
-
yield trx("video_batch").where({ id }).update({
|
|
123
|
-
completedVideos: newCompleted,
|
|
124
|
-
updated_at: trx.fn.now(),
|
|
125
|
-
});
|
|
126
|
-
return Object.assign(Object.assign({}, batch), { completedVideos: newCompleted });
|
|
127
|
-
}));
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Atomically increment failedVideos counter with row-level locking.
|
|
132
|
-
* Returns the updated batch with fresh counters.
|
|
133
|
-
*/
|
|
134
|
-
incrementFailed(id) {
|
|
135
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
136
|
-
return this._knex.transaction((trx) => __awaiter(this, void 0, void 0, function* () {
|
|
137
|
-
const batch = yield trx("video_batch").where({ id }).forUpdate().first();
|
|
138
|
-
if (!batch)
|
|
139
|
-
throw new Error(`Batch ${id} not found`);
|
|
140
|
-
const newFailed = batch.failedVideos + 1;
|
|
141
|
-
yield trx("video_batch").where({ id }).update({
|
|
142
|
-
failedVideos: newFailed,
|
|
143
|
-
updated_at: trx.fn.now(),
|
|
144
|
-
});
|
|
145
|
-
return Object.assign(Object.assign({}, batch), { failedVideos: newFailed });
|
|
146
|
-
}));
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
108
|
/**
|
|
150
109
|
* Mark batch as completed
|
|
151
110
|
*/
|
|
152
111
|
markCompleted(id) {
|
|
153
112
|
return __awaiter(this, void 0, void 0, function* () {
|
|
154
|
-
yield this._knex("video_batch")
|
|
113
|
+
yield this._knex("video_batch")
|
|
114
|
+
.where({ id })
|
|
115
|
+
.update({
|
|
155
116
|
status: "COMPLETED",
|
|
156
|
-
updated_at: this._knex.fn.now()
|
|
117
|
+
updated_at: this._knex.fn.now()
|
|
157
118
|
});
|
|
158
119
|
});
|
|
159
120
|
}
|
|
@@ -162,9 +123,11 @@ class BatchDAO {
|
|
|
162
123
|
*/
|
|
163
124
|
markFailed(id) {
|
|
164
125
|
return __awaiter(this, void 0, void 0, function* () {
|
|
165
|
-
yield this._knex("video_batch")
|
|
126
|
+
yield this._knex("video_batch")
|
|
127
|
+
.where({ id })
|
|
128
|
+
.update({
|
|
166
129
|
status: "FAILED",
|
|
167
|
-
updated_at: this._knex.fn.now()
|
|
130
|
+
updated_at: this._knex.fn.now()
|
|
168
131
|
});
|
|
169
132
|
});
|
|
170
133
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch.dao.js","sourceRoot":"","sources":["../../../src/dao/batch/batch.dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,0EAA+C;AAE/C,MAAa,QAAQ;IAArB;
|
|
1
|
+
{"version":3,"file":"batch.dao.js","sourceRoot":"","sources":["../../../src/dao/batch/batch.dao.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,9 +20,7 @@ class CameraDAO {
|
|
|
20
20
|
}
|
|
21
21
|
create(item) {
|
|
22
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
const [createdCamera] = yield this._knex("cameras")
|
|
24
|
-
.insert(item)
|
|
25
|
-
.returning("*");
|
|
23
|
+
const [createdCamera] = yield this._knex("cameras").insert(item).returning("*");
|
|
26
24
|
return createdCamera;
|
|
27
25
|
});
|
|
28
26
|
}
|
|
@@ -40,10 +38,7 @@ class CameraDAO {
|
|
|
40
38
|
}
|
|
41
39
|
update(id, item) {
|
|
42
40
|
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
-
const [updatedCamera] = yield this._knex("cameras")
|
|
44
|
-
.where({ id })
|
|
45
|
-
.update(item)
|
|
46
|
-
.returning("*");
|
|
41
|
+
const [updatedCamera] = yield this._knex("cameras").where({ id }).update(item).returning("*");
|
|
47
42
|
return updatedCamera || null;
|
|
48
43
|
});
|
|
49
44
|
}
|
|
@@ -77,7 +72,8 @@ class CameraDAO {
|
|
|
77
72
|
*/
|
|
78
73
|
getCamerasByLocationId(locationId, status) {
|
|
79
74
|
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
-
let query = this._knex("cameras")
|
|
75
|
+
let query = this._knex("cameras")
|
|
76
|
+
.where("locationId", locationId);
|
|
81
77
|
if (status) {
|
|
82
78
|
query = query.where("status", status);
|
|
83
79
|
}
|
|
@@ -94,7 +90,8 @@ class CameraDAO {
|
|
|
94
90
|
getCamerasByLocationIdPaginated(locationId, page, limit, status) {
|
|
95
91
|
return __awaiter(this, void 0, void 0, function* () {
|
|
96
92
|
const offset = (page - 1) * limit;
|
|
97
|
-
let query = this._knex("cameras")
|
|
93
|
+
let query = this._knex("cameras")
|
|
94
|
+
.where("locationId", locationId);
|
|
98
95
|
if (status) {
|
|
99
96
|
query = query.where("status", status);
|
|
100
97
|
}
|
|
@@ -112,7 +109,7 @@ class CameraDAO {
|
|
|
112
109
|
limit,
|
|
113
110
|
count: cameras.length,
|
|
114
111
|
totalCount,
|
|
115
|
-
totalPages: Math.ceil(totalCount / limit)
|
|
112
|
+
totalPages: Math.ceil(totalCount / limit)
|
|
116
113
|
};
|
|
117
114
|
});
|
|
118
115
|
}
|
|
@@ -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":";;;;;;;;;;;;;;;AAIA,0EAA+C;AAE/C,MAAa,WAAW;IAAxB;QACY,UAAK,GAAyB,wBAAW,CAAC,aAAa,EAAE,CAAC;IA6FtE,CAAC;IA3FS,MAAM,CAAC,IAAe;;YACxB,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACpF,OAAO,eAAe,CAAC;QAC3B,CAAC;KAAA;IAEK,OAAO,CAAC,EAAU;;YACpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YACrE,OAAO,QAAQ,IAAI,IAAI,CAAC;QAC5B,CAAC;KAAA;IAEK,SAAS,CAAC,IAAY;;YACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YACvE,OAAO,QAAQ,IAAI,IAAI,CAAC;QAC5B,CAAC;KAAA;IAEK,MAAM,CAAC,EAAU,EAAE,IAAwB;;YAC7C,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAClG,OAAO,eAAe,IAAI,IAAI,CAAC;QACnC,CAAC;KAAA;IAEK,MAAM,CAAC,EAAU;;YACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;YACjE,OAAO,MAAM,GAAG,CAAC,CAAC;QACtB,CAAC;KAAA;IAEK,MAAM,CAAC,IAAY,EAAE,KAAa;;YACpC,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YAElC,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACxE,MAAM,UAAU,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;YACtC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAE5E,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,SAAS;gBACf,IAAI;gBACJ,KAAK;gBACL,KAAK,EAAE,SAAS,CAAC,MAAM;gBACvB,UAAU;gBACV,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;aAC5C,CAAC;QACN,CAAC;KAAA;IAEK,SAAS,CAAC,IAAY;;YACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YACvE,OAAO,QAAQ,IAAI,IAAI,CAAC;QAC5B,CAAC;KAAA;IAEK,2BAA2B;6DAAC,SAAiB,EAAE,QAAgB,EAAE,WAAmB,CAAC;YACvF,uDAAuD;YACvD,gEAAgE;YAChE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;iBAC1C,QAAQ,CACL;;;;kBAIE,EACF,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,CAAC,uBAAuB;aACjE,CAAC;YACN,OAAO,SAAS,CAAC;QACrB,CAAC;KAAA;IAED;;OAEG;IACG,gBAAgB,CAAC,IAAY,EAAE,KAAa,EAAE,IAAa;;YAC7D,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YAElC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAEpC,2FAA2F;YAC3F,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC3D,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,WAAW,GAAG,CAAC,CAAC;YAC7D,CAAC;YAED,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC9D,MAAM,UAAU,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;YACtC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAEzF,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,SAAS;gBACf,IAAI;gBACJ,KAAK;gBACL,KAAK,EAAE,SAAS,CAAC,MAAM;gBACvB,UAAU;gBACV,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;aAC5C,CAAC;QACN,CAAC;KAAA;CACJ;AA9FD,kCA8FC"}
|
|
@@ -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>;
|