UNPKG

16.7 kBJavaScriptView Raw
1"use strict";
2var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3 return new (P || (P = Promise))(function (resolve, reject) {
4 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7 step((generator = generator.apply(thisArg, _arguments || [])).next());
8 });
9};
10Object.defineProperty(exports, "__esModule", { value: true });
11const debug = require("debug");
12const rxjs_1 = require("rxjs");
13const Ops = require("rxjs/operators");
14const rxmq_1 = require("rxmq");
15const service_pb_1 = require("./proto/service_pb");
16const log = debug('treelab-ts-sdk:client');
17class Client {
18 constructor(client, metadata) {
19 this._serviceClient = client;
20 this._metadata = metadata;
21 }
22 unaryCall(call, request) {
23 return new Promise((resolve, reject) => {
24 call(request, (error, response) => {
25 if (error) {
26 return reject(error);
27 }
28 resolve(response);
29 });
30 });
31 }
32 createWorkspaceInput(obj) {
33 const createWorkspaceInput = new service_pb_1.CreateWorkspaceInput();
34 createWorkspaceInput.setName(obj.name);
35 return createWorkspaceInput;
36 }
37 addCoreInput(obj) {
38 const addCoreInput = new service_pb_1.AddCoreInput();
39 addCoreInput.setWorkspaceid(obj.workspaceid);
40 addCoreInput.setCorename(obj.corename);
41 addCoreInput.setColor(obj.color);
42 addCoreInput.setIcon(obj.icon);
43 return addCoreInput;
44 }
45 updateCoreInput(obj) {
46 const updateCoreInput = new service_pb_1.UpdateCoreInput();
47 updateCoreInput.setWorkspaceid(obj.workspaceid);
48 updateCoreInput.setCoreid(obj.coreid);
49 updateCoreInput.setCorename(obj.corename);
50 updateCoreInput.setColor(obj.color);
51 updateCoreInput.setIcon(obj.icon);
52 return updateCoreInput;
53 }
54 addTableInput(obj) {
55 const addTableInput = new service_pb_1.AddTableInput();
56 addTableInput.setWorkspaceid(obj.workspaceid);
57 addTableInput.setCoreid(obj.coreid);
58 addTableInput.setTablename(obj.tablename);
59 return addTableInput;
60 }
61 viewDefinitionInput(obj) {
62 const viewDefinitionInput = new service_pb_1.ViewDefinitionInput();
63 viewDefinitionInput.setName(obj.name);
64 viewDefinitionInput.setType(obj.type);
65 return viewDefinitionInput;
66 }
67 addViewInput(obj) {
68 const addViewInput = new service_pb_1.AddViewInput();
69 addViewInput.setWorkspaceid(obj.workspaceid);
70 addViewInput.setCoreid(obj.coreid);
71 addViewInput.setTableid(obj.tableid);
72 addViewInput.setView(this.viewDefinitionInput(obj.view));
73 return addViewInput;
74 }
75 choiceInput(obj) {
76 const choice = new service_pb_1.Choice();
77 if (!obj)
78 return choice;
79 choice.setId(obj.id);
80 choice.setColor(obj.color);
81 choice.setName(obj.name);
82 return choice;
83 }
84 columnConfigInput(obj) {
85 const columnConfig = new service_pb_1.ColumnConfigInput();
86 columnConfig.setType(obj.type);
87 columnConfig.setName(obj.name);
88 columnConfig.setOrder(obj.order);
89 columnConfig.setForeigntableid(obj.foreigntableid);
90 columnConfig.setDefaultnumber(obj.defaultnumber);
91 columnConfig.setPrecision(obj.precision);
92 columnConfig.setChoicesList(obj.choicesList ? obj.choicesList.map(i => this.choiceInput(i)) : []);
93 return columnConfig;
94 }
95 addColumnInput(obj) {
96 const addColumnInput = new service_pb_1.AddColumnInput();
97 addColumnInput.setWorkspaceid(obj.workspaceid);
98 addColumnInput.setCoreid(obj.coreid);
99 addColumnInput.setTableid(obj.tableid);
100 addColumnInput.setColumnconfig(this.columnConfigInput(obj.columnconfig));
101 return addColumnInput;
102 }
103 addRowInput(obj) {
104 const addRowInput = new service_pb_1.AddRowInput();
105 addRowInput.setWorkspaceid(obj.workspaceid);
106 addRowInput.setCoreid(obj.coreid);
107 addRowInput.setTableid(obj.tableid);
108 return addRowInput;
109 }
110 foreignRowVisibleNameValue(obj) {
111 const foreignRowVisibleNameValue = new service_pb_1.ForeignRowVisibleNameValue();
112 foreignRowVisibleNameValue.setValue(obj.value);
113 return foreignRowVisibleNameValue;
114 }
115 foreignRowValue(obj) {
116 const foreignRowValue = new service_pb_1.ForeignRowValue();
117 foreignRowValue.setId(obj.id);
118 foreignRowValue.setVisiblenameList(obj.visiblenameList.map(i => this.foreignRowVisibleNameValue(i)));
119 return foreignRowValue;
120 }
121 attachment(obj) {
122 const attachment = new service_pb_1.Attachment();
123 attachment.setName(obj.name);
124 attachment.setUrl(obj.url);
125 return attachment;
126 }
127 cellData(obj) {
128 const cellData = new service_pb_1.CellData();
129 cellData.setColumnid(obj.columnid);
130 cellData.setType(obj.type);
131 if (obj.text)
132 cellData.setText(obj.text);
133 if (obj.foreignrowList)
134 cellData.setForeignrowList(obj.foreignrowList.map(i => this.foreignRowValue(i)));
135 if (obj.number)
136 cellData.setNumber(obj.number);
137 // TODO string for now
138 if (obj.selecteditems)
139 cellData.setSelecteditems(obj.selecteditems);
140 if (obj.selecteditem)
141 cellData.setSelecteditem(obj.selecteditem);
142 if (obj.attachments)
143 cellData.setAttachments(obj.attachments);
144 // if (obj.selecteditemsList)
145 // cellData.setSelecteditemsList(obj.selecteditemsList.map(i => this.choiceInput(i)));
146 // if (obj.selecteditem) cellData.setSelecteditem(this.choiceInput(obj.selecteditem));
147 // if (obj.attachmentsList)
148 // cellData.setAttachmentsList(obj.attachmentsList.map(i => this.attachment(i)));
149 if (obj.datetime)
150 cellData.setDatetime(obj.datetime);
151 return cellData;
152 }
153 cellValueInput(obj) {
154 const cellValueInput = new service_pb_1.CellValueInput();
155 cellValueInput.setType(obj.type);
156 if (obj.text)
157 cellValueInput.setText(obj.text);
158 if (obj.foreignrowid)
159 cellValueInput.setForeignrowid(obj.foreignrowid);
160 if (obj.number)
161 cellValueInput.setNumber(obj.number);
162 if (obj.selecteditem)
163 cellValueInput.setSelecteditem(this.choiceInput(obj.selecteditem));
164 if (obj.selecteditemsList)
165 cellValueInput.setSelecteditemsList(obj.selecteditemsList.map(i => this.choiceInput(i)));
166 if (obj.attachmentsList)
167 cellValueInput.setAttachmentsList(obj.attachmentsList.map(i => this.attachment(i)));
168 if (obj.datetime)
169 cellValueInput.setDatetime(obj.datetime);
170 return cellValueInput;
171 }
172 updateCellInput(obj) {
173 const updateCellInput = new service_pb_1.UpdateCellInput();
174 updateCellInput.setWorkspaceid(obj.workspaceid);
175 updateCellInput.setCoreid(obj.coreid);
176 updateCellInput.setTableid(obj.tableid);
177 updateCellInput.setColumnid(obj.columnid);
178 updateCellInput.setRowid(obj.rowid);
179 updateCellInput.setAction(this.updateCellActionInput(obj.action));
180 return updateCellInput;
181 }
182 updateCellActionInput(obj) {
183 const updateCellActionInput = new service_pb_1.UpdateCellActionInput();
184 updateCellActionInput.setType(obj.type);
185 updateCellActionInput.setValue(this.cellValueInput(obj.value));
186 return updateCellActionInput;
187 }
188 workspaceSubscriptionInput(obj) {
189 const workspaceSubscriptionInput = new service_pb_1.WorkspaceSubscriptionInput();
190 workspaceSubscriptionInput.setWorkspaceid(obj.workspaceid);
191 workspaceSubscriptionInput.setTopic(obj.topic);
192 return workspaceSubscriptionInput;
193 }
194 getTableInput(obj) {
195 const getTableInput = new service_pb_1.GetTableInput();
196 getTableInput.setWorkspaceid(obj.workspaceid);
197 getTableInput.setCoreid(obj.coreid);
198 getTableInput.setTableid(obj.tableid);
199 return getTableInput;
200 }
201 getWorkspaceInput(obj) {
202 const getWorkspaceInput = new service_pb_1.GetWorkspaceInput();
203 getWorkspaceInput.setId(obj.id);
204 return getWorkspaceInput;
205 }
206 getCoreInput(obj) {
207 const getCoreInput = new service_pb_1.GetCoreInput();
208 getCoreInput.setWorkspaceid(obj.workspaceid);
209 getCoreInput.setCoreid(obj.coreid);
210 return getCoreInput;
211 }
212 getCoresInput(obj) {
213 const getCoresInput = new service_pb_1.GetCoresInput();
214 getCoresInput.setWorkspaceid(obj.workspaceid);
215 return getCoresInput;
216 }
217 getTablesInput(obj) {
218 const getTablesInput = new service_pb_1.GetTablesInput();
219 getTablesInput.setWorkspaceid(obj.workspaceid);
220 getTablesInput.setCoreid(obj.coreid);
221 return getTablesInput;
222 }
223 createWorkspace(input) {
224 return __awaiter(this, void 0, void 0, function* () {
225 return new Promise((resolve, reject) => {
226 this._serviceClient.createWorkspace(input, this._metadata, (err, result) => {
227 if (err) {
228 return reject(err);
229 }
230 resolve(result);
231 });
232 });
233 });
234 }
235 addCore(input) {
236 return __awaiter(this, void 0, void 0, function* () {
237 return new Promise((resolve, reject) => {
238 this._serviceClient.addCore(input, this._metadata, (err, result) => {
239 if (err) {
240 return reject(err);
241 }
242 resolve(result);
243 });
244 });
245 });
246 }
247 updateCore(input) {
248 return __awaiter(this, void 0, void 0, function* () {
249 return new Promise((resolve, reject) => {
250 this._serviceClient.updateCore(input, this._metadata, (err, result) => {
251 if (err) {
252 return reject(err);
253 }
254 resolve(result);
255 });
256 });
257 });
258 }
259 addTable(input) {
260 return __awaiter(this, void 0, void 0, function* () {
261 return new Promise((resolve, reject) => {
262 this._serviceClient.addTable(input, this._metadata, (err, result) => {
263 if (err) {
264 return reject(err);
265 }
266 resolve(result);
267 });
268 });
269 });
270 }
271 addView(input) {
272 return __awaiter(this, void 0, void 0, function* () {
273 return new Promise((resolve, reject) => {
274 this._serviceClient.addView(input, (err, result) => {
275 if (err) {
276 return reject(err);
277 }
278 resolve(result);
279 });
280 });
281 });
282 }
283 addColumn(input) {
284 return __awaiter(this, void 0, void 0, function* () {
285 return new Promise((resolve, reject) => {
286 this._serviceClient.addColumn(input, this._metadata, (err, result) => {
287 if (err) {
288 return reject(err);
289 }
290 resolve(result);
291 });
292 });
293 });
294 }
295 addRow(input) {
296 return __awaiter(this, void 0, void 0, function* () {
297 return new Promise((resolve, reject) => {
298 this._serviceClient.addRow(input, this._metadata, (err, result) => {
299 if (err) {
300 return reject(err);
301 }
302 resolve(result);
303 });
304 });
305 });
306 }
307 updateCell(input) {
308 return __awaiter(this, void 0, void 0, function* () {
309 return new Promise((resolve, reject) => {
310 this._serviceClient.updateCell(input, this._metadata, (err, result) => {
311 if (err) {
312 return reject(err);
313 }
314 resolve(result);
315 });
316 });
317 });
318 }
319 getWorkspaces() {
320 return __awaiter(this, void 0, void 0, function* () {
321 const input = new service_pb_1.EmptyInput();
322 return new Promise((resolve, reject) => {
323 this._serviceClient.getAllWorkspaces(input, this._metadata, (err, result) => {
324 if (err) {
325 return reject(err);
326 }
327 resolve(result);
328 });
329 });
330 });
331 }
332 getWorkspace(input) {
333 return __awaiter(this, void 0, void 0, function* () {
334 return new Promise((resolve, reject) => {
335 this._serviceClient.getWorkspace(input, this._metadata, (err, result) => {
336 if (err) {
337 return reject(err);
338 }
339 resolve(result);
340 });
341 });
342 });
343 }
344 getCore(input) {
345 return __awaiter(this, void 0, void 0, function* () {
346 return new Promise((resolve, reject) => {
347 this._serviceClient.getCore(input, this._metadata, (err, result) => {
348 if (err) {
349 return reject(err);
350 }
351 resolve(result);
352 });
353 });
354 });
355 }
356 getCores(input) {
357 return __awaiter(this, void 0, void 0, function* () {
358 return new Promise((resolve, reject) => {
359 this._serviceClient.getAllCores(input, this._metadata, (err, result) => {
360 if (err) {
361 return reject(err);
362 }
363 resolve(result);
364 });
365 });
366 });
367 }
368 getTable(input) {
369 return __awaiter(this, void 0, void 0, function* () {
370 return new Promise((resolve, reject) => {
371 this._serviceClient.getTable(input, this._metadata, (err, result) => {
372 if (err) {
373 return reject(err);
374 }
375 resolve(result);
376 });
377 });
378 });
379 }
380 getTables(input) {
381 return __awaiter(this, void 0, void 0, function* () {
382 return new Promise((resolve, reject) => {
383 this._serviceClient.getAllTables(input, this._metadata, (err, result) => {
384 if (err) {
385 return reject(err);
386 }
387 resolve(result);
388 });
389 });
390 });
391 }
392 subscribeToWorkspace(input) {
393 return new rxjs_1.Observable((observer) => {
394 log(`opening stream for subscription ${input.toString()}`);
395 const stream = this._serviceClient.subscribeToWorkspace(input, this._metadata);
396 stream.on('data', (eventPayload) => {
397 if (observer.closed) {
398 return;
399 }
400 observer.next(eventPayload);
401 });
402 stream.on('error', err => observer.error(err));
403 stream.on('end', () => observer.complete());
404 return () => {
405 log(`closing stream for subscription ${input.toString()}`);
406 stream.cancel();
407 };
408 });
409 }
410 observeEvent(workspaceId, topic) {
411 return rxmq_1.default.channel(workspaceId).observe(topic);
412 }
413 observeSpecifiedEvent({ workspaceId, coreId, tableId, rowId, columnId }, specifiedTopic) {
414 return this.observeEvent(workspaceId, '').pipe(Ops.filter((e) => {
415 if (!coreId)
416 return e.eventname.endsWith(specifiedTopic);
417 if (!tableId)
418 return e.eventname.startsWith(coreId) && e.eventname.endsWith(specifiedTopic);
419 return (e.eventname.startsWith(`${coreId}.${tableId}`) &&
420 (rowId ? e.rowid === rowId : true) &&
421 (columnId ? e.columnid === columnId : true) &&
422 e.eventname.endsWith(specifiedTopic));
423 }));
424 }
425}
426exports.Client = Client;
427//# sourceMappingURL=client.js.map
\No newline at end of file