Browse Source

fix hydra normalizer to manage new hydra format

Olivier Massot 2 months ago
parent
commit
e8e9829baf
1 changed files with 10 additions and 12 deletions
  1. 10 12
      services/data/normalizer/hydraNormalizer.ts

+ 10 - 12
services/data/normalizer/hydraNormalizer.ts

@@ -57,8 +57,8 @@ class HydraNormalizer {
     hydraData: AnyJson,
     model?: typeof ApiResource
   ): AnyJson {
-    if (hydraData['@type'] === 'hydra:Collection') {
-      const members = hydraData['hydra:member']
+    if (hydraData['@type'] === 'Collection') {
+      const members = hydraData.member
       return members.map((item: AnyJson) =>
         HydraNormalizer.denormalizeItem(item, model)
       )
@@ -74,32 +74,30 @@ class HydraNormalizer {
    * @protected
    */
   protected static getMetadata(data: AnyJson): HydraMetadata {
-    if (data['@type'] !== 'hydra:Collection') {
+    if (data['@type'] !== 'Collection') {
       // A single item, no metadata
       return { type: METADATA_TYPE.ITEM }
     }
 
     const metadata: HydraMetadata = {
-      totalItems: data['hydra:totalItems'],
+      totalItems: data.totalItems,
     }
 
-    if (data['hydra:view']) {
+    if (data.view) {
       /**
-       * Extract the page number from the IRIs in the hydra:view section
+       * Extract the page number from the IRIs in the view section
        */
       const extractPageNumber = (
         pos: string,
         default_: number | undefined = undefined
       ): number | undefined => {
-        const iri = data['hydra:view']['hydra:' + pos]
+        const iri = data.view['' + pos]
         if (!iri) {
           return default_
         }
-        return UrlUtils.getParameter(
-          data['hydra:view']['hydra:' + pos],
-          'page',
-          default_
-        ) as number | undefined
+        return UrlUtils.getParameter(data.view['' + pos], 'page', default_) as
+          | number
+          | undefined
       }
 
       // TODO: utile d'ajouter la page en cours?