@spytecgps/nova-orm 1.0.37 → 1.0.39
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/entities/alert.d.ts +1 -0
- package/dist/entities/alert.js +5 -0
- package/dist/entities/alert.js.map +1 -1
- package/dist/entities/entityTag.d.ts +9 -6
- package/dist/entities/entityTag.js +33 -16
- package/dist/entities/entityTag.js.map +1 -1
- package/dist/entities/index.d.ts +2 -1
- package/dist/entities/index.js +2 -1
- package/dist/entities/index.js.map +1 -1
- package/dist/entities/tag.d.ts +11 -0
- package/dist/entities/tag.js +64 -0
- package/dist/entities/tag.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/repositories/index.d.ts +2 -1
- package/dist/repositories/index.js +2 -1
- package/dist/repositories/index.js.map +1 -1
- package/dist/repositories/liveLinks/getLiveLinkData.js +18 -16
- package/dist/repositories/liveLinks/getLiveLinkData.js.map +1 -1
- package/dist/repositories/tags/bulkCreateTags.d.ts +5 -0
- package/dist/repositories/tags/bulkCreateTags.js +24 -0
- package/dist/repositories/tags/bulkCreateTags.js.map +1 -0
- package/dist/repositories/tags/createTag.d.ts +5 -0
- package/dist/repositories/tags/createTag.js +20 -0
- package/dist/repositories/tags/createTag.js.map +1 -0
- package/dist/repositories/tags/deleteTag.d.ts +4 -0
- package/dist/repositories/tags/deleteTag.js +17 -0
- package/dist/repositories/tags/deleteTag.js.map +1 -0
- package/dist/repositories/tags/index.d.ts +35 -0
- package/dist/repositories/tags/index.js +70 -0
- package/dist/repositories/tags/index.js.map +1 -0
- package/dist/repositories/tags/searchTags.d.ts +4 -0
- package/dist/repositories/tags/searchTags.js +34 -0
- package/dist/repositories/tags/searchTags.js.map +1 -0
- package/dist/repositories/tags/updateTag.d.ts +4 -0
- package/dist/repositories/tags/updateTag.js +30 -0
- package/dist/repositories/tags/updateTag.js.map +1 -0
- package/dist/types/liveLinks.d.ts +15 -13
- package/dist/types/tag.d.ts +47 -0
- package/dist/types/tag.js +5 -0
- package/dist/types/tag.js.map +1 -0
- package/dist/utils/dateTool.d.ts +1 -0
- package/dist/utils/dateTool.js +5 -0
- package/dist/utils/dateTool.js.map +1 -0
- package/package.json +2 -1
|
@@ -20,6 +20,7 @@ import { LiveLinksRepository } from './liveLinks';
|
|
|
20
20
|
import { NotificationRecipientsRepository } from './notificationRecipients';
|
|
21
21
|
import { PositionRepository } from './positions';
|
|
22
22
|
import { SecurityRepository } from './security';
|
|
23
|
+
import { TagsRepository } from './tags';
|
|
23
24
|
import { TasksRepository } from './tasks';
|
|
24
25
|
import { TripRepository } from './trips';
|
|
25
26
|
import { UserActivationsRepository } from './userActivations';
|
|
@@ -31,4 +32,4 @@ import { UserInvitationsRepository } from './userInvitations';
|
|
|
31
32
|
import { UserRatingRequestsRepository } from './userRatingRequests';
|
|
32
33
|
import { UserRegistrationAttemptsRepository } from './userRegistrationAttempts';
|
|
33
34
|
import { UsersRepository } from './users';
|
|
34
|
-
export { AcumaticaRepository, AempTokenRepository, AlertRepository, AlertTypesRepository, AppFeaturesRepository, AssetCategoriesRepository, BillingRepository, BlacklistRepository, BLEMeshConfigurationRepository, BoundariesRepository, ClientsRepository, CountriesRepository, DeactivationsRepository, DeviceStatusRepository, DeviceBehaviorsRepository, DevicePairingsRepository, DevicesRepository, FirmwaresRepository, LiveLinksRepository, NotificationRecipientsRepository, PositionRepository, SecurityRepository, TasksRepository, TripRepository, UserActivationsRepository, UserAppFeedbackRepository, UserAppIncidentsRepository, UserConfigurationsRepository, UserDataDeletionRequestsRepository, UserInvitationsRepository, UserRatingRequestsRepository, UserRegistrationAttemptsRepository, UsersRepository, };
|
|
35
|
+
export { AcumaticaRepository, AempTokenRepository, AlertRepository, AlertTypesRepository, AppFeaturesRepository, AssetCategoriesRepository, BillingRepository, BlacklistRepository, BLEMeshConfigurationRepository, BoundariesRepository, ClientsRepository, CountriesRepository, DeactivationsRepository, DeviceStatusRepository, DeviceBehaviorsRepository, DevicePairingsRepository, DevicesRepository, FirmwaresRepository, LiveLinksRepository, NotificationRecipientsRepository, PositionRepository, SecurityRepository, TagsRepository, TasksRepository, TripRepository, UserActivationsRepository, UserAppFeedbackRepository, UserAppIncidentsRepository, UserConfigurationsRepository, UserDataDeletionRequestsRepository, UserInvitationsRepository, UserRatingRequestsRepository, UserRegistrationAttemptsRepository, UsersRepository, };
|
|
@@ -20,6 +20,7 @@ import { LiveLinksRepository } from './liveLinks';
|
|
|
20
20
|
import { NotificationRecipientsRepository } from './notificationRecipients';
|
|
21
21
|
import { PositionRepository } from './positions';
|
|
22
22
|
import { SecurityRepository } from './security';
|
|
23
|
+
import { TagsRepository } from './tags';
|
|
23
24
|
import { TasksRepository } from './tasks';
|
|
24
25
|
import { TripRepository } from './trips';
|
|
25
26
|
import { UserActivationsRepository } from './userActivations';
|
|
@@ -31,5 +32,5 @@ import { UserInvitationsRepository } from './userInvitations';
|
|
|
31
32
|
import { UserRatingRequestsRepository } from './userRatingRequests';
|
|
32
33
|
import { UserRegistrationAttemptsRepository } from './userRegistrationAttempts';
|
|
33
34
|
import { UsersRepository } from './users';
|
|
34
|
-
export { AcumaticaRepository, AempTokenRepository, AlertRepository, AlertTypesRepository, AppFeaturesRepository, AssetCategoriesRepository, BillingRepository, BlacklistRepository, BLEMeshConfigurationRepository, BoundariesRepository, ClientsRepository, CountriesRepository, DeactivationsRepository, DeviceStatusRepository, DeviceBehaviorsRepository, DevicePairingsRepository, DevicesRepository, FirmwaresRepository, LiveLinksRepository, NotificationRecipientsRepository, PositionRepository, SecurityRepository, TasksRepository, TripRepository, UserActivationsRepository, UserAppFeedbackRepository, UserAppIncidentsRepository, UserConfigurationsRepository, UserDataDeletionRequestsRepository, UserInvitationsRepository, UserRatingRequestsRepository, UserRegistrationAttemptsRepository, UsersRepository, };
|
|
35
|
+
export { AcumaticaRepository, AempTokenRepository, AlertRepository, AlertTypesRepository, AppFeaturesRepository, AssetCategoriesRepository, BillingRepository, BlacklistRepository, BLEMeshConfigurationRepository, BoundariesRepository, ClientsRepository, CountriesRepository, DeactivationsRepository, DeviceStatusRepository, DeviceBehaviorsRepository, DevicePairingsRepository, DevicesRepository, FirmwaresRepository, LiveLinksRepository, NotificationRecipientsRepository, PositionRepository, SecurityRepository, TagsRepository, TasksRepository, TripRepository, UserActivationsRepository, UserAppFeedbackRepository, UserAppIncidentsRepository, UserConfigurationsRepository, UserDataDeletionRequestsRepository, UserInvitationsRepository, UserRatingRequestsRepository, UserRegistrationAttemptsRepository, UsersRepository, };
|
|
35
36
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAA;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAA;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,8BAA8B,EAC9B,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,gCAAgC,EAChC,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,kCAAkC,EAClC,yBAAyB,EACzB,4BAA4B,EAC5B,kCAAkC,EAClC,eAAe,GAChB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAA;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAA;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,8BAA8B,EAC9B,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,gCAAgC,EAChC,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,kCAAkC,EAClC,yBAAyB,EACzB,4BAA4B,EAC5B,kCAAkC,EAClC,eAAe,GAChB,CAAA"}
|
|
@@ -5,12 +5,12 @@ import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
|
|
|
5
5
|
export const getLiveLinkData = async (novaDataSource, params, logger, deviceStatusRepository) => {
|
|
6
6
|
if (!params?.filters?.id || !params?.filters?.clientId) {
|
|
7
7
|
logger.warn({ params }, 'LiveLinksRepository::getLiveLinkData - missing required parameters');
|
|
8
|
-
return {
|
|
8
|
+
return { trackersWithStatus: [] };
|
|
9
9
|
}
|
|
10
10
|
const binaryBuffer = uuidStringToBinaryBuffer(params?.filters?.id);
|
|
11
11
|
if (!binaryBuffer?.length) {
|
|
12
12
|
logger.warn({ params }, 'LiveLinksRepository::getLiveLinkData - id should be a valid UUID');
|
|
13
|
-
return {
|
|
13
|
+
return { trackersWithStatus: [] };
|
|
14
14
|
}
|
|
15
15
|
return novaDataSource.safeQuery(async (dataSource) => {
|
|
16
16
|
const liveLinksRepository = dataSource.getRepository(LiveLink);
|
|
@@ -20,10 +20,10 @@ export const getLiveLinkData = async (novaDataSource, params, logger, deviceStat
|
|
|
20
20
|
.andWhere('clientId = :clientId', { clientId: params.filters.clientId });
|
|
21
21
|
const liveLink = await queryBuilder.getOne();
|
|
22
22
|
if (!liveLink) {
|
|
23
|
-
return {
|
|
23
|
+
return { trackersWithStatus: [] };
|
|
24
24
|
}
|
|
25
25
|
const result = {
|
|
26
|
-
|
|
26
|
+
trackersWithStatus: [],
|
|
27
27
|
};
|
|
28
28
|
const devices = liveLink.devices;
|
|
29
29
|
if (liveLink.deviceAccess === 'limited' && !devices?.length) {
|
|
@@ -58,7 +58,7 @@ export const getLiveLinkData = async (novaDataSource, params, logger, deviceStat
|
|
|
58
58
|
offset: params.pagingOptions?.pageIndex ?? 0,
|
|
59
59
|
},
|
|
60
60
|
});
|
|
61
|
-
result.
|
|
61
|
+
result.trackersWithStatus.push(...deviceStatuses.map(deviceStatus => {
|
|
62
62
|
const data = deviceStatus?.data;
|
|
63
63
|
return {
|
|
64
64
|
imei: deviceStatus.imei,
|
|
@@ -67,17 +67,19 @@ export const getLiveLinkData = async (novaDataSource, params, logger, deviceStat
|
|
|
67
67
|
deviceTypeId: deviceStatus.device?.deviceTypeId,
|
|
68
68
|
color: deviceStatus.device?.color,
|
|
69
69
|
icon: deviceStatus.device?.icon,
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
70
|
+
status: {
|
|
71
|
+
latitude: tryParseFloat(data?.latitude) ?? undefined,
|
|
72
|
+
longitude: tryParseFloat(data?.longitude) ?? undefined,
|
|
73
|
+
address: data?.address ?? undefined,
|
|
74
|
+
sendTime: tryParseDate(data?.sendTime) ?? undefined,
|
|
75
|
+
odoMileage: tryParseFloat(data?.odoMileage) ?? undefined,
|
|
76
|
+
batteryPercentage: tryParseFloat(data?.batteryPercentage) ?? undefined,
|
|
77
|
+
speed: tryParseFloat(data?.speed) ?? undefined,
|
|
78
|
+
hoursOfOperation: tryParseFloat(data?.hoursOfOperation) ?? undefined,
|
|
79
|
+
batteryVoltage: tryParseFloat(data?.batteryVoltage) ?? undefined,
|
|
80
|
+
externalPowerVoltage: tryParseFloat(data?.externalPowerVoltage) ?? undefined,
|
|
81
|
+
reportType: tryParseFloat(data?.reportType) ?? undefined,
|
|
82
|
+
},
|
|
81
83
|
};
|
|
82
84
|
}));
|
|
83
85
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLiveLinkData.js","sourceRoot":"","sources":["../../../src/repositories/liveLinks/getLiveLinkData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAElD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAGnC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAGlE,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,cAA8B,EAC9B,MAA6B,EAC7B,MAAc,EACd,sBAA8C,EACvB,EAAE;IACzB,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;QACtD,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,oEAAoE,CAAC,CAAA;QAC7F,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"getLiveLinkData.js","sourceRoot":"","sources":["../../../src/repositories/liveLinks/getLiveLinkData.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Tag } from '../../entities';
|
|
2
|
+
import { NovaDataSource } from '../../novaDataSource';
|
|
3
|
+
import { Logger } from '../../types/logger';
|
|
4
|
+
import { BulkCreateTagParams } from '../../types/tag';
|
|
5
|
+
export declare const bulkCreateTags: (novaDataSource: NovaDataSource, params: BulkCreateTagParams, logger: Logger) => Promise<Tag[]>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Tag } from '../../entities';
|
|
2
|
+
import { requiredBulkCreateTagParamsAttributes } from '../../types/tag';
|
|
3
|
+
import { anyAttributeIsNull } from '../../utils/anyAttributeIsNull';
|
|
4
|
+
import { now } from '../../utils/dateTool';
|
|
5
|
+
export const bulkCreateTags = async (novaDataSource, params, logger) => {
|
|
6
|
+
if (anyAttributeIsNull(params, requiredBulkCreateTagParamsAttributes) ||
|
|
7
|
+
params.tags.length === 0 ||
|
|
8
|
+
!params.tags.every(tag => tag.name)) {
|
|
9
|
+
logger.warn({ params }, 'TagsRepository::bulkCreateTag missing required parameters');
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
return novaDataSource.safeQuery(async (safeDataSource) => {
|
|
13
|
+
const tagsRepository = safeDataSource.getRepository(Tag);
|
|
14
|
+
const newTags = params.tags.map(tag => ({
|
|
15
|
+
...tag,
|
|
16
|
+
clientId: params.clientId,
|
|
17
|
+
createdBy: params.createdBy,
|
|
18
|
+
createdAt: now(),
|
|
19
|
+
}));
|
|
20
|
+
const createdTags = await tagsRepository.save(newTags);
|
|
21
|
+
return createdTags ?? null;
|
|
22
|
+
}, 'TagRepository::bulkCreateTag error');
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=bulkCreateTags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bulkCreateTags.js","sourceRoot":"","sources":["../../../src/repositories/tags/bulkCreateTags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAGpC,OAAO,EAAuB,qCAAqC,EAAE,MAAM,iBAAiB,CAAA;AAC5F,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAE1C,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,cAA8B,EAC9B,MAA2B,EAC3B,MAAc,EACE,EAAE;IAClB,IACE,kBAAkB,CAAsB,MAAM,EAAE,qCAAqC,CAAC;QACtF,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QACxB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EACnC;QACA,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,2DAA2D,CAAC,CAAA;QACpF,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,cAA8B,EAAkB,EAAE;QACvF,MAAM,cAAc,GAAG,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QAExD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtC,GAAG,GAAG;YACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,GAAG,EAAE;SACjB,CAAC,CAAC,CAAA;QAEH,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAEtD,OAAO,WAAW,IAAI,IAAI,CAAA;IAC5B,CAAC,EAAE,oCAAoC,CAAC,CAAA;AAC1C,CAAC,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Tag } from '../../entities';
|
|
2
|
+
import { NovaDataSource } from '../../novaDataSource';
|
|
3
|
+
import { Logger } from '../../types/logger';
|
|
4
|
+
import { CreateTagParams } from '../../types/tag';
|
|
5
|
+
export declare const createTag: (novaDataSource: NovaDataSource, params: CreateTagParams, logger: Logger) => Promise<Tag>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Tag } from '../../entities';
|
|
2
|
+
import { requiredCreateTagParamsAttributes } from '../../types/tag';
|
|
3
|
+
import { anyAttributeIsNull } from '../../utils/anyAttributeIsNull';
|
|
4
|
+
import { now } from '../../utils/dateTool';
|
|
5
|
+
export const createTag = async (novaDataSource, params, logger) => {
|
|
6
|
+
if (anyAttributeIsNull(params, requiredCreateTagParamsAttributes)) {
|
|
7
|
+
logger.warn({ params }, 'TagsRepository::createTag missing required parameters');
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
return novaDataSource.safeQuery(async (safeDataSource) => {
|
|
11
|
+
const tagsRepository = safeDataSource.getRepository(Tag);
|
|
12
|
+
const newTag = {
|
|
13
|
+
...params,
|
|
14
|
+
createdAt: now(),
|
|
15
|
+
};
|
|
16
|
+
const createdTag = await tagsRepository.save(newTag);
|
|
17
|
+
return createdTag ?? null;
|
|
18
|
+
}, 'TagRepository::createTag error');
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=createTag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTag.js","sourceRoot":"","sources":["../../../src/repositories/tags/createTag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAGpC,OAAO,EAAmB,iCAAiC,EAAE,MAAM,iBAAiB,CAAA;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAE1C,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,cAA8B,EAC9B,MAAuB,EACvB,MAAc,EACA,EAAE;IAChB,IAAI,kBAAkB,CAAkB,MAAM,EAAE,iCAAiC,CAAC,EAAE;QAClF,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,uDAAuD,CAAC,CAAA;QAChF,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,cAA8B,EAAgB,EAAE;QACrF,MAAM,cAAc,GAAG,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QAExD,MAAM,MAAM,GAAG;YACb,GAAG,MAAM;YACT,SAAS,EAAE,GAAG,EAAE;SACjB,CAAA;QAED,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEpD,OAAO,UAAU,IAAI,IAAI,CAAA;IAC3B,CAAC,EAAE,gCAAgC,CAAC,CAAA;AACtC,CAAC,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { NovaDataSource } from '../../novaDataSource';
|
|
2
|
+
import { Logger } from '../../types/logger';
|
|
3
|
+
import { DeleteTagParams } from '../../types/tag';
|
|
4
|
+
export declare const deleteTag: (novaDataSource: NovaDataSource, params: DeleteTagParams, logger: Logger) => Promise<boolean>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Tag } from '../../entities';
|
|
2
|
+
export const deleteTag = async (novaDataSource, params, logger) => {
|
|
3
|
+
if (!params?.tagId) {
|
|
4
|
+
logger.warn({ params }, 'TagsRepository::deleteTag missing required parameters');
|
|
5
|
+
return false;
|
|
6
|
+
}
|
|
7
|
+
return novaDataSource.safeQuery(async (dataSource) => {
|
|
8
|
+
const tagsRepository = dataSource.getRepository(Tag);
|
|
9
|
+
const result = await tagsRepository
|
|
10
|
+
.createQueryBuilder()
|
|
11
|
+
.delete()
|
|
12
|
+
.where('id = :id', { id: params.tagId })
|
|
13
|
+
.execute();
|
|
14
|
+
return result.affected > 0;
|
|
15
|
+
}, 'TagsRepository::deleteTag');
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=deleteTag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deleteTag.js","sourceRoot":"","sources":["../../../src/repositories/tags/deleteTag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAKpC,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,cAA8B,EAC9B,MAAuB,EACvB,MAAc,EACI,EAAE;IACpB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE;QAClB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,uDAAuD,CAAC,CAAA;QAChF,OAAO,KAAK,CAAA;KACb;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAoB,EAAE;QACrF,MAAM,cAAc,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QAEpD,MAAM,MAAM,GAAG,MAAM,cAAc;aAChC,kBAAkB,EAAE;aACpB,MAAM,EAAE;aACR,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;aACvC,OAAO,EAAE,CAAA;QAEZ,OAAO,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAA;IAC5B,CAAC,EAAE,2BAA2B,CAAC,CAAA;AACjC,CAAC,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Tag } from '../../entities';
|
|
2
|
+
import { BulkCreateTagParams, CreateTagParams, DeleteTagParams, GetTagsResult, SearchTagsParams, UpdateTagParams } from '../../types/tag';
|
|
3
|
+
import { BaseRepository } from '../baseRepository';
|
|
4
|
+
export declare class TagsRepository extends BaseRepository {
|
|
5
|
+
/**
|
|
6
|
+
* Create a tag
|
|
7
|
+
* @param {CreateTagParams} params containing information to create a tag
|
|
8
|
+
* @returns {Tag} the created tag
|
|
9
|
+
*/
|
|
10
|
+
createTag(params: CreateTagParams): Promise<Tag>;
|
|
11
|
+
/**
|
|
12
|
+
* Update a tag
|
|
13
|
+
* @param {UpdateTagParams} params containing information to update the tag
|
|
14
|
+
* @returns {boolean} true if the update was successful, false otherwise
|
|
15
|
+
*/
|
|
16
|
+
updateTag(params: UpdateTagParams): Promise<boolean>;
|
|
17
|
+
/**
|
|
18
|
+
* Delete a tag
|
|
19
|
+
* @param {UpdateTagParams} params containing information to delete the tag
|
|
20
|
+
* @returns {boolean} true if the delete was successful, false otherwise
|
|
21
|
+
*/
|
|
22
|
+
deleteTag(params: DeleteTagParams): Promise<boolean>;
|
|
23
|
+
/**
|
|
24
|
+
* Search for tags
|
|
25
|
+
* @param {SearchTagsParams} params containing information to search for tags
|
|
26
|
+
* @returns {Tag[]} the tags found
|
|
27
|
+
*/
|
|
28
|
+
searchTags(params: SearchTagsParams): Promise<GetTagsResult>;
|
|
29
|
+
/**
|
|
30
|
+
* Bulk create tags
|
|
31
|
+
* @param {BulkCreateTagParams} params containing information to create tags
|
|
32
|
+
* @returns {Tag[]} the created tags
|
|
33
|
+
*/
|
|
34
|
+
bulkCreateTags(params: BulkCreateTagParams): Promise<Tag[]>;
|
|
35
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { NovaDataSource } from '../../novaDataSource';
|
|
2
|
+
import { BaseRepository } from '../baseRepository';
|
|
3
|
+
import { bulkCreateTags } from './bulkCreateTags';
|
|
4
|
+
import { createTag } from './createTag';
|
|
5
|
+
import { deleteTag } from './deleteTag';
|
|
6
|
+
import { searchTags } from './searchTags';
|
|
7
|
+
import { updateTag } from './updateTag';
|
|
8
|
+
export class TagsRepository extends BaseRepository {
|
|
9
|
+
/**
|
|
10
|
+
* Create a tag
|
|
11
|
+
* @param {CreateTagParams} params containing information to create a tag
|
|
12
|
+
* @returns {Tag} the created tag
|
|
13
|
+
*/
|
|
14
|
+
async createTag(params) {
|
|
15
|
+
this.logger.trace(params, `TagRepository::this.createTrip started with params`);
|
|
16
|
+
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
|
|
17
|
+
const result = await createTag(novaDataSource, params, this.logger);
|
|
18
|
+
this.logger.trace(result, 'TagRepository::createTrip result');
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Update a tag
|
|
23
|
+
* @param {UpdateTagParams} params containing information to update the tag
|
|
24
|
+
* @returns {boolean} true if the update was successful, false otherwise
|
|
25
|
+
*/
|
|
26
|
+
async updateTag(params) {
|
|
27
|
+
this.logger.trace(params, `TagRepository::this.updateTag started with params`);
|
|
28
|
+
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
|
|
29
|
+
const result = await updateTag(novaDataSource, params, this.logger);
|
|
30
|
+
this.logger.trace({ result }, 'TagRepository::updateTag result');
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Delete a tag
|
|
35
|
+
* @param {UpdateTagParams} params containing information to delete the tag
|
|
36
|
+
* @returns {boolean} true if the delete was successful, false otherwise
|
|
37
|
+
*/
|
|
38
|
+
async deleteTag(params) {
|
|
39
|
+
this.logger.trace(params, `TagRepository::deleteTag started with params`);
|
|
40
|
+
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
|
|
41
|
+
const result = await deleteTag(novaDataSource, params, this.logger);
|
|
42
|
+
this.logger.trace({ result }, 'TagRepository::deleteTag result');
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Search for tags
|
|
47
|
+
* @param {SearchTagsParams} params containing information to search for tags
|
|
48
|
+
* @returns {Tag[]} the tags found
|
|
49
|
+
*/
|
|
50
|
+
async searchTags(params) {
|
|
51
|
+
this.logger.trace(params, `TagRepository::searchTags started with params`);
|
|
52
|
+
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
|
|
53
|
+
const result = await searchTags(novaDataSource, params, this.logger);
|
|
54
|
+
this.logger.trace(result, 'TagRepository::searchTags result');
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Bulk create tags
|
|
59
|
+
* @param {BulkCreateTagParams} params containing information to create tags
|
|
60
|
+
* @returns {Tag[]} the created tags
|
|
61
|
+
*/
|
|
62
|
+
async bulkCreateTags(params) {
|
|
63
|
+
this.logger.trace(params, `TagRepository::bulkCreateTags started with params`);
|
|
64
|
+
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
|
|
65
|
+
const result = await bulkCreateTags(novaDataSource, params, this.logger);
|
|
66
|
+
this.logger.trace(result, 'TagRepository::bulkCreateTags result');
|
|
67
|
+
return result;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/tags/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { NovaDataSource } from '../../novaDataSource';
|
|
2
|
+
import { Logger } from '../../types/logger';
|
|
3
|
+
import { GetTagsResult, SearchTagsParams } from '../../types/tag';
|
|
4
|
+
export declare const searchTags: (novaDataSource: NovaDataSource, params: SearchTagsParams, logger: Logger) => Promise<GetTagsResult>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Tag } from '../../entities';
|
|
2
|
+
import { requiredSearchTagsParamsAttributes, } from '../../types/tag';
|
|
3
|
+
import { anyAttributeIsNull } from '../../utils/anyAttributeIsNull';
|
|
4
|
+
export const searchTags = async (novaDataSource, params, logger) => {
|
|
5
|
+
if (anyAttributeIsNull(params, requiredSearchTagsParamsAttributes)) {
|
|
6
|
+
logger.warn({ params }, 'TagsRepository::searchTags missing required parameters');
|
|
7
|
+
return { tags: [], totalCount: 0 };
|
|
8
|
+
}
|
|
9
|
+
return novaDataSource.safeQuery(async (dataSource) => {
|
|
10
|
+
const tagsRepository = dataSource.getRepository(Tag);
|
|
11
|
+
const { filters, pagingOptions } = params;
|
|
12
|
+
let queryBuilder = tagsRepository
|
|
13
|
+
.createQueryBuilder()
|
|
14
|
+
.where('clientId = :clientId', { clientId: filters.clientId });
|
|
15
|
+
if (filters.names) {
|
|
16
|
+
queryBuilder = queryBuilder.andWhere('name IN (:...names)', { names: filters.names });
|
|
17
|
+
}
|
|
18
|
+
if (filters.tagIds) {
|
|
19
|
+
queryBuilder = queryBuilder.andWhere('id IN (:...tagIds)', { tagIds: filters.tagIds });
|
|
20
|
+
}
|
|
21
|
+
// counting before applying pagination
|
|
22
|
+
const tagCount = await queryBuilder.getCount();
|
|
23
|
+
const limit = pagingOptions?.pageSize ?? 50;
|
|
24
|
+
queryBuilder.limit(limit);
|
|
25
|
+
const globalIndex = (pagingOptions?.pageIndex ?? 0) * limit;
|
|
26
|
+
queryBuilder.offset(globalIndex);
|
|
27
|
+
const tags = await queryBuilder.getMany();
|
|
28
|
+
return {
|
|
29
|
+
tags,
|
|
30
|
+
totalCount: tagCount,
|
|
31
|
+
};
|
|
32
|
+
}, 'TagsRepository::searchTags');
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=searchTags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"searchTags.js","sourceRoot":"","sources":["../../../src/repositories/tags/searchTags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAGpC,OAAO,EAEL,kCAAkC,GAEnC,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAEnE,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,cAA8B,EAC9B,MAAwB,EACxB,MAAc,EACU,EAAE;IAC1B,IAAI,kBAAkB,CAAmB,MAAM,EAAE,kCAAkC,CAAC,EAAE;QACpF,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,wDAAwD,CAAC,CAAA;QACjF,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAA;KACnC;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAA0B,EAAE;QAC3F,MAAM,cAAc,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QAEpD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,CAAA;QACzC,IAAI,YAAY,GAAG,cAAc;aAC9B,kBAAkB,EAAE;aACpB,KAAK,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEhE,IAAI,OAAO,CAAC,KAAK,EAAE;YACjB,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;SACtF;QAED,IAAI,OAAO,CAAC,MAAM,EAAE;YAClB,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;SACvF;QAED,sCAAsC;QACtC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAA;QAE9C,MAAM,KAAK,GAAG,aAAa,EAAE,QAAQ,IAAI,EAAE,CAAA;QAC3C,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAEzB,MAAM,WAAW,GAAG,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,CAAA;QAC3D,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAEhC,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAEzC,OAAO;YACL,IAAI;YACJ,UAAU,EAAE,QAAQ;SACJ,CAAA;IACpB,CAAC,EAAE,4BAA4B,CAAC,CAAA;AAClC,CAAC,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { NovaDataSource } from '../../novaDataSource';
|
|
2
|
+
import { Logger } from '../../types/logger';
|
|
3
|
+
import { UpdateTagParams } from '../../types/tag';
|
|
4
|
+
export declare const updateTag: (novaDataSource: NovaDataSource, params: UpdateTagParams, logger: Logger) => Promise<boolean>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Tag } from '../../entities';
|
|
2
|
+
import { requiredUpdateTagParamsAttributes } from '../../types/tag';
|
|
3
|
+
import { anyAttributeHasValue } from '../../utils/anyAttributeHasValue';
|
|
4
|
+
import { anyAttributeIsNull } from '../../utils/anyAttributeIsNull';
|
|
5
|
+
import { now } from '../../utils/dateTool';
|
|
6
|
+
export const updateTag = async (novaDataSource, params, logger) => {
|
|
7
|
+
if (anyAttributeIsNull(params, requiredUpdateTagParamsAttributes) ||
|
|
8
|
+
!anyAttributeHasValue({ ...params?.values, modifiedBy: undefined })) {
|
|
9
|
+
logger.warn({ params }, 'TagRepository::updateTag missing required parameters');
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
return novaDataSource.safeQuery(async (safeDataSource) => {
|
|
13
|
+
const tagsRepository = safeDataSource.getRepository(Tag);
|
|
14
|
+
const { filters, values } = params;
|
|
15
|
+
const updateResult = await tagsRepository
|
|
16
|
+
.createQueryBuilder()
|
|
17
|
+
.update(Tag)
|
|
18
|
+
.set({
|
|
19
|
+
modifiedBy: values.modifiedBy,
|
|
20
|
+
modifiedAt: now(),
|
|
21
|
+
color: values.color,
|
|
22
|
+
description: values.description,
|
|
23
|
+
name: values.name,
|
|
24
|
+
})
|
|
25
|
+
.where('id = :id', { id: filters.tagId })
|
|
26
|
+
.execute();
|
|
27
|
+
return updateResult.affected > 0;
|
|
28
|
+
}, 'TagRepository::updateTag error');
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=updateTag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateTag.js","sourceRoot":"","sources":["../../../src/repositories/tags/updateTag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAGpC,OAAO,EAAE,iCAAiC,EAAmB,MAAM,iBAAiB,CAAA;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAE1C,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,cAA8B,EAC9B,MAAuB,EACvB,MAAc,EACI,EAAE;IACpB,IACE,kBAAkB,CAAC,MAAM,EAAE,iCAAiC,CAAC;QAC7D,CAAC,oBAAoB,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EACnE;QACA,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,sDAAsD,CAAC,CAAA;QAC/E,OAAO,KAAK,CAAA;KACb;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,cAA8B,EAAoB,EAAE;QACzF,MAAM,cAAc,GAAG,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QACxD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;QAClC,MAAM,YAAY,GAAG,MAAM,cAAc;aACtC,kBAAkB,EAAE;aACpB,MAAM,CAAC,GAAG,CAAC;aACX,GAAG,CAAC;YACH,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,GAAG,EAAE;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC;aACD,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;aACxC,OAAO,EAAE,CAAA;QAEZ,OAAO,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAA;IAClC,CAAC,EAAE,gCAAgC,CAAC,CAAA;AACtC,CAAC,CAAA"}
|
|
@@ -58,25 +58,27 @@ export interface GetLiveLinkDataCountParams {
|
|
|
58
58
|
minSendTime?: Date;
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
|
-
export interface
|
|
61
|
+
export interface TrackerWithStatus {
|
|
62
62
|
imei: string;
|
|
63
63
|
name: string;
|
|
64
64
|
description?: string;
|
|
65
65
|
deviceTypeId: number;
|
|
66
66
|
color?: string;
|
|
67
67
|
icon?: string;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
68
|
+
status: {
|
|
69
|
+
latitude?: number;
|
|
70
|
+
longitude?: number;
|
|
71
|
+
address?: string;
|
|
72
|
+
sendTime?: Date;
|
|
73
|
+
odoMileage?: number;
|
|
74
|
+
batteryPercentage?: number;
|
|
75
|
+
speed?: number;
|
|
76
|
+
hoursOfOperation?: number;
|
|
77
|
+
batteryVoltage?: number;
|
|
78
|
+
externalPowerVoltage?: number;
|
|
79
|
+
reportType?: number;
|
|
80
|
+
};
|
|
79
81
|
}
|
|
80
82
|
export interface LiveLinkData {
|
|
81
|
-
|
|
83
|
+
trackersWithStatus: TrackerWithStatus[];
|
|
82
84
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Tag } from '../entities';
|
|
2
|
+
import { OptionalReportPagination } from './common';
|
|
3
|
+
export declare const requiredCreateTagParamsAttributes: string[];
|
|
4
|
+
export interface CreateTagParams {
|
|
5
|
+
createdBy: string;
|
|
6
|
+
clientId: number;
|
|
7
|
+
name: string;
|
|
8
|
+
color?: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const requiredBulkCreateTagParamsAttributes: string[];
|
|
12
|
+
export interface BulkCreateTagParams {
|
|
13
|
+
createdBy: string;
|
|
14
|
+
clientId: number;
|
|
15
|
+
tags: {
|
|
16
|
+
name: string;
|
|
17
|
+
color?: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
}[];
|
|
20
|
+
}
|
|
21
|
+
export declare const requiredUpdateTagParamsAttributes: string[];
|
|
22
|
+
export interface UpdateTagParams {
|
|
23
|
+
filters: {
|
|
24
|
+
tagId: number;
|
|
25
|
+
};
|
|
26
|
+
values: {
|
|
27
|
+
modifiedBy: string;
|
|
28
|
+
name?: string | null;
|
|
29
|
+
description?: string | null;
|
|
30
|
+
color?: string | null;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export interface DeleteTagParams {
|
|
34
|
+
tagId: number;
|
|
35
|
+
}
|
|
36
|
+
export declare const requiredSearchTagsParamsAttributes: string[];
|
|
37
|
+
export interface SearchTagsParams extends OptionalReportPagination {
|
|
38
|
+
filters: {
|
|
39
|
+
clientId: number;
|
|
40
|
+
names?: string[];
|
|
41
|
+
tagIds?: number[];
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export interface GetTagsResult {
|
|
45
|
+
tags: Tag[];
|
|
46
|
+
totalCount: number;
|
|
47
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const requiredCreateTagParamsAttributes = ['createdBy', 'clientId', 'name'];
|
|
2
|
+
export const requiredBulkCreateTagParamsAttributes = ['createdBy', 'clientId', 'tags'];
|
|
3
|
+
export const requiredUpdateTagParamsAttributes = ['filters.tagId', 'values.modifiedBy'];
|
|
4
|
+
export const requiredSearchTagsParamsAttributes = ['filters.clientId'];
|
|
5
|
+
//# sourceMappingURL=tag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/types/tag.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;AAUlF,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;AAYtF,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAA;AAkBvF,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,kBAAkB,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const now: () => Date;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dateTool.js","sourceRoot":"","sources":["../../src/utils/dateTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAA;AAEvC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAEjB,MAAM,CAAC,MAAM,GAAG,GAAG,GAAS,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spytecgps/nova-orm",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.39",
|
|
4
4
|
"description": "ORM with PlanetScale",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"yarn": "^1.22.19"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
+
"dayjs": "^1.11.11",
|
|
33
34
|
"mysql2": "^3.2.3",
|
|
34
35
|
"reflect-metadata": "^0.1.13",
|
|
35
36
|
"typeorm": "0.3.19"
|