@spytecgps/nova-orm 0.0.217 → 0.0.219

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.
@@ -0,0 +1,4 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { Logger } from '../../types/logger';
3
+ import { GetTaskSchedulesCountParams } from '../../types/tasks';
4
+ export declare const getTaskSchedulesCount: (novaDataSource: NovaDataSource, params: GetTaskSchedulesCountParams, logger: Logger) => Promise<number>;
@@ -0,0 +1,4 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { Logger } from '../../types/logger';
3
+ import { GetTasksCountParams } from '../../types/tasks';
4
+ export declare const getTasksCount: (novaDataSource: NovaDataSource, params: GetTasksCountParams, logger: Logger) => Promise<number>;
@@ -1,5 +1,5 @@
1
1
  import { DeviceTask, Task, TaskSchedule } from '../../entities';
2
- import { AddTaskScheduleDevicesParams, CompleteTaskParams, CreateTaskParams, CreateTaskScheduleParams, DeleteTaskParams, DeleteTaskScheduleDevicesParams, DeleteTaskScheduleParams, GetDeviceTasksParams, GetTaskScheduleParams, GetTaskSchedulesParams, GetTasksParams, SetTaskAsPastDueParams, SetTaskScheduleDevicesParams, UpdateTaskParams, UpdateTaskScheduleParams } from '../../types/tasks';
2
+ import { AddTaskScheduleDevicesParams, CompleteTaskParams, CreateTaskParams, CreateTaskScheduleParams, DeleteTaskParams, DeleteTaskScheduleDevicesParams, DeleteTaskScheduleParams, GetDeviceTasksParams, GetTaskScheduleParams, GetTaskSchedulesCountParams, GetTaskSchedulesParams, GetTasksCountParams, GetTasksParams, SetTaskAsPastDueParams, SetTaskScheduleDevicesParams, UpdateTaskParams, UpdateTaskScheduleParams } from '../../types/tasks';
3
3
  import { BaseRepository } from '../baseRepository';
4
4
  export declare class TasksRepository extends BaseRepository {
5
5
  /**
@@ -110,6 +110,47 @@ export declare class TasksRepository extends BaseRepository {
110
110
  * @returns Promise<TaskSchedule[]> the task schedules corresponding to the filters
111
111
  */
112
112
  getTaskSchedules(params: GetTaskSchedulesParams): Promise<TaskSchedule[]>;
113
+ /**
114
+ * Get the count of task schedules with filters
115
+ * @param params params containing information to get task schedules count
116
+ * At least one of the following filters is required:
117
+ * params.filters.imei: the IMEI, if provided, will return task schedules associated to the device
118
+ * params.filters.clientId: the client ID
119
+ * params.filters.title: the title for partial match search
120
+ * params.filters.description: the description for partial match search
121
+ * params.filters.repeats: filter for tasks that repeat or not
122
+ * params.filters.minDueDate: the minimum due date
123
+ * params.filters.maxDueDate: the maximum due date
124
+ * params.filters.minDueOdometer: the minimum due odometer
125
+ * params.filters.maxDueOdometer: the maximum due odometer
126
+ * params.filters.minDueActiveHours: the minimum due active hours
127
+ * params.filters.maxDueActiveHours: the maximum due active hours
128
+ * params.filters.minIntervalDays: the minimum interval days
129
+ * params.filters.maxIntervalDays: the maximum interval days
130
+ * params.filters.minIntervalStartDate: the minimum interval start date
131
+ * params.filters.maxIntervalStartDate: the maximum interval start date
132
+ * params.filters.minIntervalOdometer: the minimum interval odometer
133
+ * params.filters.maxIntervalOdometer: the maximum interval odometer
134
+ * params.filters.minIntervalActiveHours: the minimum interval active hours
135
+ * params.filters.maxIntervalActiveHours: the maximum interval active hours
136
+ * params.filters.minIntervalStartingOdometer: the minimum interval starting odometer
137
+ * params.filters.maxIntervalStartingOdometer: the maximum interval starting odometer
138
+ * params.filters.minIntervalStartingActiveHours: the minimum interval starting active hours
139
+ * params.filters.maxIntervalStartingActiveHours: the maximum interval starting active hours
140
+ * params.filters.notes: the notes for partial match search
141
+ * params.filters.createdBy: the created by, exact match search
142
+ * params.filters.minCreatedAt: the minimum created at
143
+ * params.filters.maxCreatedAt: the maximum created at
144
+ * params.filters.modifiedBy: the modified by, exact match search
145
+ * params.filters.minModifiedAt: the minimum modified at
146
+ * params.filters.maxModifiedAt: the maximum modified at
147
+ * params.filters.deletedBy: the deleted by, exact match search
148
+ * params.filters.minDeletedAt: the minimum deleted at
149
+ * params.filters.maxDeletedAt: the maximum deleted at
150
+ * params.filters.status: the status (active or deleted)
151
+ * @returns Promise<number> the count of task schedules corresponding to the filters
152
+ */
153
+ getTaskSchedulesCount(params: GetTaskSchedulesCountParams): Promise<number>;
113
154
  /**
114
155
  * Get device tasks
115
156
  * @param params params containing information to get device tasks
@@ -203,6 +244,37 @@ export declare class TasksRepository extends BaseRepository {
203
244
  * @returns Promise<Task[]> the tasks corresponding to the filters
204
245
  */
205
246
  getTasks(params: GetTasksParams): Promise<Task[]>;
247
+ /**
248
+ * Get the count of tasks with filters
249
+ * @param params params containing information to get tasks count
250
+ * At least one of the following filters is required:
251
+ * params.filters.taskId: the task ID
252
+ * params.filters.taskScheduleId: the task schedule ID
253
+ * params.filters.imei: the IMEI
254
+ * params.filters.clientId: the client ID
255
+ * params.filters.dueDateFilter: the due date range filter
256
+ * params.filters.dueOdometerFilter: the due odometer range filter
257
+ * params.filters.dueActiveHoursFilter: the due active hours range filter
258
+ * params.filters.startDateFilter: the start date range filter
259
+ * params.filters.startingOdometerFilter: the starting odometer range filter
260
+ * params.filters.startingActiveHoursFilter: the starting active hours range filter
261
+ * params.filters.status: the status (pending, past_due, completed, deleted)
262
+ * params.filters.pastDueAtFilter: the past due at range filter
263
+ * params.filters.createdAtFilter: the created at range filter
264
+ * params.filters.completedAtFilter: the completed at range filter
265
+ * params.filters.completionNotes: the completion notes for partial match search
266
+ * params.filters.completionOdometerFilter: the completion odometer range filter
267
+ * params.filters.completionActiveHoursFilter: the completion active hours range filter
268
+ * params.filters.completedBy: the completed by, partial match search
269
+ * params.filters.modifiedBy: the modified by, partial match search
270
+ * params.filters.modifiedAtFilter: the modified at range filter
271
+ * params.filters.queuedAtFilter: the queued at range filter
272
+ * params.filters.predictedDueDateFilter: the predicted due date range filter
273
+ * params.filters.deletedAtFilter: the deleted at range filter
274
+ * params.filters.deletedBy: the deleted by, partial match search
275
+ * @returns Promise<number> the count of tasks corresponding to the filters
276
+ */
277
+ getTasksCount(params: GetTasksCountParams): Promise<number>;
206
278
  /**
207
279
  * Update an existing task
208
280
  * @param params params containing information to update task
@@ -9,7 +9,6 @@ export interface GetDeviceFirmwaresParams {
9
9
  }
10
10
  export interface GetFirmwareUpgradeTasksParams {
11
11
  filters: {
12
- deviceId?: number;
13
12
  firmwareId?: number;
14
13
  firmwareIds?: number[];
15
14
  taskId?: string;
@@ -40,7 +39,6 @@ export interface GetFirmwareAutoUpgradeBlacklistParams {
40
39
  }
41
40
  export interface GetFirmwareUpgradeTasksCountParams {
42
41
  filters: {
43
- deviceId?: number;
44
42
  firmwareId?: number;
45
43
  taskId?: string;
46
44
  statuses?: FirmwareUpgradeTaskStatus[];
@@ -93,6 +93,9 @@ export interface GetTaskSchedulesParams {
93
93
  sortOrder: 'ASC' | 'DESC';
94
94
  };
95
95
  }
96
+ export interface GetTaskSchedulesCountParams {
97
+ filters: GetTaskSchedulesFilters;
98
+ }
96
99
  export interface GetDeviceTasksParams {
97
100
  filters: {
98
101
  taskScheduleId?: number;
@@ -162,6 +165,9 @@ export interface GetTasksParams {
162
165
  sortOrder: 'ASC' | 'DESC';
163
166
  };
164
167
  }
168
+ export interface GetTasksCountParams {
169
+ filters: GetTasksFilters;
170
+ }
165
171
  export interface UpdateTaskParams {
166
172
  filters: {
167
173
  id: number;
@@ -1,7 +1,11 @@
1
1
  import { SelectQueryBuilder } from 'typeorm';
2
+ import { Task, TaskSchedule } from '../entities';
3
+ import { GetTaskSchedulesFilters, GetTasksFilters } from '../types/tasks';
2
4
  export interface FilterMap<T1, T2> {
3
5
  targetFieldName: keyof T1;
4
6
  filterName: keyof T2;
5
7
  comparisonOperator?: 'RANGE' | '=' | 'LIKE' | 'IN';
6
8
  }
7
9
  export declare const addFilters: <T>(queryBuilder: SelectQueryBuilder<T>, filters: any, filterMapping: FilterMap<T, any>[], entityName: string) => SelectQueryBuilder<T>;
10
+ export declare const getTaskSchedulesFilterMapping: FilterMap<TaskSchedule, GetTaskSchedulesFilters>[];
11
+ export declare const tasksFilterMapping: FilterMap<Task, GetTasksFilters>[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spytecgps/nova-orm",
3
- "version": "0.0.217",
3
+ "version": "0.0.219",
4
4
  "description": "ORM with PlanetScale",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",