@twin.org/auditable-item-stream-service 0.9.0 → 0.9.1-next.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.
@@ -1,11 +1,11 @@
1
1
  // Copyright 2024 IOTA Stiftung.
2
2
  // SPDX-License-Identifier: Apache-2.0.
3
- import { HttpContextIdKeys, HttpParameterHelper, HttpUrlHelper } from "@twin.org/api-models";
3
+ import { HttpContextIdKeys, HttpHeaderHelper, HttpParameterHelper } from "@twin.org/api-models";
4
4
  import { AuditableItemStreamContexts, AuditableItemStreamTypes } from "@twin.org/auditable-item-stream-models";
5
5
  import { ContextIdStore } from "@twin.org/context";
6
- import { Coerce, ComponentFactory, Guards, Is } from "@twin.org/core";
6
+ import { Coerce, ComponentFactory, Guards } from "@twin.org/core";
7
7
  import { SchemaOrgContexts, SchemaOrgTypes } from "@twin.org/standards-schema-org";
8
- import { HeaderHelper, HeaderTypes, HttpStatusCode, MimeTypes } from "@twin.org/web";
8
+ import { HeaderTypes, HttpStatusCode, MimeTypes } from "@twin.org/web";
9
9
  /**
10
10
  * The source identifier used when communicating errors from these routes.
11
11
  */
@@ -1036,11 +1036,11 @@ export async function auditableItemStreamCreate(httpRequestContext, componentNam
1036
1036
  Guards.object(ROUTES_SOURCE, "request.body", request.body);
1037
1037
  const component = ComponentFactory.get(componentName);
1038
1038
  const id = await component.create(request.body);
1039
+ const headers = {};
1040
+ HttpHeaderHelper.buildId(headers, id);
1039
1041
  return {
1040
1042
  statusCode: HttpStatusCode.created,
1041
- headers: {
1042
- [HeaderTypes.Location]: id
1043
- }
1043
+ headers
1044
1044
  };
1045
1045
  }
1046
1046
  /**
@@ -1061,13 +1061,10 @@ export async function auditableItemStreamGet(httpRequestContext, componentName,
1061
1061
  verifyStream: Coerce.boolean(request.query?.verifyStream),
1062
1062
  verifyEntries: Coerce.boolean(request.query?.verifyEntries)
1063
1063
  });
1064
- const headers = {
1065
- [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
1066
- };
1067
- if (Is.stringValue(result.cursor)) {
1068
- const contextIds = await ContextIdStore.getContextIds();
1069
- headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(HttpUrlHelper.replaceOrigin(httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin]), { cursor: result.cursor }, "next");
1070
- }
1064
+ const headers = {};
1065
+ HttpHeaderHelper.buildJsonContentType(headers, request.headers);
1066
+ const contextIds = await ContextIdStore.getContextIds();
1067
+ HttpHeaderHelper.buildCursor(headers, httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin], result.cursor);
1071
1068
  return {
1072
1069
  headers,
1073
1070
  body: result.stream
@@ -1140,13 +1137,10 @@ export async function auditableItemStreamList(httpRequestContext, componentName,
1140
1137
  Guards.object(ROUTES_SOURCE, "request.query", request.query);
1141
1138
  const component = ComponentFactory.get(componentName);
1142
1139
  const result = await component.query(HttpParameterHelper.objectFromString(request.query?.conditions), request.query?.orderBy, request.query?.orderByDirection, HttpParameterHelper.arrayFromString(request.query?.properties), request.query?.cursor, Coerce.integer(request.query?.limit));
1143
- const headers = {
1144
- [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
1145
- };
1146
- if (Is.stringValue(result.cursor)) {
1147
- const contextIds = await ContextIdStore.getContextIds();
1148
- headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(HttpUrlHelper.replaceOrigin(httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin]), { cursor: result.cursor }, "next");
1149
- }
1140
+ const headers = {};
1141
+ HttpHeaderHelper.buildJsonContentType(headers, request.headers);
1142
+ const contextIds = await ContextIdStore.getContextIds();
1143
+ HttpHeaderHelper.buildCursor(headers, httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin], result.cursor);
1150
1144
  return {
1151
1145
  headers,
1152
1146
  body: result.entries
@@ -1167,11 +1161,11 @@ export async function auditableItemStreamCreateEntry(httpRequestContext, compone
1167
1161
  Guards.objectValue(ROUTES_SOURCE, "request.body.entryObject", request.body.entryObject);
1168
1162
  const component = ComponentFactory.get(componentName);
1169
1163
  const id = await component.createEntry(request.pathParams.id, request.body.entryObject);
1164
+ const headers = {};
1165
+ HttpHeaderHelper.buildId(headers, id);
1170
1166
  return {
1171
1167
  statusCode: HttpStatusCode.created,
1172
- headers: {
1173
- [HeaderTypes.Location]: id
1174
- }
1168
+ headers
1175
1169
  };
1176
1170
  }
1177
1171
  /**
@@ -1228,12 +1222,10 @@ export async function auditableItemStreamGetEntry(httpRequestContext, componentN
1228
1222
  const result = await component.getEntry(request.pathParams.id, request.pathParams.entryId, {
1229
1223
  verifyEntry: Coerce.boolean(request.query?.verifyEntry)
1230
1224
  });
1225
+ const headers = {};
1226
+ HttpHeaderHelper.buildJsonContentType(headers, request.headers);
1231
1227
  return {
1232
- headers: {
1233
- [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd
1234
- ? MimeTypes.JsonLd
1235
- : MimeTypes.Json
1236
- },
1228
+ headers,
1237
1229
  body: result
1238
1230
  };
1239
1231
  }
@@ -1251,12 +1243,10 @@ export async function auditableItemStreamGetEntryObject(httpRequestContext, comp
1251
1243
  Guards.stringValue(ROUTES_SOURCE, "request.pathParams.entryId", request.pathParams.entryId);
1252
1244
  const component = ComponentFactory.get(componentName);
1253
1245
  const result = await component.getEntryObject(request.pathParams.id, request.pathParams.entryId);
1246
+ const headers = {};
1247
+ HttpHeaderHelper.buildJsonContentType(headers, request.headers);
1254
1248
  return {
1255
- headers: {
1256
- [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd
1257
- ? MimeTypes.JsonLd
1258
- : MimeTypes.Json
1259
- },
1249
+ headers,
1260
1250
  body: result
1261
1251
  };
1262
1252
  }
@@ -1280,13 +1270,10 @@ export async function auditableItemStreamListEntries(httpRequestContext, compone
1280
1270
  limit: Coerce.integer(request.query?.limit),
1281
1271
  cursor: request.query?.cursor
1282
1272
  });
1283
- const headers = {
1284
- [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
1285
- };
1286
- if (Is.stringValue(result.cursor)) {
1287
- const contextIds = await ContextIdStore.getContextIds();
1288
- headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(HttpUrlHelper.replaceOrigin(httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin]), { cursor: result.cursor }, "next");
1289
- }
1273
+ const headers = {};
1274
+ HttpHeaderHelper.buildJsonContentType(headers, request.headers);
1275
+ const contextIds = await ContextIdStore.getContextIds();
1276
+ HttpHeaderHelper.buildCursor(headers, httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin], result.cursor);
1290
1277
  return {
1291
1278
  headers,
1292
1279
  body: result.entries
@@ -1310,13 +1297,10 @@ export async function auditableItemStreamListEntriesNoStream(httpRequestContext,
1310
1297
  limit: Coerce.integer(request.query?.limit),
1311
1298
  cursor: request.query?.cursor
1312
1299
  });
1313
- const headers = {
1314
- [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
1315
- };
1316
- if (Is.stringValue(result.cursor)) {
1317
- const contextIds = await ContextIdStore.getContextIds();
1318
- headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(HttpUrlHelper.replaceOrigin(httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin]), { cursor: result.cursor }, "next");
1319
- }
1300
+ const headers = {};
1301
+ HttpHeaderHelper.buildJsonContentType(headers, request.headers);
1302
+ const contextIds = await ContextIdStore.getContextIds();
1303
+ HttpHeaderHelper.buildCursor(headers, httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin], result.cursor);
1320
1304
  return {
1321
1305
  headers,
1322
1306
  body: result.entries
@@ -1341,13 +1325,10 @@ export async function auditableItemStreamListEntryObjects(httpRequestContext, co
1341
1325
  limit: Coerce.integer(request.query?.limit),
1342
1326
  cursor: request.query?.cursor
1343
1327
  });
1344
- const headers = {
1345
- [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
1346
- };
1347
- if (Is.stringValue(result.cursor)) {
1348
- const contextIds = await ContextIdStore.getContextIds();
1349
- headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(HttpUrlHelper.replaceOrigin(httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin]), { cursor: result.cursor }, "next");
1350
- }
1328
+ const headers = {};
1329
+ HttpHeaderHelper.buildJsonContentType(headers, request.headers);
1330
+ const contextIds = await ContextIdStore.getContextIds();
1331
+ HttpHeaderHelper.buildCursor(headers, httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin], result.cursor);
1351
1332
  return {
1352
1333
  headers,
1353
1334
  body: result.entries
@@ -1370,13 +1351,10 @@ export async function auditableItemStreamListEntryObjectsNoStream(httpRequestCon
1370
1351
  limit: Coerce.integer(request.query?.limit),
1371
1352
  cursor: request.query?.cursor
1372
1353
  });
1373
- const headers = {
1374
- [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
1375
- };
1376
- if (Is.stringValue(result.cursor)) {
1377
- const contextIds = await ContextIdStore.getContextIds();
1378
- headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(HttpUrlHelper.replaceOrigin(httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin]), { cursor: result.cursor }, "next");
1379
- }
1354
+ const headers = {};
1355
+ HttpHeaderHelper.buildJsonContentType(headers, request.headers);
1356
+ const contextIds = await ContextIdStore.getContextIds();
1357
+ HttpHeaderHelper.buildCursor(headers, httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin], result.cursor);
1380
1358
  return {
1381
1359
  headers,
1382
1360
  body: result.entries