@vulog/aima-event 1.1.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/.eslintrc.js +112 -0
- package/README.md +21 -0
- package/dist/index.d.mts +41 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.js +274 -0
- package/dist/index.mjs +246 -0
- package/package.json +41 -0
- package/src/getEvents.ts +286 -0
- package/src/index.ts +3 -0
- package/src/types.ts +19 -0
- package/tsconfig.json +16 -0
- package/tsup.config.ts +8 -0
- package/vitest.config.ts +8 -0
package/.eslintrc.js
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
parser: '@typescript-eslint/parser',
|
|
3
|
+
parserOptions: {
|
|
4
|
+
// Indicates the location of the TypeScript configuration file
|
|
5
|
+
project: 'tsconfig.json',
|
|
6
|
+
// Sets the root directory for the TypeScript configuration
|
|
7
|
+
tsconfigRootDir: __dirname,
|
|
8
|
+
// Specifies the version of ECMAScript syntax to be used
|
|
9
|
+
ecmaVersion: 'latest',
|
|
10
|
+
// Indicates the type of source code (script or module)
|
|
11
|
+
sourceType: 'module',
|
|
12
|
+
},
|
|
13
|
+
plugins: ['@typescript-eslint', 'prettier', 'import'],
|
|
14
|
+
extends: [
|
|
15
|
+
'airbnb-base',
|
|
16
|
+
'airbnb-typescript/base',
|
|
17
|
+
'plugin:@typescript-eslint/recommended',
|
|
18
|
+
'prettier',
|
|
19
|
+
'plugin:prettier/recommended',
|
|
20
|
+
],
|
|
21
|
+
root: true,
|
|
22
|
+
env: {
|
|
23
|
+
es6: true,
|
|
24
|
+
node: true,
|
|
25
|
+
},
|
|
26
|
+
ignorePatterns: [
|
|
27
|
+
'/dist/**/*', // Ignore built files.
|
|
28
|
+
'.eslintrc.js',
|
|
29
|
+
'**/*.test.ts',
|
|
30
|
+
],
|
|
31
|
+
rules: {
|
|
32
|
+
// Configures the Prettier integration with ESLint
|
|
33
|
+
'prettier/prettier': ['error', { endOfLine: 'auto' }],
|
|
34
|
+
// Disables the rule requiring an 'I' prefix for interfaces
|
|
35
|
+
'@typescript-eslint/interface-name-prefix': 'off',
|
|
36
|
+
// Configures the naming conventions for various code constructs
|
|
37
|
+
'@typescript-eslint/naming-convention': [
|
|
38
|
+
// ... various naming convention configurations ...
|
|
39
|
+
'error',
|
|
40
|
+
// Allows any naming format for destructured variables
|
|
41
|
+
{
|
|
42
|
+
selector: 'variable',
|
|
43
|
+
modifiers: ['destructured'],
|
|
44
|
+
format: null,
|
|
45
|
+
},
|
|
46
|
+
// Requires strict camelCase for function names
|
|
47
|
+
{
|
|
48
|
+
selector: 'function',
|
|
49
|
+
format: ['strictCamelCase'],
|
|
50
|
+
},
|
|
51
|
+
// Requires boolean variables to have one of the specified prefixes
|
|
52
|
+
{
|
|
53
|
+
selector: 'variable',
|
|
54
|
+
format: null,
|
|
55
|
+
types: ['boolean'],
|
|
56
|
+
prefix: ['is', 'should', 'has', 'can', 'did', 'will'],
|
|
57
|
+
},
|
|
58
|
+
// Requires enum names to have a strict PascalCase format
|
|
59
|
+
{
|
|
60
|
+
selector: 'enum',
|
|
61
|
+
format: ['StrictPascalCase'],
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
'import/extensions': 'off',
|
|
65
|
+
// Disables the rule requiring explicit return types for functions
|
|
66
|
+
'@typescript-eslint/explicit-function-return-type': 'off',
|
|
67
|
+
// Disables the rule requiring explicit boundary types for modules
|
|
68
|
+
'@typescript-eslint/explicit-module-boundary-types': 'off',
|
|
69
|
+
// Disables the rule prohibiting the use of 'any' type
|
|
70
|
+
'@typescript-eslint/no-explicit-any': 'off',
|
|
71
|
+
// Disables the rule detecting unused variables
|
|
72
|
+
'no-unused-vars': 0,
|
|
73
|
+
// Disables the rule disallowing named exports used as a default export
|
|
74
|
+
'import/no-named-as-default': 0,
|
|
75
|
+
// Configures the order and formatting of import statements
|
|
76
|
+
'import/order': [
|
|
77
|
+
// ... import order configuration ...
|
|
78
|
+
'error',
|
|
79
|
+
{
|
|
80
|
+
// Configure the alphabetization settings
|
|
81
|
+
alphabetize: {
|
|
82
|
+
// Enforce ascending alphabetical order
|
|
83
|
+
order: 'asc',
|
|
84
|
+
// Do not ignore the case while sorting
|
|
85
|
+
caseInsensitive: false,
|
|
86
|
+
},
|
|
87
|
+
// Enforce newlines between different groups and inside groups of imports
|
|
88
|
+
'newlines-between': 'always-and-inside-groups',
|
|
89
|
+
// Warn when there is an import statement that is not part of any group
|
|
90
|
+
warnOnUnassignedImports: true,
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
// Configures the rule detecting extraneous dependencies
|
|
94
|
+
'import/no-extraneous-dependencies': [
|
|
95
|
+
// ... extraneous dependencies configuration ...
|
|
96
|
+
'error',
|
|
97
|
+
{
|
|
98
|
+
// Specify the file patterns where devDependencies imports are allowed
|
|
99
|
+
devDependencies: [
|
|
100
|
+
// Allow devDependencies imports in test and spec files
|
|
101
|
+
'**/*.test.{ts,js}',
|
|
102
|
+
'**/*.spec.{ts,js}',
|
|
103
|
+
// Allow devDependencies imports in the 'test' folder
|
|
104
|
+
'./test/**.{ts,js}',
|
|
105
|
+
// Allow devDependencies imports in the 'scripts' folder
|
|
106
|
+
'./scripts/**/*.{ts,js}',
|
|
107
|
+
],
|
|
108
|
+
},
|
|
109
|
+
],
|
|
110
|
+
'import/prefer-default-export': 'off',
|
|
111
|
+
},
|
|
112
|
+
};
|
package/README.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# @vulog/aima-booking
|
|
2
|
+
|
|
3
|
+
```bash
|
|
4
|
+
npm i @vulog/aima-client @vulog/aima-core @vulog/aima-event
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
```javascript
|
|
8
|
+
import { getClient } from '@vulog/aima-client';
|
|
9
|
+
import { geteventbyType } from '@vulog/aima-event';
|
|
10
|
+
|
|
11
|
+
const client = getClient({
|
|
12
|
+
apiKey: '...',
|
|
13
|
+
baseUrl: '...',
|
|
14
|
+
clientId: '...',
|
|
15
|
+
clientSecret: '...',
|
|
16
|
+
fleetId: '...',
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
const response = await geteventbyType(client, 'USER_BOOKING_REQUEST');
|
|
20
|
+
|
|
21
|
+
```
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Client } from '@vulog/aima-client';
|
|
2
|
+
import { PaginableOptions, PaginableResponse } from '@vulog/aima-core';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
|
|
5
|
+
type ExtraInfo = {
|
|
6
|
+
bookingId: string;
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
};
|
|
9
|
+
type Event = {
|
|
10
|
+
fleetId: string;
|
|
11
|
+
userId: string;
|
|
12
|
+
origin: string;
|
|
13
|
+
type: string;
|
|
14
|
+
date: string;
|
|
15
|
+
failed: boolean;
|
|
16
|
+
originId?: string;
|
|
17
|
+
insertionDate?: string;
|
|
18
|
+
deletionDate?: string;
|
|
19
|
+
doNotTrack: boolean;
|
|
20
|
+
extraInfo: ExtraInfo[];
|
|
21
|
+
[key: string]: any;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
declare const EventTypeList: z.ZodEnum<["USER_ACCOUNT_UPDATE", "USER_SUSPENDED", "USER_REJECTED", "USER_CREATED", "USER_APPROVED", "USER_INCOMPLETE", "USER_ARCHIVED", "USER_INACTIVE", "USER_RESET_PASSWORD", "USER_ROLE_ADD", "USER_ROLE_DEL", "USER_BOOKING_REQUEST", "USER_UPDATE_BOOKING_REQUEST", "USER_DELETE_BOOKING_REQUEST", "USER_CANCEL_BOOKING_REQUEST", "USER_PROMOCODE_REDEEM", "USER_SYSTEM_CREDIT_ADD", "USER_SYSTEM_CREDIT_CONSUMED", "USER_SYSTEM_CREDIT_REMOVED", "USER_PRODUCT_CHARGED", "USER_TRIP_INVOICE_CREATED", "USER_TRIP_INVOICE_UPDATED", "USER_PRODUCT_INVOICE_CREATED", "USER_PRODUCT_EXPENSE_CREATED", "USER_PRODUCT_INVOICE_UPDATED", "VEHICLE_ADDED_TO_STATION", "VEHICLE_REMOVED_FROM_STATION", "VEHICLE_ALLOCATED", "VEHICLE_ARCHIVED", "VEHICLE_UPDATED", "VEHICLE_REMOVE_VUBOX", "VEHICLE_ASSIGN_VUBOX", "VEHICLE_OUT_OF_SERVICE", "VEHICLE_SCHEDULED_OUT_OF_SERVICE", "VEHICLE_SCHEDULED_OUT_OF_SERVICE_CANCELED", "VEHICLE_UNLOCK", "VEHICLE_LOCK", "VEHICLE_HELMET_LOCK", "VEHICLE_HELMET_UNLOCK", "VEHICLE_SPARE_LOCK", "VEHICLE_SPARE_UNLOCK", "VEHICLE_PILE_LOCK", "VEHICLE_PILE_UNLOCK", "VEHICLE_SPEED_LIMIT_CHANGED", "VEHICLE_WAKE_UP", "VEHICLE_WAKE_UP_ACCEL", "VEHICLE_WAKE_UP_BLE", "VEHICLE_CONNECTIVITY_ONLINE", "VEHICLE_CONNECTIVITY_OFFLINE", "VEHICLE_CONNECTIVITY_INTERRUPTED", "VEHICLE_OUT_OF_COM", "VEHICLE_BOOKING_STATUS_CHANGED", "VEHICLE_GET_STATUS", "VEHICLE_SCHEDULED_REBOOT", "VEHICLE_WARNING", "VEHICLE_CRUISING_RANGE_LOW", "VEHICLE_CRUISING_RANGE_CRITICAL", "VEHICLE_ACCEL_ALERT", "VEHICLE_SPEED_ALERT", "VEHICLE_RECOVERY", "VEHICLE_SYNC", "VEHICLE_STANDBY", "VEHICLE_AUTOCLOSE_ON", "VEHICLE_AUTOCLOSE_OFF", "VEHICLE_IGNITION_ON", "VEHICLE_IGNITION_OFF", "VEHICLE_REBOOT", "VEHICLE_MOBILIZE", "VEHICLE_IMMOBILIZE", "VEHICLE_ENABLE", "VEHICLE_CLEANLINESS_RESET", "VEHICLE_ADD_ZONE", "VEHICLE_REMOVE_ZONE", "VEHICLE_RELEASE_TRIP", "VEHICLE_START_TRIP", "VEHICLE_END_TRIP", "VEHICLE_EDIT_TRIP", "VEHICLE_MANUAL_END_TRIP", "VEHICLE_TRACKING_ON", "VEHICLE_TRACKING_OFF", "VEHICLE_TRIP_TERMINATION", "VEHICLE_PAUSE_TRIP", "VEHICLE_FORCED_PAUSE_TRIP", "VEHICLE_RESUME_TRIP", "VEHICLE_EXPERT", "VEHICLE_PING", "VEHICLE_CANCEL_TRIP", "VEHICLE_REMOVE_PRODUCT_TRIP", "VEHICLE_BOOK", "VEHICLE_ADD_PRODUCT_TRIP", "VEHICLE_UPDATE_REASON", "VEHICLE_RESET_CLEAN_DATE", "VEHICLE_RESET_REDISTRIB_DATE", "VEHICLE_RESET_MOVING_DATE", "VEHICLE_ANTITHEFT_ON", "VEHICLE_ANTITHEFT_OFF", "VEHICLE_CHARGING_ACTIVE", "VEHICLE_CHARGING_ENDED", "VEHICLE_CHARGING_PLUGGED", "VEHICLE_CHARGING_UNPLUGGED", "VEHICLE_BATTERY_OK", "VEHICLE_BATTERY_LOW", "VEHICLE_BATTERY_CRITICAL", "VEHICLE_DOORS_OPEN", "VEHICLE_DOORS_CLOSED", "VEHICLE_WINDOWS_OPEN", "VEHICLE_WINDOWS_CLOSED", "VEHICLE_ALERT", "VEHICLE_FATAL", "VEHICLE_PRICING_CHANGED", "VEHICLE_GROUP_CHANGED", "VEHICLE_UPDATE_ODOMETER", "VEHICLE_UPDATE_STATUS", "VEHICLE_UPDATE_GPS_MANUAL", "VEHICLE_UPDATE_GPS_SIM", "VEHICLE_RFID_SYNC", "VEHICLE_PREAUTH_CONFIRMED", "VEHICLE_PREAUTH_REJECTED", "VEHICLE_PREAUTH_EXPIRED", "VEHICLE_PREAUTH_CANCELLED", "USER_PRODUCT_INVOICE_CANCELLED", "USER_TRIP_INVOICE_CANCELLED", "USER_PRODUCT_INVOICE_REFUSED", "USER_TRIP_INVOICE_REFUSED", "USER_TRIP_INVOICE_PAID", "USER_PRODUCT_INVOICE_PAID", "USER_TRIP_INVOICE_REFUNDED", "USER_PRODUCT_INVOICE_REFUNDED", "USER_PLAN_SUBSCRIBED", "USER_PLAN_UNSUBSCRIBED", "USER_REFERRAL_CREATED", "USER_REFERRAL_CHECKED", "USER_REPORT_CREATED", "USER_REPORT_UPDATED", "USER_DOC_UPDATED", "USER_PLAN_RENEWED", "USER_BILLING_GROUP_ADDED", "USER_BILLING_GROUP_REMOVED", "VEHICLE_ADDED_TO_SERVICE", "VEHICLE_REMOVED_FROM_SERVICE", "USER_PLAN_RENEWAL", "USER_PLAN_CANCELED", "USER_PLAN_UPDATED", "USER_RFIDPINCODE_REQUESTED", "VEHICLE_REFILLED", "VEHICLE_BLE_AUTH", "VEHICLE_FIRMWARE_UPDATE", "USER_TRIP_EVENT_MAP_DISPLAY_GDPR", "USER_AUTOMATICALLY_REFUNDED", "USER_TRIP_CREDIT_REFUNDED", "USER_PRODUCT_CREDIT_REFUNDED", "USER_CREDIT_REFUNDED", "USER_ALL_CREDIT_REFUNDED", "USER_PREPAYMENT_SUCCEEDED", "USER_PREPAYMENT_FAILED", "USER_CREATE_SUBSCRIPTION", "USER_UPDATE_SUBSCRIPTION"]>;
|
|
25
|
+
type EventType = z.infer<typeof EventTypeList>;
|
|
26
|
+
type EventFilters = {
|
|
27
|
+
/**
|
|
28
|
+
* Format: yyyy-MM-dd'T'HH:mm:ssZ
|
|
29
|
+
* default now
|
|
30
|
+
*/
|
|
31
|
+
startDate?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Format: yyyy-MM-dd'T'HH:mm:ssZ
|
|
34
|
+
* default now plus 2 months
|
|
35
|
+
*/
|
|
36
|
+
endDate?: string;
|
|
37
|
+
};
|
|
38
|
+
declare const getEventsByType: (client: Client, type: EventType, options?: PaginableOptions<EventFilters>) => Promise<PaginableResponse<Event>>;
|
|
39
|
+
declare const getEvents: (client: Client, options?: PaginableOptions<EventFilters>) => Promise<PaginableResponse<Event>>;
|
|
40
|
+
|
|
41
|
+
export { type Event, type EventFilters, type EventType, getEvents, getEventsByType };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Client } from '@vulog/aima-client';
|
|
2
|
+
import { PaginableOptions, PaginableResponse } from '@vulog/aima-core';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
|
|
5
|
+
type ExtraInfo = {
|
|
6
|
+
bookingId: string;
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
};
|
|
9
|
+
type Event = {
|
|
10
|
+
fleetId: string;
|
|
11
|
+
userId: string;
|
|
12
|
+
origin: string;
|
|
13
|
+
type: string;
|
|
14
|
+
date: string;
|
|
15
|
+
failed: boolean;
|
|
16
|
+
originId?: string;
|
|
17
|
+
insertionDate?: string;
|
|
18
|
+
deletionDate?: string;
|
|
19
|
+
doNotTrack: boolean;
|
|
20
|
+
extraInfo: ExtraInfo[];
|
|
21
|
+
[key: string]: any;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
declare const EventTypeList: z.ZodEnum<["USER_ACCOUNT_UPDATE", "USER_SUSPENDED", "USER_REJECTED", "USER_CREATED", "USER_APPROVED", "USER_INCOMPLETE", "USER_ARCHIVED", "USER_INACTIVE", "USER_RESET_PASSWORD", "USER_ROLE_ADD", "USER_ROLE_DEL", "USER_BOOKING_REQUEST", "USER_UPDATE_BOOKING_REQUEST", "USER_DELETE_BOOKING_REQUEST", "USER_CANCEL_BOOKING_REQUEST", "USER_PROMOCODE_REDEEM", "USER_SYSTEM_CREDIT_ADD", "USER_SYSTEM_CREDIT_CONSUMED", "USER_SYSTEM_CREDIT_REMOVED", "USER_PRODUCT_CHARGED", "USER_TRIP_INVOICE_CREATED", "USER_TRIP_INVOICE_UPDATED", "USER_PRODUCT_INVOICE_CREATED", "USER_PRODUCT_EXPENSE_CREATED", "USER_PRODUCT_INVOICE_UPDATED", "VEHICLE_ADDED_TO_STATION", "VEHICLE_REMOVED_FROM_STATION", "VEHICLE_ALLOCATED", "VEHICLE_ARCHIVED", "VEHICLE_UPDATED", "VEHICLE_REMOVE_VUBOX", "VEHICLE_ASSIGN_VUBOX", "VEHICLE_OUT_OF_SERVICE", "VEHICLE_SCHEDULED_OUT_OF_SERVICE", "VEHICLE_SCHEDULED_OUT_OF_SERVICE_CANCELED", "VEHICLE_UNLOCK", "VEHICLE_LOCK", "VEHICLE_HELMET_LOCK", "VEHICLE_HELMET_UNLOCK", "VEHICLE_SPARE_LOCK", "VEHICLE_SPARE_UNLOCK", "VEHICLE_PILE_LOCK", "VEHICLE_PILE_UNLOCK", "VEHICLE_SPEED_LIMIT_CHANGED", "VEHICLE_WAKE_UP", "VEHICLE_WAKE_UP_ACCEL", "VEHICLE_WAKE_UP_BLE", "VEHICLE_CONNECTIVITY_ONLINE", "VEHICLE_CONNECTIVITY_OFFLINE", "VEHICLE_CONNECTIVITY_INTERRUPTED", "VEHICLE_OUT_OF_COM", "VEHICLE_BOOKING_STATUS_CHANGED", "VEHICLE_GET_STATUS", "VEHICLE_SCHEDULED_REBOOT", "VEHICLE_WARNING", "VEHICLE_CRUISING_RANGE_LOW", "VEHICLE_CRUISING_RANGE_CRITICAL", "VEHICLE_ACCEL_ALERT", "VEHICLE_SPEED_ALERT", "VEHICLE_RECOVERY", "VEHICLE_SYNC", "VEHICLE_STANDBY", "VEHICLE_AUTOCLOSE_ON", "VEHICLE_AUTOCLOSE_OFF", "VEHICLE_IGNITION_ON", "VEHICLE_IGNITION_OFF", "VEHICLE_REBOOT", "VEHICLE_MOBILIZE", "VEHICLE_IMMOBILIZE", "VEHICLE_ENABLE", "VEHICLE_CLEANLINESS_RESET", "VEHICLE_ADD_ZONE", "VEHICLE_REMOVE_ZONE", "VEHICLE_RELEASE_TRIP", "VEHICLE_START_TRIP", "VEHICLE_END_TRIP", "VEHICLE_EDIT_TRIP", "VEHICLE_MANUAL_END_TRIP", "VEHICLE_TRACKING_ON", "VEHICLE_TRACKING_OFF", "VEHICLE_TRIP_TERMINATION", "VEHICLE_PAUSE_TRIP", "VEHICLE_FORCED_PAUSE_TRIP", "VEHICLE_RESUME_TRIP", "VEHICLE_EXPERT", "VEHICLE_PING", "VEHICLE_CANCEL_TRIP", "VEHICLE_REMOVE_PRODUCT_TRIP", "VEHICLE_BOOK", "VEHICLE_ADD_PRODUCT_TRIP", "VEHICLE_UPDATE_REASON", "VEHICLE_RESET_CLEAN_DATE", "VEHICLE_RESET_REDISTRIB_DATE", "VEHICLE_RESET_MOVING_DATE", "VEHICLE_ANTITHEFT_ON", "VEHICLE_ANTITHEFT_OFF", "VEHICLE_CHARGING_ACTIVE", "VEHICLE_CHARGING_ENDED", "VEHICLE_CHARGING_PLUGGED", "VEHICLE_CHARGING_UNPLUGGED", "VEHICLE_BATTERY_OK", "VEHICLE_BATTERY_LOW", "VEHICLE_BATTERY_CRITICAL", "VEHICLE_DOORS_OPEN", "VEHICLE_DOORS_CLOSED", "VEHICLE_WINDOWS_OPEN", "VEHICLE_WINDOWS_CLOSED", "VEHICLE_ALERT", "VEHICLE_FATAL", "VEHICLE_PRICING_CHANGED", "VEHICLE_GROUP_CHANGED", "VEHICLE_UPDATE_ODOMETER", "VEHICLE_UPDATE_STATUS", "VEHICLE_UPDATE_GPS_MANUAL", "VEHICLE_UPDATE_GPS_SIM", "VEHICLE_RFID_SYNC", "VEHICLE_PREAUTH_CONFIRMED", "VEHICLE_PREAUTH_REJECTED", "VEHICLE_PREAUTH_EXPIRED", "VEHICLE_PREAUTH_CANCELLED", "USER_PRODUCT_INVOICE_CANCELLED", "USER_TRIP_INVOICE_CANCELLED", "USER_PRODUCT_INVOICE_REFUSED", "USER_TRIP_INVOICE_REFUSED", "USER_TRIP_INVOICE_PAID", "USER_PRODUCT_INVOICE_PAID", "USER_TRIP_INVOICE_REFUNDED", "USER_PRODUCT_INVOICE_REFUNDED", "USER_PLAN_SUBSCRIBED", "USER_PLAN_UNSUBSCRIBED", "USER_REFERRAL_CREATED", "USER_REFERRAL_CHECKED", "USER_REPORT_CREATED", "USER_REPORT_UPDATED", "USER_DOC_UPDATED", "USER_PLAN_RENEWED", "USER_BILLING_GROUP_ADDED", "USER_BILLING_GROUP_REMOVED", "VEHICLE_ADDED_TO_SERVICE", "VEHICLE_REMOVED_FROM_SERVICE", "USER_PLAN_RENEWAL", "USER_PLAN_CANCELED", "USER_PLAN_UPDATED", "USER_RFIDPINCODE_REQUESTED", "VEHICLE_REFILLED", "VEHICLE_BLE_AUTH", "VEHICLE_FIRMWARE_UPDATE", "USER_TRIP_EVENT_MAP_DISPLAY_GDPR", "USER_AUTOMATICALLY_REFUNDED", "USER_TRIP_CREDIT_REFUNDED", "USER_PRODUCT_CREDIT_REFUNDED", "USER_CREDIT_REFUNDED", "USER_ALL_CREDIT_REFUNDED", "USER_PREPAYMENT_SUCCEEDED", "USER_PREPAYMENT_FAILED", "USER_CREATE_SUBSCRIPTION", "USER_UPDATE_SUBSCRIPTION"]>;
|
|
25
|
+
type EventType = z.infer<typeof EventTypeList>;
|
|
26
|
+
type EventFilters = {
|
|
27
|
+
/**
|
|
28
|
+
* Format: yyyy-MM-dd'T'HH:mm:ssZ
|
|
29
|
+
* default now
|
|
30
|
+
*/
|
|
31
|
+
startDate?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Format: yyyy-MM-dd'T'HH:mm:ssZ
|
|
34
|
+
* default now plus 2 months
|
|
35
|
+
*/
|
|
36
|
+
endDate?: string;
|
|
37
|
+
};
|
|
38
|
+
declare const getEventsByType: (client: Client, type: EventType, options?: PaginableOptions<EventFilters>) => Promise<PaginableResponse<Event>>;
|
|
39
|
+
declare const getEvents: (client: Client, options?: PaginableOptions<EventFilters>) => Promise<PaginableResponse<Event>>;
|
|
40
|
+
|
|
41
|
+
export { type Event, type EventFilters, type EventType, getEvents, getEventsByType };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/index.ts
|
|
21
|
+
var src_exports = {};
|
|
22
|
+
__export(src_exports, {
|
|
23
|
+
getEvents: () => getEvents,
|
|
24
|
+
getEventsByType: () => getEventsByType
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(src_exports);
|
|
27
|
+
|
|
28
|
+
// src/getEvents.ts
|
|
29
|
+
var import_aima_core = require("@vulog/aima-core");
|
|
30
|
+
var import_zod = require("zod");
|
|
31
|
+
var EventTypeList = import_zod.z.enum([
|
|
32
|
+
"USER_ACCOUNT_UPDATE",
|
|
33
|
+
"USER_SUSPENDED",
|
|
34
|
+
"USER_REJECTED",
|
|
35
|
+
"USER_CREATED",
|
|
36
|
+
"USER_APPROVED",
|
|
37
|
+
"USER_INCOMPLETE",
|
|
38
|
+
"USER_ARCHIVED",
|
|
39
|
+
"USER_INACTIVE",
|
|
40
|
+
"USER_RESET_PASSWORD",
|
|
41
|
+
"USER_ROLE_ADD",
|
|
42
|
+
"USER_ROLE_DEL",
|
|
43
|
+
"USER_BOOKING_REQUEST",
|
|
44
|
+
"USER_UPDATE_BOOKING_REQUEST",
|
|
45
|
+
"USER_DELETE_BOOKING_REQUEST",
|
|
46
|
+
"USER_CANCEL_BOOKING_REQUEST",
|
|
47
|
+
"USER_PROMOCODE_REDEEM",
|
|
48
|
+
"USER_SYSTEM_CREDIT_ADD",
|
|
49
|
+
"USER_SYSTEM_CREDIT_CONSUMED",
|
|
50
|
+
"USER_SYSTEM_CREDIT_REMOVED",
|
|
51
|
+
"USER_PRODUCT_CHARGED",
|
|
52
|
+
"USER_TRIP_INVOICE_CREATED",
|
|
53
|
+
"USER_TRIP_INVOICE_UPDATED",
|
|
54
|
+
"USER_PRODUCT_INVOICE_CREATED",
|
|
55
|
+
"USER_PRODUCT_EXPENSE_CREATED",
|
|
56
|
+
"USER_PRODUCT_INVOICE_UPDATED",
|
|
57
|
+
"VEHICLE_ADDED_TO_STATION",
|
|
58
|
+
"VEHICLE_REMOVED_FROM_STATION",
|
|
59
|
+
"VEHICLE_ALLOCATED",
|
|
60
|
+
"VEHICLE_ARCHIVED",
|
|
61
|
+
"VEHICLE_UPDATED",
|
|
62
|
+
"VEHICLE_REMOVE_VUBOX",
|
|
63
|
+
"VEHICLE_ASSIGN_VUBOX",
|
|
64
|
+
"VEHICLE_OUT_OF_SERVICE",
|
|
65
|
+
"VEHICLE_SCHEDULED_OUT_OF_SERVICE",
|
|
66
|
+
"VEHICLE_SCHEDULED_OUT_OF_SERVICE_CANCELED",
|
|
67
|
+
"VEHICLE_UNLOCK",
|
|
68
|
+
"VEHICLE_LOCK",
|
|
69
|
+
"VEHICLE_HELMET_LOCK",
|
|
70
|
+
"VEHICLE_HELMET_UNLOCK",
|
|
71
|
+
"VEHICLE_SPARE_LOCK",
|
|
72
|
+
"VEHICLE_SPARE_UNLOCK",
|
|
73
|
+
"VEHICLE_PILE_LOCK",
|
|
74
|
+
"VEHICLE_PILE_UNLOCK",
|
|
75
|
+
"VEHICLE_SPEED_LIMIT_CHANGED",
|
|
76
|
+
"VEHICLE_WAKE_UP",
|
|
77
|
+
"VEHICLE_WAKE_UP_ACCEL",
|
|
78
|
+
"VEHICLE_WAKE_UP_BLE",
|
|
79
|
+
"VEHICLE_CONNECTIVITY_ONLINE",
|
|
80
|
+
"VEHICLE_CONNECTIVITY_OFFLINE",
|
|
81
|
+
"VEHICLE_CONNECTIVITY_INTERRUPTED",
|
|
82
|
+
"VEHICLE_OUT_OF_COM",
|
|
83
|
+
"VEHICLE_BOOKING_STATUS_CHANGED",
|
|
84
|
+
"VEHICLE_GET_STATUS",
|
|
85
|
+
"VEHICLE_SCHEDULED_REBOOT",
|
|
86
|
+
"VEHICLE_WARNING",
|
|
87
|
+
"VEHICLE_CRUISING_RANGE_LOW",
|
|
88
|
+
"VEHICLE_CRUISING_RANGE_CRITICAL",
|
|
89
|
+
"VEHICLE_ACCEL_ALERT",
|
|
90
|
+
"VEHICLE_SPEED_ALERT",
|
|
91
|
+
"VEHICLE_RECOVERY",
|
|
92
|
+
"VEHICLE_SYNC",
|
|
93
|
+
"VEHICLE_STANDBY",
|
|
94
|
+
"VEHICLE_AUTOCLOSE_ON",
|
|
95
|
+
"VEHICLE_AUTOCLOSE_OFF",
|
|
96
|
+
"VEHICLE_IGNITION_ON",
|
|
97
|
+
"VEHICLE_IGNITION_OFF",
|
|
98
|
+
"VEHICLE_REBOOT",
|
|
99
|
+
"VEHICLE_MOBILIZE",
|
|
100
|
+
"VEHICLE_IMMOBILIZE",
|
|
101
|
+
"VEHICLE_ENABLE",
|
|
102
|
+
"VEHICLE_CLEANLINESS_RESET",
|
|
103
|
+
"VEHICLE_ADD_ZONE",
|
|
104
|
+
"VEHICLE_REMOVE_ZONE",
|
|
105
|
+
"VEHICLE_RELEASE_TRIP",
|
|
106
|
+
"VEHICLE_START_TRIP",
|
|
107
|
+
"VEHICLE_END_TRIP",
|
|
108
|
+
"VEHICLE_EDIT_TRIP",
|
|
109
|
+
"VEHICLE_MANUAL_END_TRIP",
|
|
110
|
+
"VEHICLE_TRACKING_ON",
|
|
111
|
+
"VEHICLE_TRACKING_OFF",
|
|
112
|
+
"VEHICLE_TRIP_TERMINATION",
|
|
113
|
+
"VEHICLE_PAUSE_TRIP",
|
|
114
|
+
"VEHICLE_FORCED_PAUSE_TRIP",
|
|
115
|
+
"VEHICLE_RESUME_TRIP",
|
|
116
|
+
"VEHICLE_EXPERT",
|
|
117
|
+
"VEHICLE_PING",
|
|
118
|
+
"VEHICLE_CANCEL_TRIP",
|
|
119
|
+
"VEHICLE_REMOVE_PRODUCT_TRIP",
|
|
120
|
+
"VEHICLE_BOOK",
|
|
121
|
+
"VEHICLE_ADD_PRODUCT_TRIP",
|
|
122
|
+
"VEHICLE_UPDATE_REASON",
|
|
123
|
+
"VEHICLE_RESET_CLEAN_DATE",
|
|
124
|
+
"VEHICLE_RESET_REDISTRIB_DATE",
|
|
125
|
+
"VEHICLE_RESET_MOVING_DATE",
|
|
126
|
+
"VEHICLE_ANTITHEFT_ON",
|
|
127
|
+
"VEHICLE_ANTITHEFT_OFF",
|
|
128
|
+
"VEHICLE_CHARGING_ACTIVE",
|
|
129
|
+
"VEHICLE_CHARGING_ENDED",
|
|
130
|
+
"VEHICLE_CHARGING_PLUGGED",
|
|
131
|
+
"VEHICLE_CHARGING_UNPLUGGED",
|
|
132
|
+
"VEHICLE_BATTERY_OK",
|
|
133
|
+
"VEHICLE_BATTERY_LOW",
|
|
134
|
+
"VEHICLE_BATTERY_CRITICAL",
|
|
135
|
+
"VEHICLE_DOORS_OPEN",
|
|
136
|
+
"VEHICLE_DOORS_CLOSED",
|
|
137
|
+
"VEHICLE_WINDOWS_OPEN",
|
|
138
|
+
"VEHICLE_WINDOWS_CLOSED",
|
|
139
|
+
"VEHICLE_ALERT",
|
|
140
|
+
"VEHICLE_FATAL",
|
|
141
|
+
"VEHICLE_PRICING_CHANGED",
|
|
142
|
+
"VEHICLE_GROUP_CHANGED",
|
|
143
|
+
"VEHICLE_UPDATE_ODOMETER",
|
|
144
|
+
"VEHICLE_UPDATE_STATUS",
|
|
145
|
+
"VEHICLE_UPDATE_GPS_MANUAL",
|
|
146
|
+
"VEHICLE_UPDATE_GPS_SIM",
|
|
147
|
+
"VEHICLE_RFID_SYNC",
|
|
148
|
+
"VEHICLE_PREAUTH_CONFIRMED",
|
|
149
|
+
"VEHICLE_PREAUTH_REJECTED",
|
|
150
|
+
"VEHICLE_PREAUTH_EXPIRED",
|
|
151
|
+
"VEHICLE_PREAUTH_CANCELLED",
|
|
152
|
+
"USER_PRODUCT_INVOICE_CANCELLED",
|
|
153
|
+
"USER_TRIP_INVOICE_CANCELLED",
|
|
154
|
+
"USER_PRODUCT_INVOICE_REFUSED",
|
|
155
|
+
"USER_TRIP_INVOICE_REFUSED",
|
|
156
|
+
"USER_TRIP_INVOICE_PAID",
|
|
157
|
+
"USER_PRODUCT_INVOICE_PAID",
|
|
158
|
+
"USER_TRIP_INVOICE_REFUNDED",
|
|
159
|
+
"USER_PRODUCT_INVOICE_REFUNDED",
|
|
160
|
+
"USER_PLAN_SUBSCRIBED",
|
|
161
|
+
"USER_PLAN_UNSUBSCRIBED",
|
|
162
|
+
"USER_REFERRAL_CREATED",
|
|
163
|
+
"USER_REFERRAL_CHECKED",
|
|
164
|
+
"USER_REPORT_CREATED",
|
|
165
|
+
"USER_REPORT_UPDATED",
|
|
166
|
+
"USER_DOC_UPDATED",
|
|
167
|
+
"USER_PLAN_RENEWED",
|
|
168
|
+
"USER_BILLING_GROUP_ADDED",
|
|
169
|
+
"USER_BILLING_GROUP_REMOVED",
|
|
170
|
+
"VEHICLE_ADDED_TO_SERVICE",
|
|
171
|
+
"VEHICLE_REMOVED_FROM_SERVICE",
|
|
172
|
+
"USER_PLAN_RENEWAL",
|
|
173
|
+
"USER_PLAN_CANCELED",
|
|
174
|
+
"USER_PLAN_UPDATED",
|
|
175
|
+
"USER_RFIDPINCODE_REQUESTED",
|
|
176
|
+
"VEHICLE_REFILLED",
|
|
177
|
+
"VEHICLE_BLE_AUTH",
|
|
178
|
+
"VEHICLE_FIRMWARE_UPDATE",
|
|
179
|
+
"USER_TRIP_EVENT_MAP_DISPLAY_GDPR",
|
|
180
|
+
"USER_AUTOMATICALLY_REFUNDED",
|
|
181
|
+
"USER_TRIP_CREDIT_REFUNDED",
|
|
182
|
+
"USER_PRODUCT_CREDIT_REFUNDED",
|
|
183
|
+
"USER_CREDIT_REFUNDED",
|
|
184
|
+
"USER_ALL_CREDIT_REFUNDED",
|
|
185
|
+
"USER_PREPAYMENT_SUCCEEDED",
|
|
186
|
+
"USER_PREPAYMENT_FAILED",
|
|
187
|
+
"USER_CREATE_SUBSCRIPTION",
|
|
188
|
+
"USER_UPDATE_SUBSCRIPTION"
|
|
189
|
+
]);
|
|
190
|
+
var getEventsByType = async (client, type, options) => {
|
|
191
|
+
const resultStatus = EventTypeList.safeParse(type);
|
|
192
|
+
if (!resultStatus.success) {
|
|
193
|
+
throw new TypeError("Invalid status", {
|
|
194
|
+
cause: resultStatus.error.issues
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
const date = /* @__PURE__ */ new Date();
|
|
198
|
+
date.setMilliseconds(0);
|
|
199
|
+
const startDate = date.toISOString().replace(".000Z", "Z");
|
|
200
|
+
date.setMonth(date.getMonth() + 2);
|
|
201
|
+
const endDate = date.toISOString().replace(".000Z", "Z");
|
|
202
|
+
const EventFiltersSchema = import_zod.z.object({
|
|
203
|
+
startDate: import_zod.z.string().datetime({ offset: false, precision: 0 }).default(startDate),
|
|
204
|
+
endDate: import_zod.z.string().datetime({ offset: false, precision: 0 }).default(endDate)
|
|
205
|
+
});
|
|
206
|
+
const PaginableOptionsSchema = (0, import_aima_core.createPaginableOptionsSchema)(EventFiltersSchema).default({});
|
|
207
|
+
const resultOptions = PaginableOptionsSchema.safeParse(options);
|
|
208
|
+
if (!resultOptions.success) {
|
|
209
|
+
throw new TypeError("Invalid options", {
|
|
210
|
+
cause: resultOptions.error.issues
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
const finalOptions = resultOptions.data;
|
|
214
|
+
const searchParams = new URLSearchParams();
|
|
215
|
+
searchParams.append("page", finalOptions.page.toString());
|
|
216
|
+
searchParams.append("pageSize", finalOptions.pageSize.toString());
|
|
217
|
+
Object.entries(finalOptions.filters).forEach(([key, value]) => {
|
|
218
|
+
if (value === void 0) {
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
searchParams.append(key, value);
|
|
222
|
+
});
|
|
223
|
+
return client.get(`/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/events/types/${type}?${searchParams.toString()}`).then(({ data, headers }) => {
|
|
224
|
+
return {
|
|
225
|
+
data,
|
|
226
|
+
page: headers.number,
|
|
227
|
+
pageSize: headers.size,
|
|
228
|
+
total: headers.totalelements,
|
|
229
|
+
totalPages: headers.totalpages
|
|
230
|
+
};
|
|
231
|
+
});
|
|
232
|
+
};
|
|
233
|
+
var getEvents = async (client, options) => {
|
|
234
|
+
const date = /* @__PURE__ */ new Date();
|
|
235
|
+
date.setMilliseconds(0);
|
|
236
|
+
const startDate = date.toISOString().replace(".000Z", "Z");
|
|
237
|
+
date.setMonth(date.getMonth() + 2);
|
|
238
|
+
const endDate = date.toISOString().replace(".000Z", "Z");
|
|
239
|
+
const EventFiltersSchema = import_zod.z.object({
|
|
240
|
+
startDate: import_zod.z.string().datetime({ offset: false, precision: 0 }).default(startDate),
|
|
241
|
+
endDate: import_zod.z.string().datetime({ offset: false, precision: 0 }).default(endDate)
|
|
242
|
+
});
|
|
243
|
+
const PaginableOptionsSchema = (0, import_aima_core.createPaginableOptionsSchema)(EventFiltersSchema).default({});
|
|
244
|
+
const resultOptions = PaginableOptionsSchema.safeParse(options);
|
|
245
|
+
if (!resultOptions.success) {
|
|
246
|
+
throw new TypeError("Invalid options", {
|
|
247
|
+
cause: resultOptions.error.issues
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
const finalOptions = resultOptions.data;
|
|
251
|
+
const searchParams = new URLSearchParams();
|
|
252
|
+
searchParams.append("page", finalOptions.page.toString());
|
|
253
|
+
searchParams.append("pageSize", finalOptions.pageSize.toString());
|
|
254
|
+
Object.entries(finalOptions.filters).forEach(([key, value]) => {
|
|
255
|
+
if (value === void 0) {
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
searchParams.append(key, value);
|
|
259
|
+
});
|
|
260
|
+
return client.get(`/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/events/types?${searchParams.toString()}`).then(({ data, headers }) => {
|
|
261
|
+
return {
|
|
262
|
+
data,
|
|
263
|
+
page: headers.number,
|
|
264
|
+
pageSize: headers.size,
|
|
265
|
+
total: headers.totalelements,
|
|
266
|
+
totalPages: headers.totalpages
|
|
267
|
+
};
|
|
268
|
+
});
|
|
269
|
+
};
|
|
270
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
271
|
+
0 && (module.exports = {
|
|
272
|
+
getEvents,
|
|
273
|
+
getEventsByType
|
|
274
|
+
});
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
// src/getEvents.ts
|
|
2
|
+
import { createPaginableOptionsSchema } from "@vulog/aima-core";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
var EventTypeList = z.enum([
|
|
5
|
+
"USER_ACCOUNT_UPDATE",
|
|
6
|
+
"USER_SUSPENDED",
|
|
7
|
+
"USER_REJECTED",
|
|
8
|
+
"USER_CREATED",
|
|
9
|
+
"USER_APPROVED",
|
|
10
|
+
"USER_INCOMPLETE",
|
|
11
|
+
"USER_ARCHIVED",
|
|
12
|
+
"USER_INACTIVE",
|
|
13
|
+
"USER_RESET_PASSWORD",
|
|
14
|
+
"USER_ROLE_ADD",
|
|
15
|
+
"USER_ROLE_DEL",
|
|
16
|
+
"USER_BOOKING_REQUEST",
|
|
17
|
+
"USER_UPDATE_BOOKING_REQUEST",
|
|
18
|
+
"USER_DELETE_BOOKING_REQUEST",
|
|
19
|
+
"USER_CANCEL_BOOKING_REQUEST",
|
|
20
|
+
"USER_PROMOCODE_REDEEM",
|
|
21
|
+
"USER_SYSTEM_CREDIT_ADD",
|
|
22
|
+
"USER_SYSTEM_CREDIT_CONSUMED",
|
|
23
|
+
"USER_SYSTEM_CREDIT_REMOVED",
|
|
24
|
+
"USER_PRODUCT_CHARGED",
|
|
25
|
+
"USER_TRIP_INVOICE_CREATED",
|
|
26
|
+
"USER_TRIP_INVOICE_UPDATED",
|
|
27
|
+
"USER_PRODUCT_INVOICE_CREATED",
|
|
28
|
+
"USER_PRODUCT_EXPENSE_CREATED",
|
|
29
|
+
"USER_PRODUCT_INVOICE_UPDATED",
|
|
30
|
+
"VEHICLE_ADDED_TO_STATION",
|
|
31
|
+
"VEHICLE_REMOVED_FROM_STATION",
|
|
32
|
+
"VEHICLE_ALLOCATED",
|
|
33
|
+
"VEHICLE_ARCHIVED",
|
|
34
|
+
"VEHICLE_UPDATED",
|
|
35
|
+
"VEHICLE_REMOVE_VUBOX",
|
|
36
|
+
"VEHICLE_ASSIGN_VUBOX",
|
|
37
|
+
"VEHICLE_OUT_OF_SERVICE",
|
|
38
|
+
"VEHICLE_SCHEDULED_OUT_OF_SERVICE",
|
|
39
|
+
"VEHICLE_SCHEDULED_OUT_OF_SERVICE_CANCELED",
|
|
40
|
+
"VEHICLE_UNLOCK",
|
|
41
|
+
"VEHICLE_LOCK",
|
|
42
|
+
"VEHICLE_HELMET_LOCK",
|
|
43
|
+
"VEHICLE_HELMET_UNLOCK",
|
|
44
|
+
"VEHICLE_SPARE_LOCK",
|
|
45
|
+
"VEHICLE_SPARE_UNLOCK",
|
|
46
|
+
"VEHICLE_PILE_LOCK",
|
|
47
|
+
"VEHICLE_PILE_UNLOCK",
|
|
48
|
+
"VEHICLE_SPEED_LIMIT_CHANGED",
|
|
49
|
+
"VEHICLE_WAKE_UP",
|
|
50
|
+
"VEHICLE_WAKE_UP_ACCEL",
|
|
51
|
+
"VEHICLE_WAKE_UP_BLE",
|
|
52
|
+
"VEHICLE_CONNECTIVITY_ONLINE",
|
|
53
|
+
"VEHICLE_CONNECTIVITY_OFFLINE",
|
|
54
|
+
"VEHICLE_CONNECTIVITY_INTERRUPTED",
|
|
55
|
+
"VEHICLE_OUT_OF_COM",
|
|
56
|
+
"VEHICLE_BOOKING_STATUS_CHANGED",
|
|
57
|
+
"VEHICLE_GET_STATUS",
|
|
58
|
+
"VEHICLE_SCHEDULED_REBOOT",
|
|
59
|
+
"VEHICLE_WARNING",
|
|
60
|
+
"VEHICLE_CRUISING_RANGE_LOW",
|
|
61
|
+
"VEHICLE_CRUISING_RANGE_CRITICAL",
|
|
62
|
+
"VEHICLE_ACCEL_ALERT",
|
|
63
|
+
"VEHICLE_SPEED_ALERT",
|
|
64
|
+
"VEHICLE_RECOVERY",
|
|
65
|
+
"VEHICLE_SYNC",
|
|
66
|
+
"VEHICLE_STANDBY",
|
|
67
|
+
"VEHICLE_AUTOCLOSE_ON",
|
|
68
|
+
"VEHICLE_AUTOCLOSE_OFF",
|
|
69
|
+
"VEHICLE_IGNITION_ON",
|
|
70
|
+
"VEHICLE_IGNITION_OFF",
|
|
71
|
+
"VEHICLE_REBOOT",
|
|
72
|
+
"VEHICLE_MOBILIZE",
|
|
73
|
+
"VEHICLE_IMMOBILIZE",
|
|
74
|
+
"VEHICLE_ENABLE",
|
|
75
|
+
"VEHICLE_CLEANLINESS_RESET",
|
|
76
|
+
"VEHICLE_ADD_ZONE",
|
|
77
|
+
"VEHICLE_REMOVE_ZONE",
|
|
78
|
+
"VEHICLE_RELEASE_TRIP",
|
|
79
|
+
"VEHICLE_START_TRIP",
|
|
80
|
+
"VEHICLE_END_TRIP",
|
|
81
|
+
"VEHICLE_EDIT_TRIP",
|
|
82
|
+
"VEHICLE_MANUAL_END_TRIP",
|
|
83
|
+
"VEHICLE_TRACKING_ON",
|
|
84
|
+
"VEHICLE_TRACKING_OFF",
|
|
85
|
+
"VEHICLE_TRIP_TERMINATION",
|
|
86
|
+
"VEHICLE_PAUSE_TRIP",
|
|
87
|
+
"VEHICLE_FORCED_PAUSE_TRIP",
|
|
88
|
+
"VEHICLE_RESUME_TRIP",
|
|
89
|
+
"VEHICLE_EXPERT",
|
|
90
|
+
"VEHICLE_PING",
|
|
91
|
+
"VEHICLE_CANCEL_TRIP",
|
|
92
|
+
"VEHICLE_REMOVE_PRODUCT_TRIP",
|
|
93
|
+
"VEHICLE_BOOK",
|
|
94
|
+
"VEHICLE_ADD_PRODUCT_TRIP",
|
|
95
|
+
"VEHICLE_UPDATE_REASON",
|
|
96
|
+
"VEHICLE_RESET_CLEAN_DATE",
|
|
97
|
+
"VEHICLE_RESET_REDISTRIB_DATE",
|
|
98
|
+
"VEHICLE_RESET_MOVING_DATE",
|
|
99
|
+
"VEHICLE_ANTITHEFT_ON",
|
|
100
|
+
"VEHICLE_ANTITHEFT_OFF",
|
|
101
|
+
"VEHICLE_CHARGING_ACTIVE",
|
|
102
|
+
"VEHICLE_CHARGING_ENDED",
|
|
103
|
+
"VEHICLE_CHARGING_PLUGGED",
|
|
104
|
+
"VEHICLE_CHARGING_UNPLUGGED",
|
|
105
|
+
"VEHICLE_BATTERY_OK",
|
|
106
|
+
"VEHICLE_BATTERY_LOW",
|
|
107
|
+
"VEHICLE_BATTERY_CRITICAL",
|
|
108
|
+
"VEHICLE_DOORS_OPEN",
|
|
109
|
+
"VEHICLE_DOORS_CLOSED",
|
|
110
|
+
"VEHICLE_WINDOWS_OPEN",
|
|
111
|
+
"VEHICLE_WINDOWS_CLOSED",
|
|
112
|
+
"VEHICLE_ALERT",
|
|
113
|
+
"VEHICLE_FATAL",
|
|
114
|
+
"VEHICLE_PRICING_CHANGED",
|
|
115
|
+
"VEHICLE_GROUP_CHANGED",
|
|
116
|
+
"VEHICLE_UPDATE_ODOMETER",
|
|
117
|
+
"VEHICLE_UPDATE_STATUS",
|
|
118
|
+
"VEHICLE_UPDATE_GPS_MANUAL",
|
|
119
|
+
"VEHICLE_UPDATE_GPS_SIM",
|
|
120
|
+
"VEHICLE_RFID_SYNC",
|
|
121
|
+
"VEHICLE_PREAUTH_CONFIRMED",
|
|
122
|
+
"VEHICLE_PREAUTH_REJECTED",
|
|
123
|
+
"VEHICLE_PREAUTH_EXPIRED",
|
|
124
|
+
"VEHICLE_PREAUTH_CANCELLED",
|
|
125
|
+
"USER_PRODUCT_INVOICE_CANCELLED",
|
|
126
|
+
"USER_TRIP_INVOICE_CANCELLED",
|
|
127
|
+
"USER_PRODUCT_INVOICE_REFUSED",
|
|
128
|
+
"USER_TRIP_INVOICE_REFUSED",
|
|
129
|
+
"USER_TRIP_INVOICE_PAID",
|
|
130
|
+
"USER_PRODUCT_INVOICE_PAID",
|
|
131
|
+
"USER_TRIP_INVOICE_REFUNDED",
|
|
132
|
+
"USER_PRODUCT_INVOICE_REFUNDED",
|
|
133
|
+
"USER_PLAN_SUBSCRIBED",
|
|
134
|
+
"USER_PLAN_UNSUBSCRIBED",
|
|
135
|
+
"USER_REFERRAL_CREATED",
|
|
136
|
+
"USER_REFERRAL_CHECKED",
|
|
137
|
+
"USER_REPORT_CREATED",
|
|
138
|
+
"USER_REPORT_UPDATED",
|
|
139
|
+
"USER_DOC_UPDATED",
|
|
140
|
+
"USER_PLAN_RENEWED",
|
|
141
|
+
"USER_BILLING_GROUP_ADDED",
|
|
142
|
+
"USER_BILLING_GROUP_REMOVED",
|
|
143
|
+
"VEHICLE_ADDED_TO_SERVICE",
|
|
144
|
+
"VEHICLE_REMOVED_FROM_SERVICE",
|
|
145
|
+
"USER_PLAN_RENEWAL",
|
|
146
|
+
"USER_PLAN_CANCELED",
|
|
147
|
+
"USER_PLAN_UPDATED",
|
|
148
|
+
"USER_RFIDPINCODE_REQUESTED",
|
|
149
|
+
"VEHICLE_REFILLED",
|
|
150
|
+
"VEHICLE_BLE_AUTH",
|
|
151
|
+
"VEHICLE_FIRMWARE_UPDATE",
|
|
152
|
+
"USER_TRIP_EVENT_MAP_DISPLAY_GDPR",
|
|
153
|
+
"USER_AUTOMATICALLY_REFUNDED",
|
|
154
|
+
"USER_TRIP_CREDIT_REFUNDED",
|
|
155
|
+
"USER_PRODUCT_CREDIT_REFUNDED",
|
|
156
|
+
"USER_CREDIT_REFUNDED",
|
|
157
|
+
"USER_ALL_CREDIT_REFUNDED",
|
|
158
|
+
"USER_PREPAYMENT_SUCCEEDED",
|
|
159
|
+
"USER_PREPAYMENT_FAILED",
|
|
160
|
+
"USER_CREATE_SUBSCRIPTION",
|
|
161
|
+
"USER_UPDATE_SUBSCRIPTION"
|
|
162
|
+
]);
|
|
163
|
+
var getEventsByType = async (client, type, options) => {
|
|
164
|
+
const resultStatus = EventTypeList.safeParse(type);
|
|
165
|
+
if (!resultStatus.success) {
|
|
166
|
+
throw new TypeError("Invalid status", {
|
|
167
|
+
cause: resultStatus.error.issues
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
const date = /* @__PURE__ */ new Date();
|
|
171
|
+
date.setMilliseconds(0);
|
|
172
|
+
const startDate = date.toISOString().replace(".000Z", "Z");
|
|
173
|
+
date.setMonth(date.getMonth() + 2);
|
|
174
|
+
const endDate = date.toISOString().replace(".000Z", "Z");
|
|
175
|
+
const EventFiltersSchema = z.object({
|
|
176
|
+
startDate: z.string().datetime({ offset: false, precision: 0 }).default(startDate),
|
|
177
|
+
endDate: z.string().datetime({ offset: false, precision: 0 }).default(endDate)
|
|
178
|
+
});
|
|
179
|
+
const PaginableOptionsSchema = createPaginableOptionsSchema(EventFiltersSchema).default({});
|
|
180
|
+
const resultOptions = PaginableOptionsSchema.safeParse(options);
|
|
181
|
+
if (!resultOptions.success) {
|
|
182
|
+
throw new TypeError("Invalid options", {
|
|
183
|
+
cause: resultOptions.error.issues
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
const finalOptions = resultOptions.data;
|
|
187
|
+
const searchParams = new URLSearchParams();
|
|
188
|
+
searchParams.append("page", finalOptions.page.toString());
|
|
189
|
+
searchParams.append("pageSize", finalOptions.pageSize.toString());
|
|
190
|
+
Object.entries(finalOptions.filters).forEach(([key, value]) => {
|
|
191
|
+
if (value === void 0) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
searchParams.append(key, value);
|
|
195
|
+
});
|
|
196
|
+
return client.get(`/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/events/types/${type}?${searchParams.toString()}`).then(({ data, headers }) => {
|
|
197
|
+
return {
|
|
198
|
+
data,
|
|
199
|
+
page: headers.number,
|
|
200
|
+
pageSize: headers.size,
|
|
201
|
+
total: headers.totalelements,
|
|
202
|
+
totalPages: headers.totalpages
|
|
203
|
+
};
|
|
204
|
+
});
|
|
205
|
+
};
|
|
206
|
+
var getEvents = async (client, options) => {
|
|
207
|
+
const date = /* @__PURE__ */ new Date();
|
|
208
|
+
date.setMilliseconds(0);
|
|
209
|
+
const startDate = date.toISOString().replace(".000Z", "Z");
|
|
210
|
+
date.setMonth(date.getMonth() + 2);
|
|
211
|
+
const endDate = date.toISOString().replace(".000Z", "Z");
|
|
212
|
+
const EventFiltersSchema = z.object({
|
|
213
|
+
startDate: z.string().datetime({ offset: false, precision: 0 }).default(startDate),
|
|
214
|
+
endDate: z.string().datetime({ offset: false, precision: 0 }).default(endDate)
|
|
215
|
+
});
|
|
216
|
+
const PaginableOptionsSchema = createPaginableOptionsSchema(EventFiltersSchema).default({});
|
|
217
|
+
const resultOptions = PaginableOptionsSchema.safeParse(options);
|
|
218
|
+
if (!resultOptions.success) {
|
|
219
|
+
throw new TypeError("Invalid options", {
|
|
220
|
+
cause: resultOptions.error.issues
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
const finalOptions = resultOptions.data;
|
|
224
|
+
const searchParams = new URLSearchParams();
|
|
225
|
+
searchParams.append("page", finalOptions.page.toString());
|
|
226
|
+
searchParams.append("pageSize", finalOptions.pageSize.toString());
|
|
227
|
+
Object.entries(finalOptions.filters).forEach(([key, value]) => {
|
|
228
|
+
if (value === void 0) {
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
searchParams.append(key, value);
|
|
232
|
+
});
|
|
233
|
+
return client.get(`/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/events/types?${searchParams.toString()}`).then(({ data, headers }) => {
|
|
234
|
+
return {
|
|
235
|
+
data,
|
|
236
|
+
page: headers.number,
|
|
237
|
+
pageSize: headers.size,
|
|
238
|
+
total: headers.totalelements,
|
|
239
|
+
totalPages: headers.totalpages
|
|
240
|
+
};
|
|
241
|
+
});
|
|
242
|
+
};
|
|
243
|
+
export {
|
|
244
|
+
getEvents,
|
|
245
|
+
getEventsByType
|
|
246
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vulog/aima-event",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
|
+
"module": "dist/index.mjs",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsup",
|
|
9
|
+
"dev": "tsup --watch",
|
|
10
|
+
"test": "vitest run",
|
|
11
|
+
"test:watch": "vitest",
|
|
12
|
+
"lint": "eslint src/**/* --ext .ts"
|
|
13
|
+
},
|
|
14
|
+
"keywords": [
|
|
15
|
+
"AIMA",
|
|
16
|
+
"VULOG",
|
|
17
|
+
"EVENT"
|
|
18
|
+
],
|
|
19
|
+
"author": "Vulog",
|
|
20
|
+
"license": "ISC",
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"@types/node": "^22.10.1",
|
|
23
|
+
"eslint-config-airbnb-base": "^15.0.0",
|
|
24
|
+
"eslint-config-airbnb-typescript": "^18.0.0",
|
|
25
|
+
"eslint-config-prettier": "^9.1.0",
|
|
26
|
+
"eslint-plugin-import": "^2.31.0",
|
|
27
|
+
"eslint-plugin-prettier": "^5.2.1",
|
|
28
|
+
"eslint-plugin-unused-imports": "^4.1.4",
|
|
29
|
+
"prettier": "^3.4.1",
|
|
30
|
+
"tsup": "^8.3.5",
|
|
31
|
+
"typescript": "^5.7.2",
|
|
32
|
+
"vitest": "^2.1.8"
|
|
33
|
+
},
|
|
34
|
+
"peerDependencies": {
|
|
35
|
+
"@vulog/aima-client": "^1.0.0",
|
|
36
|
+
"@vulog/aima-core": "^1.0.0",
|
|
37
|
+
"es-toolkit": "^1.29.0",
|
|
38
|
+
"zod": "^3.23.8"
|
|
39
|
+
},
|
|
40
|
+
"description": ""
|
|
41
|
+
}
|
package/src/getEvents.ts
ADDED
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
import { Client } from '@vulog/aima-client';
|
|
2
|
+
import { createPaginableOptionsSchema, PaginableOptions, PaginableResponse } from '@vulog/aima-core';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
|
|
5
|
+
import { Event } from './types';
|
|
6
|
+
|
|
7
|
+
const EventTypeList = z.enum([
|
|
8
|
+
'USER_ACCOUNT_UPDATE',
|
|
9
|
+
'USER_SUSPENDED',
|
|
10
|
+
'USER_REJECTED',
|
|
11
|
+
'USER_CREATED',
|
|
12
|
+
'USER_APPROVED',
|
|
13
|
+
'USER_INCOMPLETE',
|
|
14
|
+
'USER_ARCHIVED',
|
|
15
|
+
'USER_INACTIVE',
|
|
16
|
+
'USER_RESET_PASSWORD',
|
|
17
|
+
'USER_ROLE_ADD',
|
|
18
|
+
'USER_ROLE_DEL',
|
|
19
|
+
'USER_BOOKING_REQUEST',
|
|
20
|
+
'USER_UPDATE_BOOKING_REQUEST',
|
|
21
|
+
'USER_DELETE_BOOKING_REQUEST',
|
|
22
|
+
'USER_CANCEL_BOOKING_REQUEST',
|
|
23
|
+
'USER_PROMOCODE_REDEEM',
|
|
24
|
+
'USER_SYSTEM_CREDIT_ADD',
|
|
25
|
+
'USER_SYSTEM_CREDIT_CONSUMED',
|
|
26
|
+
'USER_SYSTEM_CREDIT_REMOVED',
|
|
27
|
+
'USER_PRODUCT_CHARGED',
|
|
28
|
+
'USER_TRIP_INVOICE_CREATED',
|
|
29
|
+
'USER_TRIP_INVOICE_UPDATED',
|
|
30
|
+
'USER_PRODUCT_INVOICE_CREATED',
|
|
31
|
+
'USER_PRODUCT_EXPENSE_CREATED',
|
|
32
|
+
'USER_PRODUCT_INVOICE_UPDATED',
|
|
33
|
+
'VEHICLE_ADDED_TO_STATION',
|
|
34
|
+
'VEHICLE_REMOVED_FROM_STATION',
|
|
35
|
+
'VEHICLE_ALLOCATED',
|
|
36
|
+
'VEHICLE_ARCHIVED',
|
|
37
|
+
'VEHICLE_UPDATED',
|
|
38
|
+
'VEHICLE_REMOVE_VUBOX',
|
|
39
|
+
'VEHICLE_ASSIGN_VUBOX',
|
|
40
|
+
'VEHICLE_OUT_OF_SERVICE',
|
|
41
|
+
'VEHICLE_SCHEDULED_OUT_OF_SERVICE',
|
|
42
|
+
'VEHICLE_SCHEDULED_OUT_OF_SERVICE_CANCELED',
|
|
43
|
+
'VEHICLE_UNLOCK',
|
|
44
|
+
'VEHICLE_LOCK',
|
|
45
|
+
'VEHICLE_HELMET_LOCK',
|
|
46
|
+
'VEHICLE_HELMET_UNLOCK',
|
|
47
|
+
'VEHICLE_SPARE_LOCK',
|
|
48
|
+
'VEHICLE_SPARE_UNLOCK',
|
|
49
|
+
'VEHICLE_PILE_LOCK',
|
|
50
|
+
'VEHICLE_PILE_UNLOCK',
|
|
51
|
+
'VEHICLE_SPEED_LIMIT_CHANGED',
|
|
52
|
+
'VEHICLE_WAKE_UP',
|
|
53
|
+
'VEHICLE_WAKE_UP_ACCEL',
|
|
54
|
+
'VEHICLE_WAKE_UP_BLE',
|
|
55
|
+
'VEHICLE_CONNECTIVITY_ONLINE',
|
|
56
|
+
'VEHICLE_CONNECTIVITY_OFFLINE',
|
|
57
|
+
'VEHICLE_CONNECTIVITY_INTERRUPTED',
|
|
58
|
+
'VEHICLE_OUT_OF_COM',
|
|
59
|
+
'VEHICLE_BOOKING_STATUS_CHANGED',
|
|
60
|
+
'VEHICLE_GET_STATUS',
|
|
61
|
+
'VEHICLE_SCHEDULED_REBOOT',
|
|
62
|
+
'VEHICLE_WARNING',
|
|
63
|
+
'VEHICLE_CRUISING_RANGE_LOW',
|
|
64
|
+
'VEHICLE_CRUISING_RANGE_CRITICAL',
|
|
65
|
+
'VEHICLE_ACCEL_ALERT',
|
|
66
|
+
'VEHICLE_SPEED_ALERT',
|
|
67
|
+
'VEHICLE_RECOVERY',
|
|
68
|
+
'VEHICLE_SYNC',
|
|
69
|
+
'VEHICLE_STANDBY',
|
|
70
|
+
'VEHICLE_AUTOCLOSE_ON',
|
|
71
|
+
'VEHICLE_AUTOCLOSE_OFF',
|
|
72
|
+
'VEHICLE_IGNITION_ON',
|
|
73
|
+
'VEHICLE_IGNITION_OFF',
|
|
74
|
+
'VEHICLE_REBOOT',
|
|
75
|
+
'VEHICLE_MOBILIZE',
|
|
76
|
+
'VEHICLE_IMMOBILIZE',
|
|
77
|
+
'VEHICLE_ENABLE',
|
|
78
|
+
'VEHICLE_CLEANLINESS_RESET',
|
|
79
|
+
'VEHICLE_ADD_ZONE',
|
|
80
|
+
'VEHICLE_REMOVE_ZONE',
|
|
81
|
+
'VEHICLE_RELEASE_TRIP',
|
|
82
|
+
'VEHICLE_START_TRIP',
|
|
83
|
+
'VEHICLE_END_TRIP',
|
|
84
|
+
'VEHICLE_EDIT_TRIP',
|
|
85
|
+
'VEHICLE_MANUAL_END_TRIP',
|
|
86
|
+
'VEHICLE_TRACKING_ON',
|
|
87
|
+
'VEHICLE_TRACKING_OFF',
|
|
88
|
+
'VEHICLE_TRIP_TERMINATION',
|
|
89
|
+
'VEHICLE_PAUSE_TRIP',
|
|
90
|
+
'VEHICLE_FORCED_PAUSE_TRIP',
|
|
91
|
+
'VEHICLE_RESUME_TRIP',
|
|
92
|
+
'VEHICLE_EXPERT',
|
|
93
|
+
'VEHICLE_PING',
|
|
94
|
+
'VEHICLE_CANCEL_TRIP',
|
|
95
|
+
'VEHICLE_REMOVE_PRODUCT_TRIP',
|
|
96
|
+
'VEHICLE_BOOK',
|
|
97
|
+
'VEHICLE_ADD_PRODUCT_TRIP',
|
|
98
|
+
'VEHICLE_UPDATE_REASON',
|
|
99
|
+
'VEHICLE_RESET_CLEAN_DATE',
|
|
100
|
+
'VEHICLE_RESET_REDISTRIB_DATE',
|
|
101
|
+
'VEHICLE_RESET_MOVING_DATE',
|
|
102
|
+
'VEHICLE_ANTITHEFT_ON',
|
|
103
|
+
'VEHICLE_ANTITHEFT_OFF',
|
|
104
|
+
'VEHICLE_CHARGING_ACTIVE',
|
|
105
|
+
'VEHICLE_CHARGING_ENDED',
|
|
106
|
+
'VEHICLE_CHARGING_PLUGGED',
|
|
107
|
+
'VEHICLE_CHARGING_UNPLUGGED',
|
|
108
|
+
'VEHICLE_BATTERY_OK',
|
|
109
|
+
'VEHICLE_BATTERY_LOW',
|
|
110
|
+
'VEHICLE_BATTERY_CRITICAL',
|
|
111
|
+
'VEHICLE_DOORS_OPEN',
|
|
112
|
+
'VEHICLE_DOORS_CLOSED',
|
|
113
|
+
'VEHICLE_WINDOWS_OPEN',
|
|
114
|
+
'VEHICLE_WINDOWS_CLOSED',
|
|
115
|
+
'VEHICLE_ALERT',
|
|
116
|
+
'VEHICLE_FATAL',
|
|
117
|
+
'VEHICLE_PRICING_CHANGED',
|
|
118
|
+
'VEHICLE_GROUP_CHANGED',
|
|
119
|
+
'VEHICLE_UPDATE_ODOMETER',
|
|
120
|
+
'VEHICLE_UPDATE_STATUS',
|
|
121
|
+
'VEHICLE_UPDATE_GPS_MANUAL',
|
|
122
|
+
'VEHICLE_UPDATE_GPS_SIM',
|
|
123
|
+
'VEHICLE_RFID_SYNC',
|
|
124
|
+
'VEHICLE_PREAUTH_CONFIRMED',
|
|
125
|
+
'VEHICLE_PREAUTH_REJECTED',
|
|
126
|
+
'VEHICLE_PREAUTH_EXPIRED',
|
|
127
|
+
'VEHICLE_PREAUTH_CANCELLED',
|
|
128
|
+
'USER_PRODUCT_INVOICE_CANCELLED',
|
|
129
|
+
'USER_TRIP_INVOICE_CANCELLED',
|
|
130
|
+
'USER_PRODUCT_INVOICE_REFUSED',
|
|
131
|
+
'USER_TRIP_INVOICE_REFUSED',
|
|
132
|
+
'USER_TRIP_INVOICE_PAID',
|
|
133
|
+
'USER_PRODUCT_INVOICE_PAID',
|
|
134
|
+
'USER_TRIP_INVOICE_REFUNDED',
|
|
135
|
+
'USER_PRODUCT_INVOICE_REFUNDED',
|
|
136
|
+
'USER_PLAN_SUBSCRIBED',
|
|
137
|
+
'USER_PLAN_UNSUBSCRIBED',
|
|
138
|
+
'USER_REFERRAL_CREATED',
|
|
139
|
+
'USER_REFERRAL_CHECKED',
|
|
140
|
+
'USER_REPORT_CREATED',
|
|
141
|
+
'USER_REPORT_UPDATED',
|
|
142
|
+
'USER_DOC_UPDATED',
|
|
143
|
+
'USER_PLAN_RENEWED',
|
|
144
|
+
'USER_BILLING_GROUP_ADDED',
|
|
145
|
+
'USER_BILLING_GROUP_REMOVED',
|
|
146
|
+
'VEHICLE_ADDED_TO_SERVICE',
|
|
147
|
+
'VEHICLE_REMOVED_FROM_SERVICE',
|
|
148
|
+
'USER_PLAN_RENEWAL',
|
|
149
|
+
'USER_PLAN_CANCELED',
|
|
150
|
+
'USER_PLAN_UPDATED',
|
|
151
|
+
'USER_RFIDPINCODE_REQUESTED',
|
|
152
|
+
'VEHICLE_REFILLED',
|
|
153
|
+
'VEHICLE_BLE_AUTH',
|
|
154
|
+
'VEHICLE_FIRMWARE_UPDATE',
|
|
155
|
+
'USER_TRIP_EVENT_MAP_DISPLAY_GDPR',
|
|
156
|
+
'USER_AUTOMATICALLY_REFUNDED',
|
|
157
|
+
'USER_TRIP_CREDIT_REFUNDED',
|
|
158
|
+
'USER_PRODUCT_CREDIT_REFUNDED',
|
|
159
|
+
'USER_CREDIT_REFUNDED',
|
|
160
|
+
'USER_ALL_CREDIT_REFUNDED',
|
|
161
|
+
'USER_PREPAYMENT_SUCCEEDED',
|
|
162
|
+
'USER_PREPAYMENT_FAILED',
|
|
163
|
+
'USER_CREATE_SUBSCRIPTION',
|
|
164
|
+
'USER_UPDATE_SUBSCRIPTION',
|
|
165
|
+
]);
|
|
166
|
+
|
|
167
|
+
export type EventType = z.infer<typeof EventTypeList>;
|
|
168
|
+
export type EventFilters = {
|
|
169
|
+
/**
|
|
170
|
+
* Format: yyyy-MM-dd'T'HH:mm:ssZ
|
|
171
|
+
* default now
|
|
172
|
+
*/
|
|
173
|
+
startDate?: string;
|
|
174
|
+
/**
|
|
175
|
+
* Format: yyyy-MM-dd'T'HH:mm:ssZ
|
|
176
|
+
* default now plus 2 months
|
|
177
|
+
*/
|
|
178
|
+
endDate?: string;
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
export const getEventsByType = async (
|
|
182
|
+
client: Client,
|
|
183
|
+
type: EventType,
|
|
184
|
+
options?: PaginableOptions<EventFilters>
|
|
185
|
+
): Promise<PaginableResponse<Event>> => {
|
|
186
|
+
const resultStatus = EventTypeList.safeParse(type);
|
|
187
|
+
if (!resultStatus.success) {
|
|
188
|
+
throw new TypeError('Invalid status', {
|
|
189
|
+
cause: resultStatus.error.issues,
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
const date = new Date();
|
|
193
|
+
date.setMilliseconds(0);
|
|
194
|
+
const startDate = date.toISOString().replace('.000Z', 'Z');
|
|
195
|
+
date.setMonth(date.getMonth() + 2);
|
|
196
|
+
const endDate = date.toISOString().replace('.000Z', 'Z');
|
|
197
|
+
const EventFiltersSchema = z.object({
|
|
198
|
+
startDate: z.string().datetime({ offset: false, precision: 0 }).default(startDate),
|
|
199
|
+
endDate: z.string().datetime({ offset: false, precision: 0 }).default(endDate),
|
|
200
|
+
});
|
|
201
|
+
const PaginableOptionsSchema = createPaginableOptionsSchema(EventFiltersSchema).default({});
|
|
202
|
+
|
|
203
|
+
const resultOptions = PaginableOptionsSchema.safeParse(options);
|
|
204
|
+
if (!resultOptions.success) {
|
|
205
|
+
throw new TypeError('Invalid options', {
|
|
206
|
+
cause: resultOptions.error.issues,
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
const finalOptions = resultOptions.data;
|
|
211
|
+
|
|
212
|
+
const searchParams = new URLSearchParams();
|
|
213
|
+
searchParams.append('page', finalOptions.page!.toString());
|
|
214
|
+
searchParams.append('pageSize', finalOptions.pageSize!.toString());
|
|
215
|
+
|
|
216
|
+
Object.entries(finalOptions.filters!).forEach(([key, value]) => {
|
|
217
|
+
if (value === undefined) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
searchParams.append(key, value as string);
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
return client
|
|
224
|
+
.get<
|
|
225
|
+
Event[]
|
|
226
|
+
>(`/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/events/types/${type}?${searchParams.toString()}`)
|
|
227
|
+
.then(({ data, headers }) => {
|
|
228
|
+
return {
|
|
229
|
+
data,
|
|
230
|
+
page: headers.number,
|
|
231
|
+
pageSize: headers.size,
|
|
232
|
+
total: headers.totalelements,
|
|
233
|
+
totalPages: headers.totalpages,
|
|
234
|
+
};
|
|
235
|
+
});
|
|
236
|
+
};
|
|
237
|
+
|
|
238
|
+
export const getEvents = async (
|
|
239
|
+
client: Client,
|
|
240
|
+
options?: PaginableOptions<EventFilters>
|
|
241
|
+
): Promise<PaginableResponse<Event>> => {
|
|
242
|
+
const date = new Date();
|
|
243
|
+
date.setMilliseconds(0);
|
|
244
|
+
const startDate = date.toISOString().replace('.000Z', 'Z');
|
|
245
|
+
date.setMonth(date.getMonth() + 2);
|
|
246
|
+
const endDate = date.toISOString().replace('.000Z', 'Z');
|
|
247
|
+
const EventFiltersSchema = z.object({
|
|
248
|
+
startDate: z.string().datetime({ offset: false, precision: 0 }).default(startDate),
|
|
249
|
+
endDate: z.string().datetime({ offset: false, precision: 0 }).default(endDate),
|
|
250
|
+
});
|
|
251
|
+
const PaginableOptionsSchema = createPaginableOptionsSchema(EventFiltersSchema).default({});
|
|
252
|
+
|
|
253
|
+
const resultOptions = PaginableOptionsSchema.safeParse(options);
|
|
254
|
+
if (!resultOptions.success) {
|
|
255
|
+
throw new TypeError('Invalid options', {
|
|
256
|
+
cause: resultOptions.error.issues,
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
const finalOptions = resultOptions.data;
|
|
261
|
+
|
|
262
|
+
const searchParams = new URLSearchParams();
|
|
263
|
+
searchParams.append('page', finalOptions.page!.toString());
|
|
264
|
+
searchParams.append('pageSize', finalOptions.pageSize!.toString());
|
|
265
|
+
|
|
266
|
+
Object.entries(finalOptions.filters!).forEach(([key, value]) => {
|
|
267
|
+
if (value === undefined) {
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
searchParams.append(key, value as string);
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
return client
|
|
274
|
+
.get<
|
|
275
|
+
Event[]
|
|
276
|
+
>(`/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/events/types?${searchParams.toString()}`)
|
|
277
|
+
.then(({ data, headers }) => {
|
|
278
|
+
return {
|
|
279
|
+
data,
|
|
280
|
+
page: headers.number,
|
|
281
|
+
pageSize: headers.size,
|
|
282
|
+
total: headers.totalelements,
|
|
283
|
+
totalPages: headers.totalpages,
|
|
284
|
+
};
|
|
285
|
+
});
|
|
286
|
+
};
|
package/src/index.ts
ADDED
package/src/types.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type ExtraInfo = {
|
|
2
|
+
bookingId: string;
|
|
3
|
+
[key: string]: any;
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
export type Event = {
|
|
7
|
+
fleetId: string;
|
|
8
|
+
userId: string;
|
|
9
|
+
origin: string;
|
|
10
|
+
type: string;
|
|
11
|
+
date: string;
|
|
12
|
+
failed: boolean;
|
|
13
|
+
originId?: string;
|
|
14
|
+
insertionDate?: string;
|
|
15
|
+
deletionDate?: string;
|
|
16
|
+
doNotTrack: boolean;
|
|
17
|
+
extraInfo: ExtraInfo[];
|
|
18
|
+
[key: string]: any;
|
|
19
|
+
};
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"include": ["src"],
|
|
3
|
+
"exclude": ["**/*.test.ts"],
|
|
4
|
+
"compilerOptions": {
|
|
5
|
+
"module": "esnext",
|
|
6
|
+
"target": "esnext",
|
|
7
|
+
"lib": ["esnext"],
|
|
8
|
+
"declaration": true,
|
|
9
|
+
"strict": true,
|
|
10
|
+
"moduleResolution": "node",
|
|
11
|
+
"skipLibCheck": true,
|
|
12
|
+
"esModuleInterop": true,
|
|
13
|
+
"outDir": "dist",
|
|
14
|
+
"rootDir": "src"
|
|
15
|
+
}
|
|
16
|
+
}
|
package/tsup.config.ts
ADDED