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

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));
@@ -0,0 +1,168 @@
1
+ // package: Meta
2
+ // file: meta.client.proto
3
+
4
+ import * as jspb from "google-protobuf";
5
+ import * as google_protobuf_empty_pb from "google-protobuf/google/protobuf/empty_pb";
6
+ import * as platform_pagination_pb from "./platform.pagination_pb";
7
+ import * as platform_client_pb from "./platform.client_pb";
8
+ import * as google_api_annotations_pb from "./google/api/annotations_pb";
9
+ import * as google_protobuf_wrappers_pb from "google-protobuf/google/protobuf/wrappers_pb";
10
+
11
+ export class ClientContactProto extends jspb.Message {
12
+ getEmail(): string;
13
+ setEmail(value: string): void;
14
+
15
+ getPhone(): string;
16
+ setPhone(value: string): void;
17
+
18
+ getFirstName(): string;
19
+ setFirstName(value: string): void;
20
+
21
+ getLastName(): string;
22
+ setLastName(value: string): void;
23
+
24
+ getFunction(): string;
25
+ setFunction(value: string): void;
26
+
27
+ hasIsmale(): boolean;
28
+ clearIsmale(): void;
29
+ getIsmale(): google_protobuf_wrappers_pb.BoolValue | undefined;
30
+ setIsmale(value?: google_protobuf_wrappers_pb.BoolValue): void;
31
+
32
+ getLanguage(): string;
33
+ setLanguage(value: string): void;
34
+
35
+ getPriority(): number;
36
+ setPriority(value: number): void;
37
+
38
+ getId(): number;
39
+ setId(value: number): void;
40
+
41
+ getClientId(): number;
42
+ setClientId(value: number): void;
43
+
44
+ serializeBinary(): Uint8Array;
45
+ toObject(includeInstance?: boolean): ClientContactProto.AsObject;
46
+ static toObject(includeInstance: boolean, msg: ClientContactProto): ClientContactProto.AsObject;
47
+ static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
48
+ static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
49
+ static serializeBinaryToWriter(message: ClientContactProto, writer: jspb.BinaryWriter): void;
50
+ static deserializeBinary(bytes: Uint8Array): ClientContactProto;
51
+ static deserializeBinaryFromReader(message: ClientContactProto, reader: jspb.BinaryReader): ClientContactProto;
52
+ }
53
+
54
+ export namespace ClientContactProto {
55
+ export type AsObject = {
56
+ email: string,
57
+ phone: string,
58
+ firstName: string,
59
+ lastName: string,
60
+ pb_function: string,
61
+ ismale?: google_protobuf_wrappers_pb.BoolValue.AsObject,
62
+ language: string,
63
+ priority: number,
64
+ id: number,
65
+ clientId: number,
66
+ }
67
+
68
+ export class EditRequest extends jspb.Message {
69
+ getContactId(): number;
70
+ setContactId(value: number): void;
71
+
72
+ hasContact(): boolean;
73
+ clearContact(): void;
74
+ getContact(): ClientContactProto | undefined;
75
+ setContact(value?: ClientContactProto): void;
76
+
77
+ serializeBinary(): Uint8Array;
78
+ toObject(includeInstance?: boolean): EditRequest.AsObject;
79
+ static toObject(includeInstance: boolean, msg: EditRequest): EditRequest.AsObject;
80
+ static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
81
+ static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
82
+ static serializeBinaryToWriter(message: EditRequest, writer: jspb.BinaryWriter): void;
83
+ static deserializeBinary(bytes: Uint8Array): EditRequest;
84
+ static deserializeBinaryFromReader(message: EditRequest, reader: jspb.BinaryReader): EditRequest;
85
+ }
86
+
87
+ export namespace EditRequest {
88
+ export type AsObject = {
89
+ contactId: number,
90
+ contact?: ClientContactProto.AsObject,
91
+ }
92
+ }
93
+
94
+ export class AddRequest extends jspb.Message {
95
+ getClientId(): number;
96
+ setClientId(value: number): void;
97
+
98
+ hasContact(): boolean;
99
+ clearContact(): void;
100
+ getContact(): ClientContactProto | undefined;
101
+ setContact(value?: ClientContactProto): void;
102
+
103
+ serializeBinary(): Uint8Array;
104
+ toObject(includeInstance?: boolean): AddRequest.AsObject;
105
+ static toObject(includeInstance: boolean, msg: AddRequest): AddRequest.AsObject;
106
+ static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
107
+ static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
108
+ static serializeBinaryToWriter(message: AddRequest, writer: jspb.BinaryWriter): void;
109
+ static deserializeBinary(bytes: Uint8Array): AddRequest;
110
+ static deserializeBinaryFromReader(message: AddRequest, reader: jspb.BinaryReader): AddRequest;
111
+ }
112
+
113
+ export namespace AddRequest {
114
+ export type AsObject = {
115
+ clientId: number,
116
+ contact?: ClientContactProto.AsObject,
117
+ }
118
+ }
119
+
120
+ export class RemoveRequest extends jspb.Message {
121
+ getContactId(): number;
122
+ setContactId(value: number): void;
123
+
124
+ serializeBinary(): Uint8Array;
125
+ toObject(includeInstance?: boolean): RemoveRequest.AsObject;
126
+ static toObject(includeInstance: boolean, msg: RemoveRequest): RemoveRequest.AsObject;
127
+ static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
128
+ static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
129
+ static serializeBinaryToWriter(message: RemoveRequest, writer: jspb.BinaryWriter): void;
130
+ static deserializeBinary(bytes: Uint8Array): RemoveRequest;
131
+ static deserializeBinaryFromReader(message: RemoveRequest, reader: jspb.BinaryReader): RemoveRequest;
132
+ }
133
+
134
+ export namespace RemoveRequest {
135
+ export type AsObject = {
136
+ contactId: number,
137
+ }
138
+ }
139
+ }
140
+
141
+ export class ClientProtoMeta extends jspb.Message {
142
+ hasClient(): boolean;
143
+ clearClient(): void;
144
+ getClient(): platform_client_pb.ClientProto | undefined;
145
+ setClient(value?: platform_client_pb.ClientProto): void;
146
+
147
+ clearContactsList(): void;
148
+ getContactsList(): Array<ClientContactProto>;
149
+ setContactsList(value: Array<ClientContactProto>): void;
150
+ addContacts(value?: ClientContactProto, index?: number): ClientContactProto;
151
+
152
+ serializeBinary(): Uint8Array;
153
+ toObject(includeInstance?: boolean): ClientProtoMeta.AsObject;
154
+ static toObject(includeInstance: boolean, msg: ClientProtoMeta): ClientProtoMeta.AsObject;
155
+ static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
156
+ static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
157
+ static serializeBinaryToWriter(message: ClientProtoMeta, writer: jspb.BinaryWriter): void;
158
+ static deserializeBinary(bytes: Uint8Array): ClientProtoMeta;
159
+ static deserializeBinaryFromReader(message: ClientProtoMeta, reader: jspb.BinaryReader): ClientProtoMeta;
160
+ }
161
+
162
+ export namespace ClientProtoMeta {
163
+ export type AsObject = {
164
+ client?: platform_client_pb.ClientProto.AsObject,
165
+ contactsList: Array<ClientContactProto.AsObject>,
166
+ }
167
+ }
168
+