@aceplus/smartace-api 2.12.0 → 2.13.0-alpha.10

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/README.md CHANGED
@@ -19,12 +19,16 @@ To use the SmartAce Api in node you will need the following dependencies
19
19
 
20
20
  ```
21
21
 
22
+ Frontend: [https://saas.tkf-aceplus.com/](https://saas.tkf-aceplus.com/)
23
+ Auth: auth.tkf-aceplus.com
24
+ Asset Platform: saas.tkf-aceplus.com
25
+
22
26
  ## Auth
23
27
 
24
28
  Authentication happens on the auth cluster which is located on the following URL
25
29
 
26
30
  ```typescript
27
- var AuthAddress = "https://backend-auth.smart-ace.com";
31
+ var AuthAddress = "https://auth.tkf-aceplus.com";
28
32
  ```
29
33
 
30
34
  ### Login
@@ -38,29 +42,29 @@ import { AuthnProto } from "@aceplus/smartace-api/auth.authn_pb";
38
42
  import { AuthnGRPC } from "@aceplus/smartace-api/auth.authn_pb_service";
39
43
 
40
44
  function login(username: string, password: string): Promise<AuthnProto.AsObject> {
41
- return new Promise(async (resolve, reject) => {
42
- let request = new AuthnProto.LoginRequest();
43
-
44
- request.setUsername(username);
45
- request.setPassword(password);
46
-
47
- grpc.invoke(AuthnGRPC.Login, {
48
- request,
49
- transport: NodeHttpTransport(),
50
- host: AuthAddress,
51
- onMessage: (res) => {
52
- resolve(res.toObject() as AuthnProto.AsObject);
53
- },
54
- onEnd: (code, message) => {
55
- if (code === 0) {
56
- console.log("Ok");
57
- } else {
58
- console.log({ code, message });
59
- reject({ code, message });
60
- }
61
- },
62
- });
63
- });
45
+ return new Promise(async (resolve, reject) => {
46
+ let request = new AuthnProto.LoginRequest();
47
+
48
+ request.setUsername(username);
49
+ request.setPassword(password);
50
+
51
+ grpc.invoke(AuthnGRPC.Login, {
52
+ request,
53
+ transport: NodeHttpTransport(),
54
+ host: AuthAddress,
55
+ onMessage: (res) => {
56
+ resolve(res.toObject() as AuthnProto.AsObject);
57
+ },
58
+ onEnd: (code, message) => {
59
+ if (code === 0) {
60
+ console.log("Ok");
61
+ } else {
62
+ console.log({ code, message });
63
+ reject({ code, message });
64
+ }
65
+ },
66
+ });
67
+ });
64
68
  }
65
69
 
66
70
  var auth = await login("test@email.com", "password"); // fill in your credentials here
@@ -81,29 +85,29 @@ import { AuthnProto } from "@aceplus/smartace-api/auth.authn_pb";
81
85
  import { AuthnGRPC } from "@aceplus/smartace-api/auth.authn_pb_service";
82
86
 
83
87
  function refresh(accessToken: string, refreshToken: string): Promise<AuthnProto.AsObject> {
84
- return new Promise(async (resolve, reject) => {
85
- let request = new AuthnProto.RefreshRequest();
86
-
87
- request.setAccessToken(accessToken);
88
- request.setRefreshToken(refreshToken);
89
-
90
- grpc.invoke(AuthnGRPC.Refresh, {
91
- request,
92
- transport: NodeHttpTransport(),
93
- host: AuthAddress,
94
- onMessage: (res) => {
95
- resolve(res.toObject() as AuthnProto.AsObject);
96
- },
97
- onEnd: (code, message) => {
98
- if (code === 0) {
99
- console.log("Ok");
100
- } else {
101
- console.log({ code, message });
102
- reject({ code, message });
103
- }
104
- },
105
- });
106
- });
88
+ return new Promise(async (resolve, reject) => {
89
+ let request = new AuthnProto.RefreshRequest();
90
+
91
+ request.setAccessToken(accessToken);
92
+ request.setRefreshToken(refreshToken);
93
+
94
+ grpc.invoke(AuthnGRPC.Refresh, {
95
+ request,
96
+ transport: NodeHttpTransport(),
97
+ host: AuthAddress,
98
+ onMessage: (res) => {
99
+ resolve(res.toObject() as AuthnProto.AsObject);
100
+ },
101
+ onEnd: (code, message) => {
102
+ if (code === 0) {
103
+ console.log("Ok");
104
+ } else {
105
+ console.log({ code, message });
106
+ reject({ code, message });
107
+ }
108
+ },
109
+ });
110
+ });
107
111
  }
108
112
 
109
113
  var auth = await login("test@email.com", "password");
@@ -116,36 +120,36 @@ auth = await refresh(auth.accessToken, auth.refreshToken);
116
120
  To access the spic data, we need to access the operator cluster on the following URL
117
121
 
118
122
  ```typescript
119
- var OperatorAddress = "https://backend-dev.smart-ace.com";
123
+ var OperatorAddress = "https://saas.tkf-aceplus.com";
120
124
 
121
125
  // grpc call helper function
122
126
  function BaseOperatorRequest<TRequest extends grpc.ProtobufMessage, TResponse extends grpc.ProtobufMessage, TMethod extends grpc.MethodDefinition<TRequest, TResponse>>(
123
- accessToken: string,
124
- method: TMethod,
125
- request: TRequest
127
+ accessToken: string,
128
+ method: TMethod,
129
+ request: TRequest
126
130
  ): Promise<TResponse> {
127
- return new Promise(async (resolve, reject) => {
128
- // set accesssToken in header for authorization
129
- const metadata = new grpc.Metadata();
130
- metadata.set("authorization", "Bearer " + accessToken);
131
-
132
- grpc.invoke(method, {
133
- metadata,
134
- request,
135
- host: OperatorAddress,
136
- transport: NodeHttpTransport(), // required for Node
137
- onMessage: (res) => {
138
- resolve(res as TResponse);
139
- },
140
- onEnd: (code, message) => {
141
- if (code === 0) {
142
- console.log("Ok");
143
- } else {
144
- reject({ code, message });
145
- }
146
- },
147
- });
148
- });
131
+ return new Promise(async (resolve, reject) => {
132
+ // set accesssToken in header for authorization
133
+ const metadata = new grpc.Metadata();
134
+ metadata.set("authorization", "Bearer " + accessToken);
135
+
136
+ grpc.invoke(method, {
137
+ metadata,
138
+ request,
139
+ host: OperatorAddress,
140
+ transport: NodeHttpTransport(), // required for Node
141
+ onMessage: (res) => {
142
+ resolve(res as TResponse);
143
+ },
144
+ onEnd: (code, message) => {
145
+ if (code === 0) {
146
+ console.log("Ok");
147
+ } else {
148
+ reject({ code, message });
149
+ }
150
+ },
151
+ });
152
+ });
149
153
  }
150
154
  ```
151
155
 
@@ -155,18 +159,18 @@ Searching cabinets with pagination
155
159
 
156
160
  ```typescript
157
161
  function searchCabinets(accessToken: string, name: string, count: number, page: number): Promise<CabinetProto.SearchReply> {
158
- return new Promise(async (resolve, reject) => {
159
- const request = new CabinetProto.SearchRequest();
160
- name && name.length >= 3 && request.setName(name);
161
- request.setCount(count);
162
- request.setPage(page);
163
-
164
- BaseOperatorRequest(accessToken, CabinetGRPC.Search, request)
165
- .then((res) => {
166
- resolve(res as CabinetProto.SearchReply);
167
- })
168
- .catch((err) => reject(err));
169
- });
162
+ return new Promise(async (resolve, reject) => {
163
+ const request = new CabinetProto.SearchRequest();
164
+ name && name.length >= 3 && request.setName(name);
165
+ request.setCount(count);
166
+ request.setPage(page);
167
+
168
+ BaseOperatorRequest(accessToken, CabinetGRPC.Search, request)
169
+ .then((res) => {
170
+ resolve(res as CabinetProto.SearchReply);
171
+ })
172
+ .catch((err) => reject(err));
173
+ });
170
174
  }
171
175
 
172
176
  var cabinets = await searchCabinets(auth.accessToken, "", 10, 0);
@@ -183,29 +187,29 @@ Or retrieve cabinet by id or Uid
183
187
 
184
188
  ```typescript
185
189
  function retrieveCabinetById(accessToken: string, id: number): Promise<CabinetWithLocation> {
186
- return new Promise(async (resolve, reject) => {
187
- const request = new CabinetProto.RetrieveRequest();
188
- request.setId(id);
189
-
190
- BaseOperatorRequest(accessToken, CabinetGRPC.Retrieve, request)
191
- .then((res) => {
192
- resolve(res as CabinetWithLocation);
193
- })
194
- .catch((err) => reject(err));
195
- });
190
+ return new Promise(async (resolve, reject) => {
191
+ const request = new CabinetProto.RetrieveRequest();
192
+ request.setId(id);
193
+
194
+ BaseOperatorRequest(accessToken, CabinetGRPC.Retrieve, request)
195
+ .then((res) => {
196
+ resolve(res as CabinetWithLocation);
197
+ })
198
+ .catch((err) => reject(err));
199
+ });
196
200
  }
197
201
 
198
202
  function retrieveCabinetByUid(accessToken: string, uid: string): Promise<CabinetWithLocation> {
199
- return new Promise(async (resolve, reject) => {
200
- const request = new CabinetProto.RetrieveRequest();
201
- request.setUid(uid);
202
-
203
- BaseOperatorRequest(accessToken, CabinetGRPC.Retrieve, request)
204
- .then((res) => {
205
- resolve(res as CabinetWithLocation);
206
- })
207
- .catch((err) => reject(err));
208
- });
203
+ return new Promise(async (resolve, reject) => {
204
+ const request = new CabinetProto.RetrieveRequest();
205
+ request.setUid(uid);
206
+
207
+ BaseOperatorRequest(accessToken, CabinetGRPC.Retrieve, request)
208
+ .then((res) => {
209
+ resolve(res as CabinetWithLocation);
210
+ })
211
+ .catch((err) => reject(err));
212
+ });
209
213
  }
210
214
 
211
215
  let cabinet1 = await retrieveCabinetById(auth.accessToken, 1);
@@ -218,20 +222,20 @@ console.log(cabinet2.toObject());
218
222
 
219
223
  ```typescript
220
224
  function retrieveEvents(accessToken: string, cabinetId: number, count: number, page: number, descendingOrder: boolean): Promise<CabinetProto.Event.SearchReply> {
221
- return new Promise(async (resolve, reject) => {
222
- const request = new CabinetProto.Event.SearchRequest();
223
-
224
- request.setCabinetId(cabinetId);
225
- request.setCount(count);
226
- request.setPage(page);
227
- request.setDescorder(descendingOrder);
228
-
229
- BaseOperatorRequest(accessToken, CabinetGRPC.SearchEvents, request)
230
- .then((res) => {
231
- resolve(res as CabinetProto.Event.SearchReply);
232
- })
233
- .catch((err) => reject(err));
234
- });
225
+ return new Promise(async (resolve, reject) => {
226
+ const request = new CabinetProto.Event.SearchRequest();
227
+
228
+ request.setCabinetId(cabinetId);
229
+ request.setCount(count);
230
+ request.setPage(page);
231
+ request.setDescorder(descendingOrder);
232
+
233
+ BaseOperatorRequest(accessToken, CabinetGRPC.SearchEvents, request)
234
+ .then((res) => {
235
+ resolve(res as CabinetProto.Event.SearchReply);
236
+ })
237
+ .catch((err) => reject(err));
238
+ });
235
239
  }
236
240
  let events = await retrieveEvents(auth.accessToken, cabinet2.getCabinet()!.getId(), 10, 0, false);
237
241
 
@@ -242,23 +246,23 @@ console.log(events.toObject());
242
246
 
243
247
  ```typescript
244
248
  function retrieveStates(accessToken: string, uid: string, count: number, page: number, descendingOrder: boolean): Promise<CabinetProto.State.SearchReply> {
245
- return new Promise(async (resolve, reject) => {
246
- const request = new CabinetProto.State.SearchRequest();
247
-
248
- request.setUid(uid);
249
- request.setCount(count);
250
- request.setPage(page);
251
- request.setDescorder(descendingOrder);
252
-
253
- request.setBatteryTo(4000);
254
- request.setTemperatureTo(100);
255
-
256
- BaseOperatorRequest(accessToken, CabinetGRPC.SearchStates, request)
257
- .then((res) => {
258
- resolve(res as CabinetProto.State.SearchReply);
259
- })
260
- .catch((err) => reject(err));
261
- });
249
+ return new Promise(async (resolve, reject) => {
250
+ const request = new CabinetProto.State.SearchRequest();
251
+
252
+ request.setUid(uid);
253
+ request.setCount(count);
254
+ request.setPage(page);
255
+ request.setDescorder(descendingOrder);
256
+
257
+ request.setBatteryTo(4000);
258
+ request.setTemperatureTo(100);
259
+
260
+ BaseOperatorRequest(accessToken, CabinetGRPC.SearchStates, request)
261
+ .then((res) => {
262
+ resolve(res as CabinetProto.State.SearchReply);
263
+ })
264
+ .catch((err) => reject(err));
265
+ });
262
266
  }
263
267
  let states = await retrieveStates(auth.accessToken, cabinet2.getCabinet()!.getUid(), 10, 0, false);
264
268
 
@@ -273,36 +277,36 @@ Here you have option for how long the opening is valid and if it is a single use
273
277
 
274
278
  ```typescript
275
279
  function Open(accessToken: string, cabinetId: number): Promise<CabinetProto.OpenRequest> {
276
- return new Promise(async (resolve, reject) => {
277
- const request = new CabinetProto.OpenRequest.CreateRequest();
280
+ return new Promise(async (resolve, reject) => {
281
+ const request = new CabinetProto.OpenRequest.CreateRequest();
278
282
 
279
- request.setCabinetId(cabinetId);
283
+ request.setCabinetId(cabinetId);
280
284
 
281
- function DateToTimestamp(date: Date): Timestamp {
282
- let ts = new Timestamp();
283
- let seconds = Math.round(date.getTime() / 1000);
284
- ts.setSeconds(seconds);
285
- return ts;
286
- }
285
+ function DateToTimestamp(date: Date): Timestamp {
286
+ let ts = new Timestamp();
287
+ let seconds = Math.round(date.getTime() / 1000);
288
+ ts.setSeconds(seconds);
289
+ return ts;
290
+ }
287
291
 
288
- var now = new Date(Date.now());
289
- request.setRequestTime(DateToTimestamp(now));
292
+ var now = new Date(Date.now());
293
+ request.setRequestTime(DateToTimestamp(now));
290
294
 
291
- var expirationDate = new Date(Date.now());
292
- expirationDate.setTime(expirationDate.getTime() + 60 * 60 * 1000);
295
+ var expirationDate = new Date(Date.now());
296
+ expirationDate.setTime(expirationDate.getTime() + 60 * 60 * 1000);
293
297
 
294
- request.setValidUntil(DateToTimestamp(expirationDate));
298
+ request.setValidUntil(DateToTimestamp(expirationDate));
295
299
 
296
- request.setType(CabinetProto.OpenRequest.OpenRequestType.ADMIN_OPENING);
300
+ request.setType(CabinetProto.OpenRequest.OpenRequestType.ADMIN_OPENING);
297
301
 
298
- request.setDeactivateafteropening(true);
302
+ request.setDeactivateafteropening(true);
299
303
 
300
- BaseOperatorRequest(accessToken, CabinetGRPC.CreateOpenRequest, request)
301
- .then((res) => {
302
- resolve(res as CabinetProto.OpenRequest);
303
- })
304
- .catch((err) => reject(err));
305
- });
304
+ BaseOperatorRequest(accessToken, CabinetGRPC.CreateOpenRequest, request)
305
+ .then((res) => {
306
+ resolve(res as CabinetProto.OpenRequest);
307
+ })
308
+ .catch((err) => reject(err));
309
+ });
306
310
  }
307
311
 
308
312
  let openRequest = await Open(auth.accessToken, cabinet2.getCabinet()!.getId()).catch((err) => console.log(err));
@@ -188,11 +188,6 @@ export namespace AccountProto {
188
188
  getCount(): number;
189
189
  setCount(value: number): void;
190
190
 
191
- clearScopeFiltersList(): void;
192
- getScopeFiltersList(): Array<AccountProto.Scope>;
193
- setScopeFiltersList(value: Array<AccountProto.Scope>): void;
194
- addScopeFilters(value?: AccountProto.Scope, index?: number): AccountProto.Scope;
195
-
196
191
  serializeBinary(): Uint8Array;
197
192
  toObject(includeInstance?: boolean): SearchRequest.AsObject;
198
193
  static toObject(includeInstance: boolean, msg: SearchRequest): SearchRequest.AsObject;
@@ -208,7 +203,6 @@ export namespace AccountProto {
208
203
  search: string,
209
204
  page: number,
210
205
  count: number,
211
- scopeFiltersList: Array<AccountProto.Scope.AsObject>,
212
206
  }
213
207
  }
214
208
 
@@ -420,106 +414,6 @@ export namespace AccountProto {
420
414
  }
421
415
  }
422
416
 
423
- export class Scope extends jspb.Message {
424
- getScopeName(): string;
425
- setScopeName(value: string): void;
426
-
427
- getScopeValue(): string;
428
- setScopeValue(value: string): void;
429
-
430
- serializeBinary(): Uint8Array;
431
- toObject(includeInstance?: boolean): Scope.AsObject;
432
- static toObject(includeInstance: boolean, msg: Scope): Scope.AsObject;
433
- static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
434
- static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
435
- static serializeBinaryToWriter(message: Scope, writer: jspb.BinaryWriter): void;
436
- static deserializeBinary(bytes: Uint8Array): Scope;
437
- static deserializeBinaryFromReader(message: Scope, reader: jspb.BinaryReader): Scope;
438
- }
439
-
440
- export namespace Scope {
441
- export type AsObject = {
442
- scopeName: string,
443
- scopeValue: string,
444
- }
445
- }
446
-
447
- export class SetSuperAccountScopeRequest extends jspb.Message {
448
- getId(): number;
449
- setId(value: number): void;
450
-
451
- hasScope(): boolean;
452
- clearScope(): void;
453
- getScope(): AccountProto.Scope | undefined;
454
- setScope(value?: AccountProto.Scope): void;
455
-
456
- getClusterName(): string;
457
- setClusterName(value: string): void;
458
-
459
- serializeBinary(): Uint8Array;
460
- toObject(includeInstance?: boolean): SetSuperAccountScopeRequest.AsObject;
461
- static toObject(includeInstance: boolean, msg: SetSuperAccountScopeRequest): SetSuperAccountScopeRequest.AsObject;
462
- static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
463
- static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
464
- static serializeBinaryToWriter(message: SetSuperAccountScopeRequest, writer: jspb.BinaryWriter): void;
465
- static deserializeBinary(bytes: Uint8Array): SetSuperAccountScopeRequest;
466
- static deserializeBinaryFromReader(message: SetSuperAccountScopeRequest, reader: jspb.BinaryReader): SetSuperAccountScopeRequest;
467
- }
468
-
469
- export namespace SetSuperAccountScopeRequest {
470
- export type AsObject = {
471
- id: number,
472
- scope?: AccountProto.Scope.AsObject,
473
- clusterName: string,
474
- }
475
- }
476
-
477
- export class SetAccountScopeRequest extends jspb.Message {
478
- getId(): number;
479
- setId(value: number): void;
480
-
481
- hasScope(): boolean;
482
- clearScope(): void;
483
- getScope(): AccountProto.Scope | undefined;
484
- setScope(value?: AccountProto.Scope): void;
485
-
486
- serializeBinary(): Uint8Array;
487
- toObject(includeInstance?: boolean): SetAccountScopeRequest.AsObject;
488
- static toObject(includeInstance: boolean, msg: SetAccountScopeRequest): SetAccountScopeRequest.AsObject;
489
- static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
490
- static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
491
- static serializeBinaryToWriter(message: SetAccountScopeRequest, writer: jspb.BinaryWriter): void;
492
- static deserializeBinary(bytes: Uint8Array): SetAccountScopeRequest;
493
- static deserializeBinaryFromReader(message: SetAccountScopeRequest, reader: jspb.BinaryReader): SetAccountScopeRequest;
494
- }
495
-
496
- export namespace SetAccountScopeRequest {
497
- export type AsObject = {
498
- id: number,
499
- scope?: AccountProto.Scope.AsObject,
500
- }
501
- }
502
-
503
- export class SetAccountScopeReply extends jspb.Message {
504
- getId(): number;
505
- setId(value: number): void;
506
-
507
- serializeBinary(): Uint8Array;
508
- toObject(includeInstance?: boolean): SetAccountScopeReply.AsObject;
509
- static toObject(includeInstance: boolean, msg: SetAccountScopeReply): SetAccountScopeReply.AsObject;
510
- static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
511
- static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
512
- static serializeBinaryToWriter(message: SetAccountScopeReply, writer: jspb.BinaryWriter): void;
513
- static deserializeBinary(bytes: Uint8Array): SetAccountScopeReply;
514
- static deserializeBinaryFromReader(message: SetAccountScopeReply, reader: jspb.BinaryReader): SetAccountScopeReply;
515
- }
516
-
517
- export namespace SetAccountScopeReply {
518
- export type AsObject = {
519
- id: number,
520
- }
521
- }
522
-
523
417
  export class RetrievePushInfoRequest extends jspb.Message {
524
418
  getId(): number;
525
419
  setId(value: number): void;
@@ -592,6 +486,26 @@ export namespace AccountProto {
592
486
  }
593
487
  }
594
488
 
489
+ export class DeleteFromClusterRequest extends jspb.Message {
490
+ getId(): number;
491
+ setId(value: number): void;
492
+
493
+ serializeBinary(): Uint8Array;
494
+ toObject(includeInstance?: boolean): DeleteFromClusterRequest.AsObject;
495
+ static toObject(includeInstance: boolean, msg: DeleteFromClusterRequest): DeleteFromClusterRequest.AsObject;
496
+ static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
497
+ static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
498
+ static serializeBinaryToWriter(message: DeleteFromClusterRequest, writer: jspb.BinaryWriter): void;
499
+ static deserializeBinary(bytes: Uint8Array): DeleteFromClusterRequest;
500
+ static deserializeBinaryFromReader(message: DeleteFromClusterRequest, reader: jspb.BinaryReader): DeleteFromClusterRequest;
501
+ }
502
+
503
+ export namespace DeleteFromClusterRequest {
504
+ export type AsObject = {
505
+ id: number,
506
+ }
507
+ }
508
+
595
509
  export class RetrieveAccountActivationStatusesRequest extends jspb.Message {
596
510
  clearIdsList(): void;
597
511
  getIdsList(): Array<number>;