1 | "use strict";
|
2 |
|
3 |
|
4 | Object.defineProperty(exports, "__esModule", { value: true });
|
5 | exports.WorkspaceManager = void 0;
|
6 | const coreutils_1 = require("@jupyterlab/coreutils");
|
7 | const statedb_1 = require("@jupyterlab/statedb");
|
8 | const serverconnection_1 = require("../serverconnection");
|
9 |
|
10 |
|
11 |
|
12 | const SERVICE_WORKSPACES_URL = 'api/workspaces';
|
13 |
|
14 |
|
15 |
|
16 | class WorkspaceManager extends statedb_1.DataConnector {
|
17 | |
18 |
|
19 |
|
20 | constructor(options = {}) {
|
21 | var _a;
|
22 | super();
|
23 | this.serverSettings = (_a = options.serverSettings) !== null && _a !== void 0 ? _a : serverconnection_1.ServerConnection.makeSettings();
|
24 | }
|
25 | |
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 |
|
32 | async fetch(id) {
|
33 | const { serverSettings } = this;
|
34 | const { baseUrl, appUrl } = serverSettings;
|
35 | const { makeRequest, ResponseError } = serverconnection_1.ServerConnection;
|
36 | const base = baseUrl + appUrl;
|
37 | const url = Private.url(base, id);
|
38 | const response = await makeRequest(url, {}, serverSettings);
|
39 | if (response.status !== 200) {
|
40 | const err = await ResponseError.create(response);
|
41 | throw err;
|
42 | }
|
43 | return response.json();
|
44 | }
|
45 | |
46 |
|
47 |
|
48 |
|
49 |
|
50 | async list() {
|
51 | const { serverSettings } = this;
|
52 | const { baseUrl, appUrl } = serverSettings;
|
53 | const { makeRequest, ResponseError } = serverconnection_1.ServerConnection;
|
54 | const base = baseUrl + appUrl;
|
55 | const url = Private.url(base, '');
|
56 | const response = await makeRequest(url, {}, serverSettings);
|
57 | if (response.status !== 200) {
|
58 | const err = await ResponseError.create(response);
|
59 | throw err;
|
60 | }
|
61 | const result = await response.json();
|
62 | return result.workspaces;
|
63 | }
|
64 | |
65 |
|
66 |
|
67 |
|
68 |
|
69 |
|
70 |
|
71 | async remove(id) {
|
72 | const { serverSettings } = this;
|
73 | const { baseUrl, appUrl } = serverSettings;
|
74 | const { makeRequest, ResponseError } = serverconnection_1.ServerConnection;
|
75 | const base = baseUrl + appUrl;
|
76 | const url = Private.url(base, id);
|
77 | const init = { method: 'DELETE' };
|
78 | const response = await makeRequest(url, init, serverSettings);
|
79 | if (response.status !== 204) {
|
80 | const err = await ResponseError.create(response);
|
81 | throw err;
|
82 | }
|
83 | }
|
84 | |
85 |
|
86 |
|
87 |
|
88 |
|
89 |
|
90 |
|
91 |
|
92 |
|
93 | async save(id, workspace) {
|
94 | const { serverSettings } = this;
|
95 | const { baseUrl, appUrl } = serverSettings;
|
96 | const { makeRequest, ResponseError } = serverconnection_1.ServerConnection;
|
97 | const base = baseUrl + appUrl;
|
98 | const url = Private.url(base, id);
|
99 | const init = { body: JSON.stringify(workspace), method: 'PUT' };
|
100 | const response = await makeRequest(url, init, serverSettings);
|
101 | if (response.status !== 204) {
|
102 | const err = await ResponseError.create(response);
|
103 | throw err;
|
104 | }
|
105 | }
|
106 | }
|
107 | exports.WorkspaceManager = WorkspaceManager;
|
108 |
|
109 |
|
110 |
|
111 | var Private;
|
112 | (function (Private) {
|
113 | |
114 |
|
115 |
|
116 | function url(base, id) {
|
117 | return coreutils_1.URLExt.join(base, SERVICE_WORKSPACES_URL, id);
|
118 | }
|
119 | Private.url = url;
|
120 | })(Private || (Private = {}));
|
121 |
|
\ | No newline at end of file |