temba 0.38.0 → 0.40.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.
- package/README.md +7 -72
- package/config/index.d.ts +2 -5
- package/config/index.d.ts.map +1 -1
- package/config/index.js +2 -7
- package/config/index.js.map +1 -1
- package/data/json/index.d.ts.map +1 -1
- package/data/json/index.js +5 -2
- package/data/json/index.js.map +1 -1
- package/data/mongo/index.js +2 -2
- package/data/mongo/index.js.map +1 -1
- package/data/types.d.ts +1 -1
- package/data/types.d.ts.map +1 -1
- package/etags/etags.d.ts +1 -0
- package/etags/etags.d.ts.map +1 -1
- package/etags/etags.js +3 -0
- package/etags/etags.js.map +1 -1
- package/index.d.ts +4 -5
- package/index.d.ts.map +1 -1
- package/index.js +51 -80
- package/index.js.map +1 -1
- package/openapi/openapi.d.ts +2 -1
- package/openapi/openapi.d.ts.map +1 -1
- package/openapi/openapi.js +88 -23
- package/openapi/openapi.js.map +1 -1
- package/package.json +8 -10
- package/requestHandlers/delete.d.ts +1 -1
- package/requestHandlers/delete.d.ts.map +1 -1
- package/requestHandlers/delete.js +5 -5
- package/requestHandlers/delete.js.map +1 -1
- package/requestHandlers/get.d.ts +14 -1
- package/requestHandlers/get.d.ts.map +1 -1
- package/requestHandlers/get.js +12 -4
- package/requestHandlers/get.js.map +1 -1
- package/requestHandlers/index.d.ts +13 -0
- package/requestHandlers/index.d.ts.map +1 -1
- package/requestHandlers/index.js +5 -5
- package/requestHandlers/index.js.map +1 -1
- package/requestHandlers/patch.d.ts +1 -1
- package/requestHandlers/patch.d.ts.map +1 -1
- package/requestHandlers/patch.js +2 -2
- package/requestHandlers/patch.js.map +1 -1
- package/requestHandlers/post.d.ts.map +1 -1
- package/requestHandlers/post.js +13 -3
- package/requestHandlers/post.js.map +1 -1
- package/requestHandlers/put.d.ts +1 -1
- package/requestHandlers/put.d.ts.map +1 -1
- package/requestHandlers/put.js +2 -2
- package/requestHandlers/put.js.map +1 -1
- package/requestHandlers/types.d.ts +4 -1
- package/requestHandlers/types.d.ts.map +1 -1
- package/requestInterceptor/interceptRequest.d.ts +1 -1
- package/requestInterceptor/interceptRequest.d.ts.map +1 -1
- package/requestInterceptor/interceptRequest.js +2 -2
- package/requestInterceptor/interceptRequest.js.map +1 -1
- package/requestInterceptor/types.d.ts +4 -1
- package/requestInterceptor/types.d.ts.map +1 -1
- package/resourceHandler.d.ts +16 -0
- package/resourceHandler.d.ts.map +1 -0
- package/resourceHandler.js +189 -0
- package/resourceHandler.js.map +1 -0
- package/auth/auth.d.ts +0 -6
- package/auth/auth.d.ts.map +0 -1
- package/auth/auth.js +0 -19
- package/auth/auth.js.map +0 -1
- package/delay/delayMiddleware.d.ts +0 -3
- package/delay/delayMiddleware.d.ts.map +0 -1
- package/delay/delayMiddleware.js +0 -11
- package/delay/delayMiddleware.js.map +0 -1
- package/resourceRouter.d.ts +0 -5
- package/resourceRouter.d.ts.map +0 -1
- package/resourceRouter.js +0 -139
- package/resourceRouter.js.map +0 -1
package/openapi/openapi.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import express from 'express';
|
|
2
1
|
import { OpenApiBuilder } from 'openapi3-ts/oas31';
|
|
3
2
|
import indefinite from 'indefinite';
|
|
4
3
|
import deepmerge from 'deepmerge';
|
|
4
|
+
import { handleNotFound } from '../resourceHandler.js';
|
|
5
5
|
const getPathParameters = (resourceInfo, id = false) => {
|
|
6
6
|
const { resource, singularResourceLowerCase } = resourceInfo;
|
|
7
7
|
const resourceParameter = {
|
|
@@ -32,14 +32,17 @@ const getPathParameters = (resourceInfo, id = false) => {
|
|
|
32
32
|
return parameters;
|
|
33
33
|
};
|
|
34
34
|
const anyResource = '{resource}';
|
|
35
|
-
export const
|
|
36
|
-
const
|
|
37
|
-
openapiRouter.get('/', async (req, res) => {
|
|
35
|
+
export const createOpenApiHandler = (format, config) => {
|
|
36
|
+
const openApiHandler = async (req, res) => {
|
|
38
37
|
if (!config.openapi) {
|
|
39
|
-
return
|
|
38
|
+
return handleNotFound(req, res);
|
|
40
39
|
}
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
let server = req.headers.host?.split(':')[1] &&
|
|
41
|
+
!['80', '443'].includes(req.headers.host.split(':')[1] || '')
|
|
42
|
+
? req.headers.host
|
|
43
|
+
: 'default';
|
|
44
|
+
if (config.apiPrefix)
|
|
45
|
+
server += config.apiPrefix;
|
|
43
46
|
let resourceInfos = [
|
|
44
47
|
{
|
|
45
48
|
resource: anyResource,
|
|
@@ -82,16 +85,13 @@ export const createOpenApiRouter = (format, config) => {
|
|
|
82
85
|
}
|
|
83
86
|
});
|
|
84
87
|
}
|
|
85
|
-
const spec = buildOpenApiSpec(
|
|
88
|
+
const spec = buildOpenApiSpec(server, resourceInfos);
|
|
86
89
|
const builder = new OpenApiBuilder(typeof config.openapi === 'object' ? deepmerge(spec, config.openapi) : spec);
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
const buildOpenApiSpec = (format, server, resourceInfos) => {
|
|
90
|
+
res.statusCode = 200;
|
|
91
|
+
res.setHeader('Content-Type', format === 'json' ? 'application/json' : 'application/yaml');
|
|
92
|
+
res.end(format === 'json' ? builder.getSpecAsJson() : builder.getSpecAsYaml());
|
|
93
|
+
};
|
|
94
|
+
const buildOpenApiSpec = (server, resourceInfos) => {
|
|
95
95
|
const builder = OpenApiBuilder.create()
|
|
96
96
|
.addOpenApiVersion('3.1.0')
|
|
97
97
|
.addInfo({
|
|
@@ -197,11 +197,6 @@ export const createOpenApiRouter = (format, config) => {
|
|
|
197
197
|
},
|
|
198
198
|
},
|
|
199
199
|
examples: {
|
|
200
|
-
IdNotAllowedInUrl: {
|
|
201
|
-
value: {
|
|
202
|
-
message: 'An id is not allowed in the URL',
|
|
203
|
-
},
|
|
204
|
-
},
|
|
205
200
|
IdNotAllowedInRequestBody: {
|
|
206
201
|
value: {
|
|
207
202
|
message: 'An id is not allowed in the request body',
|
|
@@ -243,7 +238,7 @@ export const createOpenApiRouter = (format, config) => {
|
|
|
243
238
|
},
|
|
244
239
|
});
|
|
245
240
|
}
|
|
246
|
-
// GET, HEAD, PUT, PATCH, DELETE on an ID
|
|
241
|
+
// GET, HEAD, POST, PUT, PATCH, DELETE on an ID
|
|
247
242
|
builder.addPath(`/${resource}/{${singularResourceLowerCase}Id}`, {
|
|
248
243
|
get: {
|
|
249
244
|
summary: `Find ${indefinite(singularResourceLowerCase)} by ID`,
|
|
@@ -290,6 +285,76 @@ export const createOpenApiRouter = (format, config) => {
|
|
|
290
285
|
},
|
|
291
286
|
},
|
|
292
287
|
},
|
|
288
|
+
post: {
|
|
289
|
+
summary: `Create a new ${singularResourceLowerCase}, specifying your own id.`,
|
|
290
|
+
operationId: `create${singularResourceUpperCase}WithId`,
|
|
291
|
+
parameters: getPathParameters(resourceInfo, true),
|
|
292
|
+
requestBody: {
|
|
293
|
+
content: {
|
|
294
|
+
'application/json': {
|
|
295
|
+
schema: {
|
|
296
|
+
type: 'object',
|
|
297
|
+
},
|
|
298
|
+
},
|
|
299
|
+
},
|
|
300
|
+
},
|
|
301
|
+
responses: {
|
|
302
|
+
'201': {
|
|
303
|
+
description: `The ${singularResourceLowerCase} was created. The created ${singularResourceLowerCase} is returned in the response.`,
|
|
304
|
+
content: {
|
|
305
|
+
'application/json': {
|
|
306
|
+
schema: {
|
|
307
|
+
type: 'object',
|
|
308
|
+
},
|
|
309
|
+
},
|
|
310
|
+
},
|
|
311
|
+
},
|
|
312
|
+
'400': {
|
|
313
|
+
description: 'The request was invalid.',
|
|
314
|
+
content: {
|
|
315
|
+
'application/json': {
|
|
316
|
+
schema: {
|
|
317
|
+
type: 'object',
|
|
318
|
+
properties: {
|
|
319
|
+
message: {
|
|
320
|
+
type: 'string',
|
|
321
|
+
},
|
|
322
|
+
},
|
|
323
|
+
},
|
|
324
|
+
examples: {
|
|
325
|
+
IdNotAllowedInRequestBody: {
|
|
326
|
+
value: {
|
|
327
|
+
message: 'An id is not allowed in the request body',
|
|
328
|
+
},
|
|
329
|
+
},
|
|
330
|
+
},
|
|
331
|
+
},
|
|
332
|
+
},
|
|
333
|
+
},
|
|
334
|
+
'409': {
|
|
335
|
+
description: 'The id already exists.',
|
|
336
|
+
content: {
|
|
337
|
+
'application/json': {
|
|
338
|
+
schema: {
|
|
339
|
+
type: 'object',
|
|
340
|
+
properties: {
|
|
341
|
+
message: {
|
|
342
|
+
type: 'string',
|
|
343
|
+
},
|
|
344
|
+
},
|
|
345
|
+
},
|
|
346
|
+
examples: {
|
|
347
|
+
IdAlreadyExists: {
|
|
348
|
+
value: {
|
|
349
|
+
message: "ID '{resourceId}' already exists",
|
|
350
|
+
},
|
|
351
|
+
},
|
|
352
|
+
},
|
|
353
|
+
},
|
|
354
|
+
},
|
|
355
|
+
},
|
|
356
|
+
},
|
|
357
|
+
},
|
|
293
358
|
put: {
|
|
294
359
|
summary: `Replace ${indefinite(singularResourceLowerCase)}.`,
|
|
295
360
|
operationId: `replace${singularResourceUpperCase}`,
|
|
@@ -440,6 +505,6 @@ export const createOpenApiRouter = (format, config) => {
|
|
|
440
505
|
});
|
|
441
506
|
return builder.getSpec();
|
|
442
507
|
};
|
|
443
|
-
return
|
|
508
|
+
return openApiHandler;
|
|
444
509
|
};
|
|
445
510
|
//# sourceMappingURL=openapi.js.map
|
package/openapi/openapi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../../src/openapi/openapi.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../../src/openapi/openapi.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "temba",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.40.0",
|
|
4
4
|
"description": "Get a simple REST API with zero coding in less than 30 seconds (seriously).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -21,20 +21,19 @@
|
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@types/cors": "^2.8.17",
|
|
23
23
|
"@types/etag": "^1.8.3",
|
|
24
|
-
"@types/express": "^4.17.21",
|
|
25
24
|
"@types/indefinite": "^2.3.4",
|
|
26
25
|
"@types/morgan": "^1.9.9",
|
|
27
26
|
"@types/supertest": "^6.0.2",
|
|
28
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
29
|
-
"@typescript-eslint/parser": "^8.
|
|
27
|
+
"@typescript-eslint/eslint-plugin": "^8.24.0",
|
|
28
|
+
"@typescript-eslint/parser": "^8.24.0",
|
|
30
29
|
"eslint": "8.57.0",
|
|
31
|
-
"eslint-config-prettier": "^
|
|
32
|
-
"prettier": "^3.
|
|
30
|
+
"eslint-config-prettier": "^10.0.1",
|
|
31
|
+
"prettier": "^3.5.1",
|
|
33
32
|
"supertest": "^7.0.0",
|
|
34
33
|
"ts-node": "^10.9.2",
|
|
35
34
|
"tsc-alias": "^1.8.10",
|
|
36
|
-
"typescript": "^5.
|
|
37
|
-
"vitest": "^
|
|
35
|
+
"typescript": "^5.7.3",
|
|
36
|
+
"vitest": "^3.0.5"
|
|
38
37
|
},
|
|
39
38
|
"dependencies": {
|
|
40
39
|
"@rakered/mongo": "^1.6.0",
|
|
@@ -42,9 +41,8 @@
|
|
|
42
41
|
"connect-pause": "^0.1.0",
|
|
43
42
|
"cors": "^2.8.5",
|
|
44
43
|
"deepmerge": "^4.3.1",
|
|
45
|
-
"dotenv": "^16.4.
|
|
44
|
+
"dotenv": "^16.4.7",
|
|
46
45
|
"etag": "^1.8.1",
|
|
47
|
-
"express": "^4.19.2",
|
|
48
46
|
"indefinite": "^2.5.1",
|
|
49
47
|
"lowdb": "^7.0.1",
|
|
50
48
|
"morgan": "^1.10.0",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Queries } from '../data/types.js';
|
|
2
2
|
import type { RequestInterceptor } from '../requestInterceptor/types.js';
|
|
3
3
|
import type { DeleteRequest } from './types.js';
|
|
4
|
-
export declare const createDeleteRoutes: (queries: Queries, allowDeleteCollection: boolean, requestInterceptor: RequestInterceptor | null,
|
|
4
|
+
export declare const createDeleteRoutes: (queries: Queries, allowDeleteCollection: boolean, requestInterceptor: RequestInterceptor | null, etagsEnabled: boolean) => (req: DeleteRequest) => Promise<{
|
|
5
5
|
status: number;
|
|
6
6
|
body: {
|
|
7
7
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/delete.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAI5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,eAAO,MAAM,kBAAkB,YACpB,OAAO,yBACO,OAAO,sBACV,kBAAkB,GAAG,IAAI,gBAC/B,OAAO,WAEY,aAAa;;;;;;;;EAuE/C,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { TembaError } from '../index.js';
|
|
2
1
|
import { etag } from '../etags/etags.js';
|
|
3
2
|
import { interceptDeleteRequest } from '../requestInterceptor/interceptRequest.js';
|
|
4
|
-
|
|
3
|
+
import { TembaError } from '../requestInterceptor/TembaError.js';
|
|
4
|
+
export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterceptor, etagsEnabled) => {
|
|
5
5
|
const handleDelete = async (req) => {
|
|
6
6
|
try {
|
|
7
7
|
const { headers, resource, id } = req;
|
|
@@ -19,7 +19,7 @@ export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterc
|
|
|
19
19
|
if (id) {
|
|
20
20
|
const item = await queries.getById(resource, id);
|
|
21
21
|
if (item) {
|
|
22
|
-
if (
|
|
22
|
+
if (etagsEnabled) {
|
|
23
23
|
const itemEtag = etag(JSON.stringify(item));
|
|
24
24
|
if (req.etag !== itemEtag) {
|
|
25
25
|
return {
|
|
@@ -35,7 +35,7 @@ export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterc
|
|
|
35
35
|
else {
|
|
36
36
|
// Even when deleting a non existing item, we still need an etag.
|
|
37
37
|
// The client needs to do a GET to determine it, after which it finds out the item is gone.
|
|
38
|
-
if (
|
|
38
|
+
if (etagsEnabled && !req.etag) {
|
|
39
39
|
return {
|
|
40
40
|
status: 412,
|
|
41
41
|
body: {
|
|
@@ -49,7 +49,7 @@ export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterc
|
|
|
49
49
|
if (!allowDeleteCollection) {
|
|
50
50
|
return { status: 405 };
|
|
51
51
|
}
|
|
52
|
-
if (
|
|
52
|
+
if (etagsEnabled) {
|
|
53
53
|
const items = await queries.getAll(resource);
|
|
54
54
|
const etagValue = etag(JSON.stringify(items));
|
|
55
55
|
if (req.etag !== etagValue) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/requestHandlers/delete.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/requestHandlers/delete.ts"],"names":[],"mappings":"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"}
|
package/requestHandlers/get.d.ts
CHANGED
|
@@ -2,9 +2,22 @@ import type { Queries } from '../data/types.js';
|
|
|
2
2
|
import type { RequestInterceptor } from '../requestInterceptor/types.js';
|
|
3
3
|
import type { ResponseBodyInterceptor } from '../responseBodyInterceptor/types.js';
|
|
4
4
|
import type { GetRequest } from './types.js';
|
|
5
|
-
export declare const createGetRoutes: (queries: Queries, requestInterceptor: RequestInterceptor | null, responseBodyInterceptor: ResponseBodyInterceptor | null, returnNullFields: boolean) => (req: GetRequest) => Promise<{
|
|
5
|
+
export declare const createGetRoutes: (queries: Queries, requestInterceptor: RequestInterceptor | null, responseBodyInterceptor: ResponseBodyInterceptor | null, returnNullFields: boolean, etagsEnabled: boolean) => (req: GetRequest) => Promise<{
|
|
6
6
|
status: number;
|
|
7
7
|
body: unknown;
|
|
8
|
+
headers?: undefined;
|
|
9
|
+
} | {
|
|
10
|
+
status: number;
|
|
11
|
+
headers: {
|
|
12
|
+
etag: string;
|
|
13
|
+
};
|
|
14
|
+
body?: undefined;
|
|
15
|
+
} | {
|
|
16
|
+
status: number;
|
|
17
|
+
body: unknown;
|
|
18
|
+
headers: {
|
|
19
|
+
etag: string;
|
|
20
|
+
};
|
|
8
21
|
} | {
|
|
9
22
|
status: number;
|
|
10
23
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/get.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/get.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAI5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGzC,eAAO,MAAM,eAAe,YACjB,OAAO,sBACI,kBAAkB,GAAG,IAAI,2BACpB,uBAAuB,GAAG,IAAI,oBACrC,OAAO,gBACX,OAAO,WAES,UAAU;;;;;;;;;;;;;;;;;;EAuEzC,CAAA"}
|
package/requestHandlers/get.js
CHANGED
|
@@ -1,13 +1,21 @@
|
|
|
1
|
+
import { generateEtag } from '../etags/etags.js';
|
|
1
2
|
import { TembaError } from '../requestInterceptor/TembaError.js';
|
|
2
3
|
import { interceptGetRequest } from '../requestInterceptor/interceptRequest.js';
|
|
3
4
|
import { interceptResponseBody } from '../responseBodyInterceptor/interceptResponseBody.js';
|
|
4
5
|
import { removeNullFields } from './utils.js';
|
|
5
|
-
export const createGetRoutes = (queries, requestInterceptor, responseBodyInterceptor, returnNullFields) => {
|
|
6
|
-
const responseOk = (body) => ({ status: 200, body });
|
|
6
|
+
export const createGetRoutes = (queries, requestInterceptor, responseBodyInterceptor, returnNullFields, etagsEnabled) => {
|
|
7
7
|
const handleGet = async (req) => {
|
|
8
|
+
const { headers, resource, id, ifNoneMatchEtag } = req;
|
|
9
|
+
const responseOk = (body) => {
|
|
10
|
+
if (!etagsEnabled)
|
|
11
|
+
return { status: 200, body };
|
|
12
|
+
const etag = generateEtag(body);
|
|
13
|
+
return ifNoneMatchEtag === etag
|
|
14
|
+
? { status: 304, headers: { etag } }
|
|
15
|
+
: { status: 200, body, headers: { etag } };
|
|
16
|
+
};
|
|
8
17
|
try {
|
|
9
|
-
|
|
10
|
-
if (!req.isHeadRequest && requestInterceptor?.get) {
|
|
18
|
+
if (req.method === 'get' && requestInterceptor?.get) {
|
|
11
19
|
try {
|
|
12
20
|
interceptGetRequest(requestInterceptor.get, headers, resource, id);
|
|
13
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/requestHandlers/get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAE5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAA;AAGxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAgB,EAChB,kBAA6C,EAC7C,uBAAuD,EACvD,gBAAyB,EACzB,EAAE;IACF,MAAM,UAAU,GAAG,CAAC,IAAa,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/requestHandlers/get.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,19 @@ export declare const getRequestHandler: (queries: Queries, schemas: CompiledSche
|
|
|
5
5
|
handleGet: (req: import("./types.js").GetRequest) => Promise<{
|
|
6
6
|
status: number;
|
|
7
7
|
body: unknown;
|
|
8
|
+
headers?: undefined;
|
|
9
|
+
} | {
|
|
10
|
+
status: number;
|
|
11
|
+
headers: {
|
|
12
|
+
etag: string;
|
|
13
|
+
};
|
|
14
|
+
body?: undefined;
|
|
15
|
+
} | {
|
|
16
|
+
status: number;
|
|
17
|
+
body: unknown;
|
|
18
|
+
headers: {
|
|
19
|
+
etag: string;
|
|
20
|
+
};
|
|
8
21
|
} | {
|
|
9
22
|
status: number;
|
|
10
23
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,eAAO,MAAM,iBAAiB,YACnB,OAAO,WACP,eAAe,gBACV,YAAY
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,eAAO,MAAM,iBAAiB,YACnB,OAAO,WACP,eAAe,gBACV,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkD3B,CAAA"}
|
package/requestHandlers/index.js
CHANGED
|
@@ -4,12 +4,12 @@ import { createPutRoutes } from './put.js';
|
|
|
4
4
|
import { createPatchRoutes } from './patch.js';
|
|
5
5
|
import { createDeleteRoutes } from './delete.js';
|
|
6
6
|
export const getRequestHandler = (queries, schemas, routerConfig) => {
|
|
7
|
-
const { requestInterceptor, responseBodyInterceptor, returnNullFields, allowDeleteCollection,
|
|
8
|
-
const handleGet = createGetRoutes(queries, requestInterceptor, responseBodyInterceptor, returnNullFields);
|
|
7
|
+
const { requestInterceptor, responseBodyInterceptor, returnNullFields, allowDeleteCollection, etagsEnabled, } = routerConfig;
|
|
8
|
+
const handleGet = createGetRoutes(queries, requestInterceptor, responseBodyInterceptor, returnNullFields, etagsEnabled);
|
|
9
9
|
const handlePost = createPostRoutes(queries, requestInterceptor, returnNullFields, schemas.post);
|
|
10
|
-
const handlePut = createPutRoutes(queries, requestInterceptor, returnNullFields, schemas.put,
|
|
11
|
-
const handlePatch = createPatchRoutes(queries, requestInterceptor, returnNullFields, schemas.patch,
|
|
12
|
-
const handleDelete = createDeleteRoutes(queries, allowDeleteCollection, requestInterceptor,
|
|
10
|
+
const handlePut = createPutRoutes(queries, requestInterceptor, returnNullFields, schemas.put, etagsEnabled);
|
|
11
|
+
const handlePatch = createPatchRoutes(queries, requestInterceptor, returnNullFields, schemas.patch, etagsEnabled);
|
|
12
|
+
const handleDelete = createDeleteRoutes(queries, allowDeleteCollection, requestInterceptor, etagsEnabled);
|
|
13
13
|
return {
|
|
14
14
|
handleGet,
|
|
15
15
|
handlePost,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/requestHandlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAM7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAgB,EAChB,OAAwB,EACxB,YAA0B,EAC1B,EAAE;IACF,MAAM,EACJ,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/requestHandlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAM7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAgB,EAChB,OAAwB,EACxB,YAA0B,EAC1B,EAAE;IACF,MAAM,EACJ,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,GACb,GAAG,YAAY,CAAA;IAEhB,MAAM,SAAS,GAAG,eAAe,CAC/B,OAAO,EACP,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,YAAY,CACb,CAAA;IAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhG,MAAM,SAAS,GAAG,eAAe,CAC/B,OAAO,EACP,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,CAAC,GAAG,EACX,YAAY,CACb,CAAA;IAED,MAAM,WAAW,GAAG,iBAAiB,CACnC,OAAO,EACP,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,CAAC,KAAK,EACb,YAAY,CACb,CAAA;IAED,MAAM,YAAY,GAAG,kBAAkB,CACrC,OAAO,EACP,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,CACb,CAAA;IAED,OAAO;QACL,SAAS;QACT,UAAU;QACV,SAAS;QACT,WAAW;QACX,YAAY;KACb,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -2,7 +2,7 @@ import type { ValidateFunctionPerResource } from '../schema/types.js';
|
|
|
2
2
|
import type { PatchRequest } from './types.js';
|
|
3
3
|
import type { Queries } from '../data/types.js';
|
|
4
4
|
import type { RequestInterceptor } from '../requestInterceptor/types.js';
|
|
5
|
-
export declare const createPatchRoutes: (queries: Queries, requestInterceptor: RequestInterceptor | null, returnNullFields: boolean, schemas: ValidateFunctionPerResource | null,
|
|
5
|
+
export declare const createPatchRoutes: (queries: Queries, requestInterceptor: RequestInterceptor | null, returnNullFields: boolean, schemas: ValidateFunctionPerResource | null, etagsEnabled: boolean) => (req: PatchRequest) => Promise<{
|
|
6
6
|
status: number;
|
|
7
7
|
body: unknown;
|
|
8
8
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/patch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAIrE,eAAO,MAAM,iBAAiB,YACnB,OAAO,sBACI,kBAAkB,GAAG,IAAI,oBAC3B,OAAO,WAChB,2BAA2B,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/patch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAIrE,eAAO,MAAM,iBAAiB,YACnB,OAAO,sBACI,kBAAkB,GAAG,IAAI,oBAC3B,OAAO,WAChB,2BAA2B,GAAG,IAAI,gBAC7B,OAAO,WAEW,YAAY;;;EAsD7C,CAAA"}
|
package/requestHandlers/patch.js
CHANGED
|
@@ -3,7 +3,7 @@ import { validate } from '../schema/validate.js';
|
|
|
3
3
|
import { removeNullFields } from './utils.js';
|
|
4
4
|
import { TembaError } from '../requestInterceptor/TembaError.js';
|
|
5
5
|
import { etag } from '../etags/etags.js';
|
|
6
|
-
export const createPatchRoutes = (queries, requestInterceptor, returnNullFields, schemas,
|
|
6
|
+
export const createPatchRoutes = (queries, requestInterceptor, returnNullFields, schemas, etagsEnabled) => {
|
|
7
7
|
const handlePatch = async (req) => {
|
|
8
8
|
try {
|
|
9
9
|
const { headers, body, resource, id } = req;
|
|
@@ -31,7 +31,7 @@ export const createPatchRoutes = (queries, requestInterceptor, returnNullFields,
|
|
|
31
31
|
message: `ID '${id}' not found`,
|
|
32
32
|
},
|
|
33
33
|
};
|
|
34
|
-
if (
|
|
34
|
+
if (etagsEnabled) {
|
|
35
35
|
const itemEtag = etag(JSON.stringify(item));
|
|
36
36
|
if (req.etag !== itemEtag) {
|
|
37
37
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/requestHandlers/patch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK1C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAErC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAA2C,EAC3C,
|
|
1
|
+
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/requestHandlers/patch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK1C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAErC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAA2C,EAC3C,YAAqB,EACrB,EAAE;IACF,MAAM,WAAW,GAAG,KAAK,EAAE,GAAiB,EAAE,EAAE;QAC9C,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;YAE3C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC5D,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACvC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAA;YAC1E,CAAC;YAED,IAAI,KAAK,GAAG,IAAI,CAAA;YAChB,IAAI,kBAAkB,EAAE,KAAK,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACH,KAAK,GAAG,qBAAqB,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;gBACtF,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,OAAO;wBACL,MAAM,EAAE,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;wBAC5D,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;qBAC5C,CAAA;gBACH,CAAC;YACH,CAAC;YAED,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YAE9C,IAAI,CAAC,IAAI;gBACP,OAAO;oBACL,MAAM,EAAE,GAAG;oBACX,IAAI,EAAE;wBACJ,OAAO,EAAE,OAAO,EAAE,aAAa;qBAChC;iBACF,CAAA;YAEH,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC1B,OAAO;wBACL,MAAM,EAAE,GAAG;wBACX,IAAI,EAAE;4BACJ,OAAO,EAAE,qBAAqB;yBAC/B;qBACF,CAAA;gBACH,CAAC;YACH,CAAC;YAED,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAI,KAAgB,EAAE,EAAE,EAAE,CAAA;YAE5C,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAExD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAA;QAC9F,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,EAAE,CAAA;QACrE,CAAC;IACH,CAAC,CAAA;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/post.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAGrE,eAAO,MAAM,gBAAgB,YAClB,OAAO,sBACI,kBAAkB,GAAG,IAAI,oBAC3B,OAAO,WAChB,2BAA2B,WAEL,WAAW;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/post.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAGrE,eAAO,MAAM,gBAAgB,YAClB,OAAO,sBACI,kBAAkB,GAAG,IAAI,oBAC3B,OAAO,WAChB,2BAA2B,WAEL,WAAW;;;;;;;;;;;;EAoD3C,CAAA"}
|
package/requestHandlers/post.js
CHANGED
|
@@ -6,7 +6,7 @@ import { TembaError } from '../requestInterceptor/TembaError.js';
|
|
|
6
6
|
export const createPostRoutes = (queries, requestInterceptor, returnNullFields, schemas) => {
|
|
7
7
|
const handlePost = async (req) => {
|
|
8
8
|
try {
|
|
9
|
-
const { headers, body, protocol, host, resource } = req;
|
|
9
|
+
const { headers, body, protocol, host, resource, id } = req;
|
|
10
10
|
const validationResult = validate(body, schemas[resource]);
|
|
11
11
|
if (validationResult.isValid === false) {
|
|
12
12
|
return { status: 400, body: { message: validationResult.errorMessage } };
|
|
@@ -14,7 +14,7 @@ export const createPostRoutes = (queries, requestInterceptor, returnNullFields,
|
|
|
14
14
|
let body2 = body;
|
|
15
15
|
if (requestInterceptor?.post) {
|
|
16
16
|
try {
|
|
17
|
-
body2 = interceptPostRequest(requestInterceptor.post, headers, resource, body);
|
|
17
|
+
body2 = interceptPostRequest(requestInterceptor.post, headers, resource, id, body);
|
|
18
18
|
}
|
|
19
19
|
catch (error) {
|
|
20
20
|
return {
|
|
@@ -23,7 +23,17 @@ export const createPostRoutes = (queries, requestInterceptor, returnNullFields,
|
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
|
|
26
|
+
if (id) {
|
|
27
|
+
const item = await queries.getById(resource, id);
|
|
28
|
+
if (item)
|
|
29
|
+
return {
|
|
30
|
+
status: 409,
|
|
31
|
+
body: {
|
|
32
|
+
message: `ID '${id}' already exists`,
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
const newItem = await queries.create(resource, id, body2);
|
|
27
37
|
return {
|
|
28
38
|
headers: {
|
|
29
39
|
Location: format({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post.js","sourceRoot":"","sources":["../../../src/requestHandlers/post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAK7C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAE7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAAoC,EACpC,EAAE;IACF,MAAM,UAAU,GAAG,KAAK,EAAE,GAAgB,EAAE,EAAE;QAC5C,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAA;
|
|
1
|
+
{"version":3,"file":"post.js","sourceRoot":"","sources":["../../../src/requestHandlers/post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAK7C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAE7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAAoC,EACpC,EAAE;IACF,MAAM,UAAU,GAAG,KAAK,EAAE,GAAgB,EAAE,EAAE;QAC5C,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;YAE3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC1D,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACvC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAA;YAC1E,CAAC;YAED,IAAI,KAAK,GAAG,IAAI,CAAA;YAChB,IAAI,kBAAkB,EAAE,IAAI,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,KAAK,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;gBACpF,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,OAAO;wBACL,MAAM,EAAE,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;wBAC5D,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;qBAC5C,CAAA;gBACH,CAAC;YACH,CAAC;YAED,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;gBAEhD,IAAI,IAAI;oBACN,OAAO;wBACL,MAAM,EAAE,GAAG;wBACX,IAAI,EAAE;4BACJ,OAAO,EAAE,OAAO,EAAE,kBAAkB;yBACrC;qBACF,CAAA;YACL,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAsB,CAAC,CAAA;YAE1E,OAAO;gBACL,OAAO,EAAE;oBACP,QAAQ,EAAE,MAAM,CAAC;wBACf,QAAQ,EAAE,QAAQ;wBAClB,IAAI,EAAE,IAAI;wBACV,QAAQ,EAAE,GAAG,QAAQ,IAAI,OAAO,CAAC,EAAE,EAAE;qBACtC,CAAC;iBACH;gBACD,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC;aAC7D,CAAA;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,EAAE,CAAA;QACrE,CAAC;IACH,CAAC,CAAA;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA"}
|
package/requestHandlers/put.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { ValidateFunctionPerResource } from '../schema/types.js';
|
|
|
2
2
|
import type { PutRequest } from './types.js';
|
|
3
3
|
import type { Queries } from '../data/types.js';
|
|
4
4
|
import type { RequestInterceptor } from '../requestInterceptor/types.js';
|
|
5
|
-
export declare const createPutRoutes: (queries: Queries, requestInterceptor: RequestInterceptor | null, returnNullFields: boolean, schemas: ValidateFunctionPerResource | null,
|
|
5
|
+
export declare const createPutRoutes: (queries: Queries, requestInterceptor: RequestInterceptor | null, returnNullFields: boolean, schemas: ValidateFunctionPerResource | null, etagsEnabled: boolean) => (req: PutRequest) => Promise<{
|
|
6
6
|
status: number;
|
|
7
7
|
body: unknown;
|
|
8
8
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"put.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/put.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAIrE,eAAO,MAAM,eAAe,YACjB,OAAO,sBACI,kBAAkB,GAAG,IAAI,oBAC3B,OAAO,WAChB,2BAA2B,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"put.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/put.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAIrE,eAAO,MAAM,eAAe,YACjB,OAAO,sBACI,kBAAkB,GAAG,IAAI,oBAC3B,OAAO,WAChB,2BAA2B,GAAG,IAAI,gBAC7B,OAAO,WAES,UAAU;;;EAsDzC,CAAA"}
|
package/requestHandlers/put.js
CHANGED
|
@@ -3,7 +3,7 @@ import { validate } from '../schema/validate.js';
|
|
|
3
3
|
import { removeNullFields } from './utils.js';
|
|
4
4
|
import { TembaError } from '../requestInterceptor/TembaError.js';
|
|
5
5
|
import { etag } from '../etags/etags.js';
|
|
6
|
-
export const createPutRoutes = (queries, requestInterceptor, returnNullFields, schemas,
|
|
6
|
+
export const createPutRoutes = (queries, requestInterceptor, returnNullFields, schemas, etagsEnabled) => {
|
|
7
7
|
const handlePut = async (req) => {
|
|
8
8
|
try {
|
|
9
9
|
const { headers, body, resource, id } = req;
|
|
@@ -31,7 +31,7 @@ export const createPutRoutes = (queries, requestInterceptor, returnNullFields, s
|
|
|
31
31
|
message: `ID '${id}' not found`,
|
|
32
32
|
},
|
|
33
33
|
};
|
|
34
|
-
if (
|
|
34
|
+
if (etagsEnabled) {
|
|
35
35
|
const itemEtag = etag(JSON.stringify(item));
|
|
36
36
|
if (req.etag !== itemEtag) {
|
|
37
37
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"put.js","sourceRoot":"","sources":["../../../src/requestHandlers/put.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK1C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAErC,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAA2C,EAC3C,
|
|
1
|
+
{"version":3,"file":"put.js","sourceRoot":"","sources":["../../../src/requestHandlers/put.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK1C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAErC,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAA2C,EAC3C,YAAqB,EACrB,EAAE;IACF,MAAM,SAAS,GAAG,KAAK,EAAE,GAAe,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;YAE3C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC5D,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACvC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAA;YAC1E,CAAC;YAED,IAAI,KAAK,GAAG,IAAI,CAAA;YAChB,IAAI,kBAAkB,EAAE,GAAG,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,KAAK,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;gBAClF,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,OAAO;wBACL,MAAM,EAAE,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;wBAC5D,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;qBAC5C,CAAA;gBACH,CAAC;YACH,CAAC;YAED,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YAE9C,IAAI,CAAC,IAAI;gBACP,OAAO;oBACL,MAAM,EAAE,GAAG;oBACX,IAAI,EAAE;wBACJ,OAAO,EAAE,OAAO,EAAE,aAAa;qBAChC;iBACF,CAAA;YAEH,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC1B,OAAO;wBACL,MAAM,EAAE,GAAG;wBACX,IAAI,EAAE;4BACJ,OAAO,EAAE,qBAAqB;yBAC/B;qBACF,CAAA;gBACH,CAAC;YACH,CAAC;YAED,IAAI,GAAG,EAAE,GAAI,KAAgB,EAAE,EAAE,EAAE,CAAA;YAEnC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAE1D,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAA;QAChG,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,EAAE,CAAA;QACrE,CAAC;IACH,CAAC,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
|