From fc8bcf4fe18d9eb2a2bf1043f89621be14cbcb4e Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Wed, 15 Jan 2020 14:41:07 +0100
Subject: [PATCH] Use the embedded json-ld context for expanding

---
 packages/common/jsonld.js | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/packages/common/jsonld.js b/packages/common/jsonld.js
index c6b7b2a4..0d34d188 100644
--- a/packages/common/jsonld.js
+++ b/packages/common/jsonld.js
@@ -216,19 +216,19 @@ export default class JSONLD {
      * Expands a member of a list to a object with schema.org properties
      *
      * @param member
+     * @param [context]
      */
-    expandMember(member) {
-        const type = member["@type"];
+    expandMember(member, context) {
+        if (context === undefined) {
+            context = member["@context"];
+        }
 
-        const entity = this.getEntityForIdentifier(type);
         let result = {"@id": member["@id"]};
-
-        entity["hydra:supportedProperty"].forEach(function (property) {
-            const id = property["hydra:property"]["@id"];
-            const title = property["hydra:title"];
-
-            result[id] = member[title];
-        });
+        for (const key of Object.keys(context)) {
+            const value = context[key];
+            if (member[key] !== undefined)
+                result[value] = member[key];
+        }
 
         return result;
     }
@@ -239,7 +239,7 @@ export default class JSONLD {
      * @param member
      * @param localContext
      */
-    static compactMember(member, localContext) {
+    compactMember(member, localContext) {
         let result = {};
 
         for (const property in localContext) {
@@ -267,11 +267,12 @@ export default class JSONLD {
             return [];
         }
 
+        const otherContext = data['@context'];
         let results = [];
         let that = this;
 
         members.forEach(function (member) {
-            results.push(JSONLD.compactMember(that.expandMember(member), localContext));
+            results.push(that.compactMember(that.expandMember(member, otherContext), localContext));
         });
 
         return results;
-- 
GitLab