@edgeiq/edgeiq-api-js 1.7.5 → 1.7.6
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/OIDC/index.js +137 -238
- package/dist/OIDC/models.js +1 -2
- package/dist/__tests__/auth.test.js +56 -147
- package/dist/__tests__/command.test.js +80 -202
- package/dist/__tests__/companies.test.js +121 -269
- package/dist/__tests__/deviceErrors.test.js +16 -62
- package/dist/__tests__/deviceTypes.test.js +78 -200
- package/dist/__tests__/devices.test.js +84 -221
- package/dist/__tests__/discoveredDevice.test.js +57 -145
- package/dist/__tests__/files.test.js +58 -152
- package/dist/__tests__/ingestors.test.js +70 -188
- package/dist/__tests__/integrations.test.js +95 -235
- package/dist/__tests__/lwm2m.test.js +17 -62
- package/dist/__tests__/notifications.test.js +16 -62
- package/dist/__tests__/pollableAttributes.test.js +60 -162
- package/dist/__tests__/rules.test.js +60 -162
- package/dist/__tests__/scheduledJobs.test.js +60 -162
- package/dist/__tests__/translators.test.js +60 -162
- package/dist/__tests__/users.test.js +77 -197
- package/dist/auth/index.js +94 -167
- package/dist/bulkResponses/index.js +44 -110
- package/dist/bulkResponses/models.js +1 -2
- package/dist/commandExecutions/index.js +39 -85
- package/dist/commandExecutions/models.js +1 -2
- package/dist/commands/index.js +196 -342
- package/dist/commands/models.js +2 -5
- package/dist/companies/index.js +150 -272
- package/dist/companies/models.js +1 -2
- package/dist/configurations/index.js +172 -310
- package/dist/configurations/models.js +1 -2
- package/dist/constants.js +69 -85
- package/dist/core/ModelClass.js +11 -18
- package/dist/core/handleResponseError.js +77 -81
- package/dist/core/index.js +30 -38
- package/dist/deviceConfigs/index.js +103 -201
- package/dist/deviceConfigs/models.js +1 -2
- package/dist/deviceErrors/index.js +44 -110
- package/dist/deviceErrors/models.js +1 -2
- package/dist/deviceLocationObservations/index.js +82 -164
- package/dist/deviceLocationObservations/models.js +1 -2
- package/dist/deviceTemplates/index.js +105 -203
- package/dist/deviceTemplates/models.js +1 -2
- package/dist/deviceTransferRequests/index.js +116 -222
- package/dist/deviceTransferRequests/models.js +1 -2
- package/dist/deviceTypes/index.js +328 -554
- package/dist/deviceTypes/models.js +1 -2
- package/dist/devices/index.js +630 -971
- package/dist/devices/models.js +1 -2
- package/dist/discoveredDevices/index.js +190 -328
- package/dist/discoveredDevices/models.js +1 -2
- package/dist/downstreamSystems/index.js +87 -177
- package/dist/downstreamSystems/models.js +1 -2
- package/dist/escrowDevices/index.js +103 -201
- package/dist/escrowDevices/models.js +1 -2
- package/dist/files/index.js +137 -251
- package/dist/files/models.js +1 -2
- package/dist/filtersParser.js +12 -17
- package/dist/gatewayCommands/index.js +103 -201
- package/dist/gatewayCommands/models.js +1 -2
- package/dist/helpers.js +10 -16
- package/dist/index.js +86 -142
- package/dist/ingestors/index.js +103 -201
- package/dist/ingestors/models.js +1 -2
- package/dist/integrations/index.js +159 -273
- package/dist/integrations/models.js +1 -2
- package/dist/log/models.js +1 -2
- package/dist/lwm2m/index.js +23 -72
- package/dist/lwm2m/models.js +1 -2
- package/dist/models/index.js +1 -2
- package/dist/models.js +1 -2
- package/dist/notifications/index.js +44 -110
- package/dist/notifications/models.js +1 -2
- package/dist/pollableAttributes/index.js +87 -177
- package/dist/pollableAttributes/models.js +1 -2
- package/dist/regions/index.js +72 -154
- package/dist/regions/models.js +1 -2
- package/dist/reports/index.js +88 -178
- package/dist/reports/models.js +1 -2
- package/dist/retryOptions/models.js +1 -2
- package/dist/rules/index.js +131 -245
- package/dist/rules/models.js +1 -2
- package/dist/scheduledJobs/index.js +183 -321
- package/dist/scheduledJobs/models.js +1 -2
- package/dist/secrets/index.js +88 -178
- package/dist/secrets/models.js +1 -2
- package/dist/settings/index.js +119 -227
- package/dist/settings/models.js +1 -2
- package/dist/settingsApplicationRecord/index.js +27 -65
- package/dist/settingsApplicationRecord/models.js +1 -2
- package/dist/softwareUpdates/index.js +194 -350
- package/dist/softwareUpdates/models.js +1 -2
- package/dist/stats/index.js +64 -126
- package/dist/stats/models.js +1 -2
- package/dist/systemCommandJobs/index.js +72 -154
- package/dist/systemCommandJobs/models.js +1 -2
- package/dist/systemCommands/index.js +87 -177
- package/dist/systemCommands/models.js +1 -2
- package/dist/testConstants.js +57 -71
- package/dist/translators/index.js +103 -201
- package/dist/translators/models.js +1 -2
- package/dist/userTypes/index.js +87 -177
- package/dist/userTypes/models.js +1 -2
- package/dist/users/index.js +149 -271
- package/dist/users/models.js +1 -2
- package/dist/workflowActions/index.js +132 -246
- package/dist/workflowActions/models.js +1 -2
- package/dist/workflowDefinitions/index.js +104 -202
- package/dist/workflowDefinitions/models.js +1 -2
- package/dist/workflowExecutions/index.js +27 -65
- package/dist/workflowExecutions/models.js +1 -2
- package/dist/workflows/index.js +39 -85
- package/dist/workflows/models.js +1 -2
- package/package.json +1 -1
package/dist/constants.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.DefaultPagination = exports.MethodsActions = exports.Endpoints = exports.BaseEndpoints = exports.getAttachMessage = exports.ErrorParts = exports.ResponseErrorsMessages = exports.ResponseErrorsNames = exports.Errors = exports.defaultBaseUrl = void 0;
|
|
4
|
-
exports.defaultBaseUrl = 'https://api.edgeiq.io/api/v1/platform/';
|
|
5
|
-
exports.Errors = {
|
|
1
|
+
export const defaultBaseUrl = 'https://api.edgeiq.io/api/v1/platform/';
|
|
2
|
+
export const Errors = {
|
|
6
3
|
noInstance: 'Use EdgeIQAPI.init() instead',
|
|
7
4
|
instanceInitiated: 'Instantiation failed: EdgeIQAPI has already been initiated.',
|
|
8
5
|
};
|
|
9
|
-
|
|
6
|
+
export const ResponseErrorsNames = {
|
|
10
7
|
disconnected: 'No connection error',
|
|
11
8
|
unauthorized: 'Unauthorization error',
|
|
12
9
|
timeout: 'Timeout error',
|
|
@@ -26,7 +23,7 @@ exports.ResponseErrorsNames = {
|
|
|
26
23
|
unexpected: 'Unexpected error',
|
|
27
24
|
deviceLocationMissingValues: 'Device location observation missing required values',
|
|
28
25
|
};
|
|
29
|
-
|
|
26
|
+
export const ResponseErrorsMessages = {
|
|
30
27
|
disconnected: 'Please check your internet connection. If your internet appear to be fine, our services may be undergoing maintenance. Please try again in a few minutes.',
|
|
31
28
|
unauthorized: 'You are not authorized to perform this action. Logging you out. Login to refresh your session permissions.',
|
|
32
29
|
timeout: 'Your session has expired. Please login to resume your session.',
|
|
@@ -38,40 +35,27 @@ exports.ResponseErrorsMessages = {
|
|
|
38
35
|
issueCommand: 'There was an error issuing this command. Please try again.',
|
|
39
36
|
csvUpload: 'There was an error performing this CSV operation. Please try again.',
|
|
40
37
|
fileUpload: 'There was an error uploading files for this software package. Please try again.',
|
|
41
|
-
deviceId:
|
|
42
|
-
return "A Device with unique id '" + unique_id + "' already exists";
|
|
43
|
-
},
|
|
38
|
+
deviceId: (unique_id) => `A Device with unique id '${unique_id}' already exists`,
|
|
44
39
|
deviceCharacters: 'A unique ID can only contain lower case letters, numbers or special characters -, : or _',
|
|
45
|
-
emailUsed:
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
},
|
|
51
|
-
nullIdConstraint: function (model) {
|
|
52
|
-
return model.charAt(0).toLocaleUpperCase() + model.slice(1) + " not found";
|
|
53
|
-
},
|
|
54
|
-
unEditableIntegration: function (type) {
|
|
55
|
-
return "Intregration of type " + type + " cannot be edited";
|
|
56
|
-
},
|
|
57
|
-
integrationMissinValues: function (type, values) {
|
|
58
|
-
return "The " + (values.length === 1 ? 'value' : 'values') + " " + values.join(', ') + " " + (values.length === 1 ? 'is' : 'are') + " required for integration of type: " + type;
|
|
59
|
-
},
|
|
40
|
+
emailUsed: (email) => `A User with email '${email}' already exists`,
|
|
41
|
+
uniqueConstraint: (model) => `A ${model} with the same key already exists`,
|
|
42
|
+
nullIdConstraint: (model) => `${model.charAt(0).toLocaleUpperCase() + model.slice(1)} not found`,
|
|
43
|
+
unEditableIntegration: (type) => `Intregration of type ${type} cannot be edited`,
|
|
44
|
+
integrationMissinValues: (type, values) => `The ${values.length === 1 ? 'value' : 'values'} ${values.join(', ')} ${values.length === 1 ? 'is' : 'are'} required for integration of type: ${type}`,
|
|
60
45
|
unexpected: 'Unexpected error has ocurred',
|
|
61
46
|
invalidTokenExpiration: 'Invalid session token expiration. Session token expiration must be greater than 0 and less than one week.',
|
|
62
47
|
tooLong: 'Account name is too long',
|
|
63
48
|
};
|
|
64
|
-
|
|
49
|
+
export const ErrorParts = {
|
|
65
50
|
deviceExists: 'A Device with unique id',
|
|
66
|
-
uniqueIdError: "
|
|
51
|
+
uniqueIdError: `"unique_id" can only contain lower case letters, numbers or the special charaters "-", ":", or "_"`,
|
|
67
52
|
duplicateKey: 'duplicate key error collection',
|
|
68
53
|
uniqueConstraint: 'duplicate key value violates unique constraint',
|
|
69
54
|
};
|
|
70
|
-
|
|
71
|
-
return model
|
|
55
|
+
export const getAttachMessage = (model, action, baseModel) => {
|
|
56
|
+
return `${model} ${action === 'attach' ? 'attached to' : 'detached from'} ${baseModel}`;
|
|
72
57
|
};
|
|
73
|
-
|
|
74
|
-
exports.BaseEndpoints = {
|
|
58
|
+
export const BaseEndpoints = {
|
|
75
59
|
auth: 'user',
|
|
76
60
|
bulkResponse: 'bulk_responses',
|
|
77
61
|
notification: 'notifications',
|
|
@@ -118,67 +102,67 @@ exports.BaseEndpoints = {
|
|
|
118
102
|
workflowDefinitions: 'workflow_definitions',
|
|
119
103
|
workflowExecutions: 'workflow_executions',
|
|
120
104
|
};
|
|
121
|
-
|
|
105
|
+
export const Endpoints = {
|
|
122
106
|
me: 'me',
|
|
123
|
-
login:
|
|
124
|
-
apiTokenReset:
|
|
125
|
-
passwordResetRequest:
|
|
126
|
-
tokenResetRequest:
|
|
127
|
-
passwordReset:
|
|
128
|
-
bulkResponse:
|
|
129
|
-
notification:
|
|
130
|
-
file:
|
|
131
|
-
command:
|
|
132
|
-
commandExecution:
|
|
133
|
-
company:
|
|
134
|
-
configuration:
|
|
135
|
-
deviceConfig:
|
|
136
|
-
deviceError:
|
|
137
|
-
deviceTransferRequest:
|
|
138
|
-
deviceTemplate:
|
|
139
|
-
deviceType:
|
|
140
|
-
device:
|
|
141
|
-
deviceLwm2mObjetLinks:
|
|
142
|
-
deviceLocationObservation:
|
|
143
|
-
downstreamSystem:
|
|
144
|
-
discoveredDevice:
|
|
145
|
-
escrowDevice:
|
|
146
|
-
gatewayCommand:
|
|
147
|
-
ingestor:
|
|
148
|
-
integration:
|
|
149
|
-
integrationEvent:
|
|
150
|
-
logs:
|
|
151
|
-
lwm2mStates:
|
|
152
|
-
pollableAttribute:
|
|
153
|
-
region:
|
|
154
|
-
report:
|
|
155
|
-
rule:
|
|
156
|
-
scheduledJobs:
|
|
157
|
-
secret:
|
|
158
|
-
setting:
|
|
159
|
-
settingsApplicationRecord:
|
|
160
|
-
softwareUpdate:
|
|
161
|
-
statsDevicesByHeartbeat:
|
|
162
|
-
statsDiscoveredDevicesByHeartbeat:
|
|
163
|
-
statsDevicesByType:
|
|
164
|
-
statsCellUsage:
|
|
165
|
-
systemCommand:
|
|
166
|
-
systemCommandJob:
|
|
167
|
-
translator:
|
|
168
|
-
userType:
|
|
169
|
-
user:
|
|
170
|
-
workflows:
|
|
171
|
-
workflowAction:
|
|
172
|
-
workflowDefinition:
|
|
173
|
-
workflowExecutions:
|
|
107
|
+
login: `${BaseEndpoints.auth}/authenticate`,
|
|
108
|
+
apiTokenReset: `${BaseEndpoints.auth}/api_token_reset`,
|
|
109
|
+
passwordResetRequest: `${BaseEndpoints.auth}/password_reset_request`,
|
|
110
|
+
tokenResetRequest: `${BaseEndpoints.auth}/api_token_reset`,
|
|
111
|
+
passwordReset: `${BaseEndpoints.auth}/password_reset`,
|
|
112
|
+
bulkResponse: `${BaseEndpoints.bulkResponse}`,
|
|
113
|
+
notification: `${BaseEndpoints.notification}`,
|
|
114
|
+
file: `${BaseEndpoints.file}`,
|
|
115
|
+
command: `${BaseEndpoints.command}`,
|
|
116
|
+
commandExecution: `${BaseEndpoints.commandExecution}`,
|
|
117
|
+
company: `${BaseEndpoints.company}`,
|
|
118
|
+
configuration: `${BaseEndpoints.configuration}`,
|
|
119
|
+
deviceConfig: `${BaseEndpoints.deviceConfig}`,
|
|
120
|
+
deviceError: `${BaseEndpoints.deviceError}`,
|
|
121
|
+
deviceTransferRequest: `${BaseEndpoints.deviceTransferRequest}`,
|
|
122
|
+
deviceTemplate: `${BaseEndpoints.deviceTemplate}`,
|
|
123
|
+
deviceType: `${BaseEndpoints.deviceType}`,
|
|
124
|
+
device: `${BaseEndpoints.device}`,
|
|
125
|
+
deviceLwm2mObjetLinks: `${BaseEndpoints.lwm2mObjectLinks}`,
|
|
126
|
+
deviceLocationObservation: `${BaseEndpoints.deviceLocationObservation}`,
|
|
127
|
+
downstreamSystem: `${BaseEndpoints.downstreamSystem}`,
|
|
128
|
+
discoveredDevice: `${BaseEndpoints.discoveredDevice}`,
|
|
129
|
+
escrowDevice: `${BaseEndpoints.escrowDevice}`,
|
|
130
|
+
gatewayCommand: `${BaseEndpoints.gatewayCommand}`,
|
|
131
|
+
ingestor: `${BaseEndpoints.ingestor}`,
|
|
132
|
+
integration: `${BaseEndpoints.integration}`,
|
|
133
|
+
integrationEvent: `${BaseEndpoints.integrationEvent}`,
|
|
134
|
+
logs: `${BaseEndpoints.logs}`,
|
|
135
|
+
lwm2mStates: `${BaseEndpoints.lwm2mState}`,
|
|
136
|
+
pollableAttribute: `${BaseEndpoints.pollableAttribute}`,
|
|
137
|
+
region: `${BaseEndpoints.region}`,
|
|
138
|
+
report: `${BaseEndpoints.report}`,
|
|
139
|
+
rule: `${BaseEndpoints.rule}`,
|
|
140
|
+
scheduledJobs: `${BaseEndpoints.scheduledJobs}`,
|
|
141
|
+
secret: `${BaseEndpoints.secret}`,
|
|
142
|
+
setting: `${BaseEndpoints.setting}`,
|
|
143
|
+
settingsApplicationRecord: `${BaseEndpoints.settingsApplicationRecord}`,
|
|
144
|
+
softwareUpdate: `${BaseEndpoints.softwareUpdate}`,
|
|
145
|
+
statsDevicesByHeartbeat: `${BaseEndpoints.stats}/devices/count_by_heartbeat_status`,
|
|
146
|
+
statsDiscoveredDevicesByHeartbeat: `${BaseEndpoints.stats}/discovered_devices/count_by_heartbeat_status`,
|
|
147
|
+
statsDevicesByType: `${BaseEndpoints.stats}/devices/count_by_type`,
|
|
148
|
+
statsCellUsage: `${BaseEndpoints.stats}/cumulative_cell_usage`,
|
|
149
|
+
systemCommand: `${BaseEndpoints.systemCommand}`,
|
|
150
|
+
systemCommandJob: `${BaseEndpoints.systemCommandJob}`,
|
|
151
|
+
translator: `${BaseEndpoints.translator}`,
|
|
152
|
+
userType: `${BaseEndpoints.userType}`,
|
|
153
|
+
user: `${BaseEndpoints.user}`,
|
|
154
|
+
workflows: `${BaseEndpoints.workflows}`,
|
|
155
|
+
workflowAction: `${BaseEndpoints.workflowActions}`,
|
|
156
|
+
workflowDefinition: `${BaseEndpoints.workflowDefinitions}`,
|
|
157
|
+
workflowExecutions: `${BaseEndpoints.workflowExecutions}`,
|
|
174
158
|
};
|
|
175
|
-
|
|
159
|
+
export const MethodsActions = {
|
|
176
160
|
post: 'creating',
|
|
177
161
|
put: 'updating',
|
|
178
162
|
delete: 'deleting',
|
|
179
163
|
get: 'loading',
|
|
180
164
|
};
|
|
181
|
-
|
|
165
|
+
export const DefaultPagination = {
|
|
182
166
|
page: 1,
|
|
183
167
|
itemsPerPage: 12,
|
|
184
168
|
};
|
package/dist/core/ModelClass.js
CHANGED
|
@@ -1,19 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var BaseModelClass = (function () {
|
|
6
|
-
function BaseModelClass() {
|
|
1
|
+
import { EdgeIQAPI } from '.';
|
|
2
|
+
export class BaseModelClass {
|
|
3
|
+
static getAxios() {
|
|
4
|
+
return EdgeIQAPI.getAxios();
|
|
7
5
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
_1.EdgeIQAPI.logError(error);
|
|
16
|
-
};
|
|
17
|
-
return BaseModelClass;
|
|
18
|
-
}());
|
|
19
|
-
exports.BaseModelClass = BaseModelClass;
|
|
6
|
+
static logAction(message) {
|
|
7
|
+
EdgeIQAPI.logAction(message);
|
|
8
|
+
}
|
|
9
|
+
static logError(error) {
|
|
10
|
+
EdgeIQAPI.logError(error);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -1,25 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.handleResponseError = void 0;
|
|
4
|
-
var constants_1 = require("../constants");
|
|
5
|
-
var handleResponseError = function (error) {
|
|
1
|
+
import { ResponseErrorsMessages, Endpoints, MethodsActions, BaseEndpoints, ErrorParts, ResponseErrorsNames, } from '../constants';
|
|
2
|
+
export const handleResponseError = (error) => {
|
|
6
3
|
if (!error.response) {
|
|
7
4
|
return handleDisconnected();
|
|
8
5
|
}
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
const status = error.response.status;
|
|
7
|
+
let url = error.response.request.path;
|
|
11
8
|
if (!url) {
|
|
12
9
|
url = error.response.request.responseURL;
|
|
13
10
|
}
|
|
14
11
|
if ((status === 401 || status === 404) &&
|
|
15
12
|
url &&
|
|
16
|
-
url.indexOf(
|
|
13
|
+
url.indexOf(Endpoints.login) >= 0) {
|
|
17
14
|
return handleCredentials(error);
|
|
18
15
|
}
|
|
19
|
-
if (status === 401 && url && url.indexOf(
|
|
16
|
+
if (status === 401 && url && url.indexOf(Endpoints.apiTokenReset) >= 0) {
|
|
20
17
|
return handleCredentials(error);
|
|
21
18
|
}
|
|
22
|
-
if (status === 400 && url && url.indexOf(
|
|
19
|
+
if (status === 400 && url && url.indexOf(Endpoints.passwordReset) >= 0) {
|
|
23
20
|
return handlePasswordReset(error);
|
|
24
21
|
}
|
|
25
22
|
if (status === 401) {
|
|
@@ -30,53 +27,52 @@ var handleResponseError = function (error) {
|
|
|
30
27
|
}
|
|
31
28
|
return handleOtherErrors(error);
|
|
32
29
|
};
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
return Promise.reject(createError(constants_1.ResponseErrorsMessages.unauthorized, constants_1.ResponseErrorsNames.unauthorized));
|
|
30
|
+
const handleUnauthorized = () => {
|
|
31
|
+
return Promise.reject(createError(ResponseErrorsMessages.unauthorized, ResponseErrorsNames.unauthorized));
|
|
36
32
|
};
|
|
37
|
-
|
|
38
|
-
return Promise.reject(createError(
|
|
33
|
+
const handleDisconnected = () => {
|
|
34
|
+
return Promise.reject(createError(ResponseErrorsMessages.disconnected, ResponseErrorsNames.disconnected));
|
|
39
35
|
};
|
|
40
|
-
|
|
41
|
-
return Promise.reject(createError(
|
|
36
|
+
const handleSessionTimeout = () => {
|
|
37
|
+
return Promise.reject(createError(ResponseErrorsMessages.timeout, ResponseErrorsNames.timeout));
|
|
42
38
|
};
|
|
43
|
-
|
|
39
|
+
const handleCredentials = (error) => {
|
|
44
40
|
var _a;
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
let uiErrorMessage = ResponseErrorsMessages.credentials;
|
|
42
|
+
const responseErrorMessage = ((_a = error.response) === null || _a === void 0 ? void 0 : _a.data)
|
|
47
43
|
.messages[0];
|
|
48
44
|
if (responseErrorMessage &&
|
|
49
|
-
responseErrorMessage.toLowerCase() ===
|
|
50
|
-
uiErrorMessage =
|
|
45
|
+
responseErrorMessage.toLowerCase() === ResponseErrorsMessages.notFound) {
|
|
46
|
+
uiErrorMessage = ResponseErrorsMessages.noUser;
|
|
51
47
|
}
|
|
52
|
-
else if (responseErrorMessage ===
|
|
53
|
-
uiErrorMessage =
|
|
48
|
+
else if (responseErrorMessage === ResponseErrorsMessages.invalidPassword) {
|
|
49
|
+
uiErrorMessage = ResponseErrorsMessages.invalidPassword;
|
|
54
50
|
}
|
|
55
|
-
return Promise.reject(createError(uiErrorMessage,
|
|
51
|
+
return Promise.reject(createError(uiErrorMessage, ResponseErrorsNames.credentials));
|
|
56
52
|
};
|
|
57
|
-
|
|
53
|
+
const handlePasswordReset = (error) => {
|
|
58
54
|
var _a, _b, _c;
|
|
59
55
|
if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.data) &&
|
|
60
56
|
((_b = error.response) === null || _b === void 0 ? void 0 : _b.data).error) {
|
|
61
|
-
|
|
62
|
-
if (errorMessage ===
|
|
63
|
-
return Promise.reject(
|
|
57
|
+
const errorMessage = error.response.data.error.toLowerCase();
|
|
58
|
+
if (errorMessage === ResponseErrorsMessages.token.toLocaleLowerCase()) {
|
|
59
|
+
return Promise.reject(ResponseErrorsMessages.token);
|
|
64
60
|
}
|
|
65
61
|
else if (errorMessage ===
|
|
66
|
-
|
|
67
|
-
return Promise.reject(
|
|
62
|
+
ResponseErrorsMessages.invalidPassword.toLocaleLowerCase()) {
|
|
63
|
+
return Promise.reject(ResponseErrorsMessages.invalidPassword);
|
|
68
64
|
}
|
|
69
|
-
return Promise.reject(createError((_c = error.response.data.messages) === null || _c === void 0 ? void 0 : _c.join('\n'),
|
|
65
|
+
return Promise.reject(createError((_c = error.response.data.messages) === null || _c === void 0 ? void 0 : _c.join('\n'), ResponseErrorsNames.credentials));
|
|
70
66
|
}
|
|
71
|
-
return Promise.reject(createError(
|
|
67
|
+
return Promise.reject(createError(ResponseErrorsMessages.unexpected, ResponseErrorsNames.unexpected));
|
|
72
68
|
};
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
const errorMessages = (error) => { var _a, _b; return (_b = ((_a = error.response) === null || _a === void 0 ? void 0 : _a.data).messages) === null || _b === void 0 ? void 0 : _b.join('\n'); };
|
|
70
|
+
const handleOtherErrors = (error) => {
|
|
75
71
|
var _a, _b, _c;
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
72
|
+
let path = null;
|
|
73
|
+
let model = null;
|
|
74
|
+
let action = '';
|
|
75
|
+
let errorName = '';
|
|
80
76
|
if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.request) &&
|
|
81
77
|
error.response.request.path &&
|
|
82
78
|
error.response.config &&
|
|
@@ -85,82 +81,82 @@ var handleOtherErrors = function (error) {
|
|
|
85
81
|
model = path.split('?')[0];
|
|
86
82
|
model = model.split('/')[0];
|
|
87
83
|
}
|
|
88
|
-
|
|
89
|
-
|
|
84
|
+
const parseErrorMessages = errorMessages(error);
|
|
85
|
+
const errorResponseData = (_b = error === null || error === void 0 ? void 0 : error.response) === null || _b === void 0 ? void 0 : _b.data;
|
|
90
86
|
switch ((_c = error.response) === null || _c === void 0 ? void 0 : _c.config.method) {
|
|
91
87
|
case 'put':
|
|
92
|
-
if (model ===
|
|
93
|
-
errorName =
|
|
88
|
+
if (model === BaseEndpoints.deviceConfig && parseErrorMessages) {
|
|
89
|
+
errorName = ResponseErrorsNames.deviceConfig;
|
|
94
90
|
}
|
|
95
|
-
else if (errorResponseData.error ===
|
|
91
|
+
else if (errorResponseData.error === ResponseErrorsNames.validationError &&
|
|
96
92
|
parseErrorMessages) {
|
|
97
|
-
errorName =
|
|
93
|
+
errorName = ResponseErrorsNames.validationError;
|
|
98
94
|
}
|
|
99
|
-
action =
|
|
95
|
+
action = MethodsActions.put;
|
|
100
96
|
break;
|
|
101
97
|
case 'post':
|
|
102
|
-
if (path && path.indexOf(
|
|
103
|
-
return Promise.reject(createError(
|
|
98
|
+
if (path && path.indexOf(BaseEndpoints.gatewayCommand) !== -1) {
|
|
99
|
+
return Promise.reject(createError(ResponseErrorsMessages.issueCommand, ResponseErrorsNames.issueCommand));
|
|
104
100
|
}
|
|
105
|
-
else if (path && path.indexOf(
|
|
106
|
-
return Promise.reject(createError(
|
|
101
|
+
else if (path && path.indexOf(BaseEndpoints.gatewayCsvUpload) !== -1) {
|
|
102
|
+
return Promise.reject(createError(ResponseErrorsMessages.csvUpload, ResponseErrorsNames.csvUpload));
|
|
107
103
|
}
|
|
108
|
-
else if (path && path.indexOf(
|
|
109
|
-
return Promise.reject(createError(
|
|
104
|
+
else if (path && path.indexOf(BaseEndpoints.file) !== -1) {
|
|
105
|
+
return Promise.reject(createError(ResponseErrorsMessages.fileUpload, ResponseErrorsNames.fileUpload));
|
|
110
106
|
}
|
|
111
107
|
if (errorResponseData.messages) {
|
|
112
|
-
|
|
113
|
-
if (model ===
|
|
114
|
-
if (text && text.indexOf(
|
|
115
|
-
errorName =
|
|
108
|
+
const text = errorResponseData.messages[0];
|
|
109
|
+
if (model === BaseEndpoints.device) {
|
|
110
|
+
if (text && text.indexOf(ErrorParts.deviceExists) !== -1) {
|
|
111
|
+
errorName = ResponseErrorsNames.duplicatedDevice;
|
|
116
112
|
}
|
|
117
|
-
else if (errorResponseData.messages[0] ===
|
|
118
|
-
errorName =
|
|
113
|
+
else if (errorResponseData.messages[0] === ErrorParts.uniqueIdError) {
|
|
114
|
+
errorName = ResponseErrorsNames.deviceCharacters;
|
|
119
115
|
}
|
|
120
116
|
}
|
|
121
|
-
else if (model ===
|
|
122
|
-
errorName =
|
|
117
|
+
else if (model === BaseEndpoints.deviceConfig && parseErrorMessages) {
|
|
118
|
+
errorName = ResponseErrorsNames.deviceConfig;
|
|
123
119
|
}
|
|
124
|
-
else if (text && text.indexOf(
|
|
125
|
-
errorName =
|
|
120
|
+
else if (text && text.indexOf(ErrorParts.uniqueConstraint) !== -1) {
|
|
121
|
+
errorName = ResponseErrorsNames.uniqueConstraint;
|
|
126
122
|
}
|
|
127
|
-
else if (text && text.indexOf(
|
|
128
|
-
errorName =
|
|
129
|
-
error.response.data = createError(text,
|
|
123
|
+
else if (text && text.indexOf(ErrorParts.duplicateKey) !== -1) {
|
|
124
|
+
errorName = ResponseErrorsNames.duplicateKey;
|
|
125
|
+
error.response.data = createError(text, ResponseErrorsNames.duplicateKey);
|
|
130
126
|
}
|
|
131
|
-
else if (errorResponseData.error ===
|
|
127
|
+
else if (errorResponseData.error === ResponseErrorsNames.createError &&
|
|
132
128
|
parseErrorMessages) {
|
|
133
|
-
errorName =
|
|
129
|
+
errorName = ResponseErrorsNames.createError;
|
|
134
130
|
}
|
|
135
|
-
else if (errorResponseData.error ===
|
|
131
|
+
else if (errorResponseData.error === ResponseErrorsNames.validationError &&
|
|
136
132
|
parseErrorMessages) {
|
|
137
|
-
errorName =
|
|
133
|
+
errorName = ResponseErrorsNames.validationError;
|
|
138
134
|
}
|
|
139
135
|
}
|
|
140
136
|
else if (typeof error.response.data === 'string') {
|
|
141
|
-
|
|
142
|
-
return Promise.reject(createError(error.response.data,
|
|
137
|
+
const errorMessage = mapModelError(model, action);
|
|
138
|
+
return Promise.reject(createError(error.response.data, errorMessage));
|
|
143
139
|
}
|
|
144
|
-
action =
|
|
140
|
+
action = MethodsActions.post;
|
|
145
141
|
break;
|
|
146
142
|
case 'delete':
|
|
147
|
-
action =
|
|
143
|
+
action = MethodsActions.delete;
|
|
148
144
|
break;
|
|
149
145
|
case 'get':
|
|
150
|
-
action =
|
|
146
|
+
action = MethodsActions.get;
|
|
151
147
|
break;
|
|
152
148
|
}
|
|
153
149
|
if (parseErrorMessages) {
|
|
154
150
|
return Promise.reject(createError(parseErrorMessages, errorName || action));
|
|
155
151
|
}
|
|
156
152
|
if (errorResponseData.error) {
|
|
157
|
-
return Promise.reject(createError(errorResponseData.error,
|
|
153
|
+
return Promise.reject(createError(errorResponseData.error, ResponseErrorsNames.unexpected));
|
|
158
154
|
}
|
|
159
|
-
|
|
160
|
-
return Promise.reject(createError(errorMessage,
|
|
155
|
+
const errorMessage = mapModelError(model, action);
|
|
156
|
+
return Promise.reject(createError(errorMessage, ResponseErrorsNames.unexpected));
|
|
161
157
|
};
|
|
162
158
|
function mapModelError(path, action) {
|
|
163
|
-
|
|
159
|
+
const models = {
|
|
164
160
|
devices: 'device ',
|
|
165
161
|
user_types: 'role ',
|
|
166
162
|
users: 'user ',
|
|
@@ -178,13 +174,13 @@ function mapModelError(path, action) {
|
|
|
178
174
|
companies: 'account ',
|
|
179
175
|
};
|
|
180
176
|
if (models[path]) {
|
|
181
|
-
return
|
|
177
|
+
return `There was an error ${action} ${models[path]} data.`;
|
|
182
178
|
}
|
|
183
179
|
return 'An error has occurred.';
|
|
184
180
|
}
|
|
185
181
|
function createError(message, name) {
|
|
186
182
|
return {
|
|
187
|
-
message
|
|
188
|
-
name
|
|
183
|
+
message,
|
|
184
|
+
name,
|
|
189
185
|
};
|
|
190
186
|
}
|
package/dist/core/index.js
CHANGED
|
@@ -1,20 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
var constants_1 = require("../constants");
|
|
10
|
-
var handleResponseError_1 = require("./handleResponseError");
|
|
11
|
-
var EdgeIQAPI = (function () {
|
|
12
|
-
function EdgeIQAPI() {
|
|
13
|
-
throw new Error(constants_1.Errors.noInstance);
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { defaultBaseUrl, Errors } from '../constants';
|
|
4
|
+
import { handleResponseError } from './handleResponseError';
|
|
5
|
+
export class EdgeIQAPI {
|
|
6
|
+
constructor() {
|
|
7
|
+
throw new Error(Errors.noInstance);
|
|
14
8
|
}
|
|
15
|
-
|
|
9
|
+
static init(options) {
|
|
16
10
|
if (EdgeIQAPI.instance) {
|
|
17
|
-
throw new Error(
|
|
11
|
+
throw new Error(Errors.instanceInitiated);
|
|
18
12
|
}
|
|
19
13
|
if (options === null || options === void 0 ? void 0 : options.url) {
|
|
20
14
|
EdgeIQAPI.url = options.url;
|
|
@@ -25,39 +19,37 @@ var EdgeIQAPI = (function () {
|
|
|
25
19
|
if (options === null || options === void 0 ? void 0 : options.enableLogging) {
|
|
26
20
|
EdgeIQAPI.enableLogging = options.enableLogging;
|
|
27
21
|
}
|
|
28
|
-
EdgeIQAPI.axios =
|
|
22
|
+
EdgeIQAPI.axios = axios.create({
|
|
29
23
|
baseURL: EdgeIQAPI.url,
|
|
30
24
|
timeout: EdgeIQAPI.timeout,
|
|
31
25
|
headers: {
|
|
32
26
|
'Content-Type': 'application/json',
|
|
33
27
|
},
|
|
34
28
|
});
|
|
35
|
-
EdgeIQAPI.axios.interceptors.request.use(
|
|
29
|
+
EdgeIQAPI.axios.interceptors.request.use((config) => {
|
|
36
30
|
return config;
|
|
37
|
-
},
|
|
38
|
-
EdgeIQAPI.axios.interceptors.response.use(
|
|
31
|
+
}, (error) => Promise.reject(error));
|
|
32
|
+
EdgeIQAPI.axios.interceptors.response.use((response) => {
|
|
39
33
|
return response;
|
|
40
|
-
},
|
|
41
|
-
return
|
|
34
|
+
}, (error) => {
|
|
35
|
+
return handleResponseError(error);
|
|
42
36
|
});
|
|
43
|
-
}
|
|
44
|
-
|
|
37
|
+
}
|
|
38
|
+
static getAxios() {
|
|
45
39
|
return EdgeIQAPI.axios;
|
|
46
|
-
}
|
|
47
|
-
|
|
40
|
+
}
|
|
41
|
+
static setSessionToken(token) {
|
|
48
42
|
EdgeIQAPI.axios.defaults.headers.Authorization = token;
|
|
49
|
-
}
|
|
50
|
-
|
|
43
|
+
}
|
|
44
|
+
static logAction(message) {
|
|
51
45
|
if (EdgeIQAPI.enableLogging) {
|
|
52
|
-
console.info(
|
|
46
|
+
console.info(chalk.blue(message));
|
|
53
47
|
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
console.info(
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}());
|
|
63
|
-
exports.EdgeIQAPI = EdgeIQAPI;
|
|
48
|
+
}
|
|
49
|
+
static logError(error) {
|
|
50
|
+
console.info(chalk.red(error));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
EdgeIQAPI.url = defaultBaseUrl;
|
|
54
|
+
EdgeIQAPI.timeout = 30000;
|
|
55
|
+
EdgeIQAPI.enableLogging = false;
|