geoserver-node-client 0.0.7 → 1.2.0

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.
@@ -0,0 +1,315 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _nodeFetch = _interopRequireDefault(require("node-fetch"));
19
+
20
+ var _geoserver = require("./util/geoserver.js");
21
+
22
+ var _about = _interopRequireDefault(require("./about.js"));
23
+
24
+ /**
25
+ * Client for GeoServer namespace
26
+ *
27
+ * @module NamespaceClient
28
+ */
29
+ var NamespaceClient = /*#__PURE__*/function () {
30
+ /**
31
+ * Creates a GeoServer REST NamespaceClient instance.
32
+ *
33
+ * @param {String} url The URL of the GeoServer REST API endpoint
34
+ * @param {String} auth The Basic Authentication string
35
+ */
36
+ function NamespaceClient(url, auth) {
37
+ (0, _classCallCheck2["default"])(this, NamespaceClient);
38
+ this.url = url;
39
+ this.auth = auth;
40
+ }
41
+ /**
42
+ * Returns all namespaces.
43
+ *
44
+ * @throws Error if request fails
45
+ *
46
+ * @returns {Object} An object describing the namespace
47
+ */
48
+
49
+
50
+ (0, _createClass2["default"])(NamespaceClient, [{
51
+ key: "getAll",
52
+ value: function () {
53
+ var _getAll = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
54
+ var response, geoServerResponse;
55
+ return _regenerator["default"].wrap(function _callee$(_context) {
56
+ while (1) {
57
+ switch (_context.prev = _context.next) {
58
+ case 0:
59
+ _context.next = 2;
60
+ return (0, _nodeFetch["default"])(this.url + 'namespaces.json', {
61
+ credentials: 'include',
62
+ method: 'GET',
63
+ headers: {
64
+ Authorization: this.auth
65
+ }
66
+ });
67
+
68
+ case 2:
69
+ response = _context.sent;
70
+
71
+ if (response.ok) {
72
+ _context.next = 8;
73
+ break;
74
+ }
75
+
76
+ _context.next = 6;
77
+ return (0, _geoserver.getGeoServerResponseText)(response);
78
+
79
+ case 6:
80
+ geoServerResponse = _context.sent;
81
+ throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
82
+
83
+ case 8:
84
+ return _context.abrupt("return", response.json());
85
+
86
+ case 9:
87
+ case "end":
88
+ return _context.stop();
89
+ }
90
+ }
91
+ }, _callee, this);
92
+ }));
93
+
94
+ function getAll() {
95
+ return _getAll.apply(this, arguments);
96
+ }
97
+
98
+ return getAll;
99
+ }()
100
+ /**
101
+ * Creates a new namespace.
102
+ *
103
+ * @param {String} prefix Prefix of the new namespace
104
+ * @param {String} uri Uri of the new namespace
105
+ *
106
+ * @throws Error if request fails
107
+ *
108
+ * @returns {String} The name of the created namespace
109
+ */
110
+
111
+ }, {
112
+ key: "create",
113
+ value: function () {
114
+ var _create = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(prefix, uri) {
115
+ var body, response, geoServerResponse;
116
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
117
+ while (1) {
118
+ switch (_context2.prev = _context2.next) {
119
+ case 0:
120
+ body = {
121
+ namespace: {
122
+ prefix: prefix,
123
+ uri: uri
124
+ }
125
+ };
126
+ _context2.next = 3;
127
+ return (0, _nodeFetch["default"])(this.url + 'namespaces', {
128
+ credentials: 'include',
129
+ method: 'POST',
130
+ headers: {
131
+ Authorization: this.auth,
132
+ 'Content-Type': 'application/json'
133
+ },
134
+ body: JSON.stringify(body)
135
+ });
136
+
137
+ case 3:
138
+ response = _context2.sent;
139
+
140
+ if (response.ok) {
141
+ _context2.next = 9;
142
+ break;
143
+ }
144
+
145
+ _context2.next = 7;
146
+ return (0, _geoserver.getGeoServerResponseText)(response);
147
+
148
+ case 7:
149
+ geoServerResponse = _context2.sent;
150
+ throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
151
+
152
+ case 9:
153
+ return _context2.abrupt("return", response.text());
154
+
155
+ case 10:
156
+ case "end":
157
+ return _context2.stop();
158
+ }
159
+ }
160
+ }, _callee2, this);
161
+ }));
162
+
163
+ function create(_x, _x2) {
164
+ return _create.apply(this, arguments);
165
+ }
166
+
167
+ return create;
168
+ }()
169
+ /**
170
+ * Returns a namespace.
171
+ *
172
+ * @param {String} name Name of the namespace
173
+ *
174
+ * @throws Error if request fails
175
+ *
176
+ * @returns {Object} An object describing the namespace or undefined if it cannot be found
177
+ */
178
+
179
+ }, {
180
+ key: "get",
181
+ value: function () {
182
+ var _get = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(name) {
183
+ var response, grc, geoServerResponse;
184
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
185
+ while (1) {
186
+ switch (_context3.prev = _context3.next) {
187
+ case 0:
188
+ _context3.next = 2;
189
+ return (0, _nodeFetch["default"])(this.url + 'namespaces/' + name + '.json', {
190
+ credentials: 'include',
191
+ method: 'GET',
192
+ headers: {
193
+ Authorization: this.auth
194
+ }
195
+ });
196
+
197
+ case 2:
198
+ response = _context3.sent;
199
+
200
+ if (response.ok) {
201
+ _context3.next = 15;
202
+ break;
203
+ }
204
+
205
+ grc = new _about["default"](this.url, this.auth);
206
+ _context3.next = 7;
207
+ return grc.exists();
208
+
209
+ case 7:
210
+ if (!_context3.sent) {
211
+ _context3.next = 11;
212
+ break;
213
+ }
214
+
215
+ return _context3.abrupt("return");
216
+
217
+ case 11:
218
+ _context3.next = 13;
219
+ return (0, _geoserver.getGeoServerResponseText)(response);
220
+
221
+ case 13:
222
+ geoServerResponse = _context3.sent;
223
+ throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
224
+
225
+ case 15:
226
+ return _context3.abrupt("return", response.json());
227
+
228
+ case 16:
229
+ case "end":
230
+ return _context3.stop();
231
+ }
232
+ }
233
+ }, _callee3, this);
234
+ }));
235
+
236
+ function get(_x3) {
237
+ return _get.apply(this, arguments);
238
+ }
239
+
240
+ return get;
241
+ }()
242
+ /**
243
+ * Deletes a namespace.
244
+ *
245
+ * @param {String} name Name of the namespace to delete
246
+ *
247
+ * @throws Error if request fails
248
+ */
249
+
250
+ }, {
251
+ key: "delete",
252
+ value: function () {
253
+ var _delete2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(name) {
254
+ var response, geoServerResponse;
255
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
256
+ while (1) {
257
+ switch (_context4.prev = _context4.next) {
258
+ case 0:
259
+ _context4.next = 2;
260
+ return (0, _nodeFetch["default"])(this.url + 'namespaces/' + name, {
261
+ credentials: 'include',
262
+ method: 'DELETE',
263
+ headers: {
264
+ Authorization: this.auth
265
+ }
266
+ });
267
+
268
+ case 2:
269
+ response = _context4.sent;
270
+
271
+ if (response.ok) {
272
+ _context4.next = 14;
273
+ break;
274
+ }
275
+
276
+ _context4.next = 6;
277
+ return (0, _geoserver.getGeoServerResponseText)(response);
278
+
279
+ case 6:
280
+ geoServerResponse = _context4.sent;
281
+ _context4.t0 = response.status;
282
+ _context4.next = _context4.t0 === 403 ? 10 : _context4.t0 === 404 ? 11 : _context4.t0 === 405 ? 12 : 13;
283
+ break;
284
+
285
+ case 10:
286
+ throw new _geoserver.GeoServerResponseError('Namespace or related Workspace is not empty (and recurse not true)', geoServerResponse);
287
+
288
+ case 11:
289
+ throw new _geoserver.GeoServerResponseError('Namespace doesn\'t exist', geoServerResponse);
290
+
291
+ case 12:
292
+ throw new _geoserver.GeoServerResponseError('Can\'t delete default namespace', geoServerResponse);
293
+
294
+ case 13:
295
+ throw new _geoserver.GeoServerResponseError('Response not recognized', geoServerResponse);
296
+
297
+ case 14:
298
+ case "end":
299
+ return _context4.stop();
300
+ }
301
+ }
302
+ }, _callee4, this);
303
+ }));
304
+
305
+ function _delete(_x4) {
306
+ return _delete2.apply(this, arguments);
307
+ }
308
+
309
+ return _delete;
310
+ }()
311
+ }]);
312
+ return NamespaceClient;
313
+ }();
314
+
315
+ exports["default"] = NamespaceClient;
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _nodeFetch = _interopRequireDefault(require("node-fetch"));
19
+
20
+ var _geoserver = require("./util/geoserver.js");
21
+
22
+ /**
23
+ * Client for GeoServer "Reset/Reload" to clear internal caches and reload
24
+ * configuration from disk endpoint.
25
+ *
26
+ * @module ResetReloadClient
27
+ */
28
+ var ResetReloadClient = /*#__PURE__*/function () {
29
+ /**
30
+ * Creates a GeoServer REST ResetReloadClient instance.
31
+ *
32
+ * @param {String} url The URL of the GeoServer REST API endpoint
33
+ * @param {String} auth The Basic Authentication string
34
+ */
35
+ function ResetReloadClient(url, auth) {
36
+ (0, _classCallCheck2["default"])(this, ResetReloadClient);
37
+ this.url = url;
38
+ this.auth = auth;
39
+ }
40
+ /**
41
+ * Resets all store, raster, and schema caches. This operation is used to
42
+ * force GeoServer to drop all caches and store connections and reconnect to
43
+ * each of them the next time they are needed by a request.
44
+ * This is useful in case the stores themselves cache some information about
45
+ * the data structures they manage that may have changed in the meantime.
46
+ *
47
+ * @throws Error if request fails
48
+ */
49
+
50
+
51
+ (0, _createClass2["default"])(ResetReloadClient, [{
52
+ key: "reset",
53
+ value: function () {
54
+ var _reset = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
55
+ var url, response, geoServerResponse;
56
+ return _regenerator["default"].wrap(function _callee$(_context) {
57
+ while (1) {
58
+ switch (_context.prev = _context.next) {
59
+ case 0:
60
+ url = this.url + 'reset';
61
+ _context.next = 3;
62
+ return (0, _nodeFetch["default"])(url, {
63
+ credentials: 'include',
64
+ method: 'POST',
65
+ headers: {
66
+ Authorization: this.auth
67
+ }
68
+ });
69
+
70
+ case 3:
71
+ response = _context.sent;
72
+
73
+ if (response.ok) {
74
+ _context.next = 9;
75
+ break;
76
+ }
77
+
78
+ _context.next = 7;
79
+ return (0, _geoserver.getGeoServerResponseText)(response);
80
+
81
+ case 7:
82
+ geoServerResponse = _context.sent;
83
+ throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
84
+
85
+ case 9:
86
+ case "end":
87
+ return _context.stop();
88
+ }
89
+ }
90
+ }, _callee, this);
91
+ }));
92
+
93
+ function reset() {
94
+ return _reset.apply(this, arguments);
95
+ }
96
+
97
+ return reset;
98
+ }()
99
+ /**
100
+ * Reloads the GeoServer catalog and configuration from disk. This operation
101
+ * is used in cases where an external tool has modified the on-disk
102
+ * configuration. This operation will also force GeoServer to drop any
103
+ * internal caches and reconnect to all data stores.
104
+ *
105
+ * @throws Error if request fails
106
+ */
107
+
108
+ }, {
109
+ key: "reload",
110
+ value: function () {
111
+ var _reload = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
112
+ var url, response, geoServerResponse;
113
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
114
+ while (1) {
115
+ switch (_context2.prev = _context2.next) {
116
+ case 0:
117
+ url = this.url + 'reload';
118
+ _context2.next = 3;
119
+ return (0, _nodeFetch["default"])(url, {
120
+ credentials: 'include',
121
+ method: 'POST',
122
+ headers: {
123
+ Authorization: this.auth
124
+ }
125
+ });
126
+
127
+ case 3:
128
+ response = _context2.sent;
129
+
130
+ if (response.ok) {
131
+ _context2.next = 9;
132
+ break;
133
+ }
134
+
135
+ _context2.next = 7;
136
+ return (0, _geoserver.getGeoServerResponseText)(response);
137
+
138
+ case 7:
139
+ geoServerResponse = _context2.sent;
140
+ throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
141
+
142
+ case 9:
143
+ case "end":
144
+ return _context2.stop();
145
+ }
146
+ }
147
+ }, _callee2, this);
148
+ }));
149
+
150
+ function reload() {
151
+ return _reload.apply(this, arguments);
152
+ }
153
+
154
+ return reload;
155
+ }()
156
+ }]);
157
+ return ResetReloadClient;
158
+ }();
159
+
160
+ exports["default"] = ResetReloadClient;