@nmshd/consumption 1.0.9 → 1.0.10

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.
@@ -6,10 +6,10 @@ const content_1 = require("@nmshd/content");
6
6
  const crypto_1 = require("@nmshd/crypto");
7
7
  const transport_1 = require("@nmshd/transport");
8
8
  exports.buildInformation = {
9
- version: "1.0.9",
10
- build: "11",
11
- date: "2021-12-21T13:20:41+00:00",
12
- commit: "8c9ee503dff9ab6d92e5c9316a2e1bc94308a719",
9
+ version: "1.0.10",
10
+ build: "12",
11
+ date: "2021-12-23T16:26:55+00:00",
12
+ commit: "d6f4641d66742bf72bc0399783a432af36ef8efc",
13
13
  dependencies: {},
14
14
  libraries: {
15
15
  transport: transport_1.buildInformation,
@@ -18,13 +18,21 @@ class RelationshipInfoController extends consumption_1.ConsumptionBaseController
18
18
  return result ? await RelationshipInfo_1.RelationshipInfo.from(result) : undefined;
19
19
  }
20
20
  async getRelationshipInfoByRelationship(relationshipId) {
21
- const result = await this.relationshipInfo.findOne({ relationshipId: relationshipId.toString() });
22
- if (result) {
23
- return await RelationshipInfo_1.RelationshipInfo.from(result);
24
- }
25
21
  const info = await new RelationshipInfoUtil_1.RelationshipInfoUtil(this.parent).createInitialRelationshipInfo(relationshipId);
26
- await this.relationshipInfo.create(info);
27
22
  return info;
23
+ /*
24
+ // So far, do not store the relationshipInfo, as they wouldn't be updated correctly
25
+
26
+ const result = await this.relationshipInfo.findOne({ relationshipId: relationshipId.toString() })
27
+
28
+ if (result) {
29
+ return await RelationshipInfo.from(result)
30
+ }
31
+
32
+ const info = await new RelationshipInfoUtil(this.parent).createInitialRelationshipInfo(relationshipId)
33
+ await this.relationshipInfo.create(info)
34
+ return info
35
+ */
28
36
  }
29
37
  async getRelationshipInfos(query) {
30
38
  const items = await this.relationshipInfo.find(query);
@@ -1 +1 @@
1
- {"version":3,"file":"RelationshipInfoController.js","sourceRoot":"","sources":["../../../src/modules/relationships/RelationshipInfoController.ts"],"names":[],"mappings":";;;AACA,mDAA2G;AAE3G,+DAA2D;AAC3D,iEAA6D;AAE7D,MAAa,0BAA2B,SAAQ,uCAAyB;IAGrE,YAAmB,MAA6B;QAC5C,KAAK,CAAC,uCAAyB,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAA;IACvE,CAAC;IAEM,KAAK,CAAC,IAAI;QACb,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;QAElB,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,kBAAkB,CAAC,CAAA;QACzG,OAAO,IAAI,CAAA;IACf,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,EAAU;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC9D,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,mCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACnE,CAAC;IAEM,KAAK,CAAC,iCAAiC,CAAC,cAAsB;QACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAEjG,IAAI,MAAM,EAAE;YACR,OAAO,MAAM,mCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;SAC7C;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,2CAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,6BAA6B,CAAC,cAAc,CAAC,CAAA;QACtG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACxC,OAAO,IAAI,CAAA;IACf,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,KAAW;QACzC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACrD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAmB,KAAK,EAAE,mCAAgB,CAAC,CAAA;IAC3E,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,gBAAkC;QAClE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAA;QACtG,IAAI,MAAM,EAAE;YACR,MAAM,+BAAiB,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAA;SAC9G;QAED,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;QACpD,OAAO,gBAAgB,CAAA;IAC3B,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,gBAAkC;QAClE,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC5F,IAAI,CAAC,mBAAmB,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAChD;QACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAA;IAC7E,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,gBAAkC;QAClE,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACxD,CAAC;CACJ;AAzDD,gEAyDC"}
1
+ {"version":3,"file":"RelationshipInfoController.js","sourceRoot":"","sources":["../../../src/modules/relationships/RelationshipInfoController.ts"],"names":[],"mappings":";;;AACA,mDAA2G;AAE3G,+DAA2D;AAC3D,iEAA6D;AAE7D,MAAa,0BAA2B,SAAQ,uCAAyB;IAGrE,YAAmB,MAA6B;QAC5C,KAAK,CAAC,uCAAyB,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAA;IACvE,CAAC;IAEM,KAAK,CAAC,IAAI;QACb,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;QAElB,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,kBAAkB,CAAC,CAAA;QACzG,OAAO,IAAI,CAAA;IACf,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,EAAU;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC9D,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,mCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACnE,CAAC;IAEM,KAAK,CAAC,iCAAiC,CAAC,cAAsB;QACjE,MAAM,IAAI,GAAG,MAAM,IAAI,2CAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,6BAA6B,CAAC,cAAc,CAAC,CAAA;QACtG,OAAO,IAAI,CAAA;QACX;;;;;;;;;;;;UAYE;IACN,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,KAAW;QACzC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACrD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAmB,KAAK,EAAE,mCAAgB,CAAC,CAAA;IAC3E,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,gBAAkC;QAClE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAA;QACtG,IAAI,MAAM,EAAE;YACR,MAAM,+BAAiB,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAA;SAC9G;QAED,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;QACpD,OAAO,gBAAgB,CAAA;IAC3B,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,gBAAkC;QAClE,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC5F,IAAI,CAAC,mBAAmB,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAChD;QACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAA;IAC7E,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,gBAAkC;QAClE,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACxD,CAAC;CACJ;AA/DD,gEA+DC"}
@@ -62,14 +62,14 @@ class RelationshipInfoUtil {
62
62
  async createRelationshipInfo(relationship) {
63
63
  const peerAddress = relationship.peer.address;
64
64
  const truncatedAddress = peerAddress.address.substring(3, 9);
65
- let info = await RelationshipInfo_1.RelationshipInfo.from({
65
+ const info = await RelationshipInfo_1.RelationshipInfo.from({
66
66
  attributes: [],
67
67
  id: await consumption_1.ConsumptionIds.relationshipInfo.generate(),
68
68
  isPinned: false,
69
69
  relationshipId: relationship.id,
70
70
  title: truncatedAddress
71
71
  });
72
- info = await this.parent.relationshipInfo.createRelationshipInfo(info);
72
+ // info = await this.parent.relationshipInfo.createRelationshipInfo(info)
73
73
  const items = await this.parent.sharedItems.getSharedItems({
74
74
  sharedBy: relationship.peer.address.toString()
75
75
  });
@@ -89,15 +89,15 @@ class RelationshipInfoUtil {
89
89
  info.attributes = attributes;
90
90
  const title = this.getTitle(relationship, attributeMap);
91
91
  info.title = title;
92
- await this.parent.relationshipInfo.updateRelationshipInfo(info);
92
+ // await this.parent.relationshipInfo.updateRelationshipInfo(info)
93
93
  return info;
94
94
  }
95
95
  async parseTemplateBody(relationship, template) {
96
96
  if (!template.cache) {
97
97
  throw transport_1.TransportErrors.general.cacheEmpty(transport_1.RelationshipTemplate, template.id.toString()).logWith(this._log);
98
98
  }
99
- const isTemplator = this.parent.accountController.identity.isMe(template.cache.createdBy);
100
99
  if (template.cache.content instanceof content_1.RelationshipTemplateBody) {
100
+ const isTemplator = this.parent.accountController.identity.isMe(template.cache.createdBy);
101
101
  const body = template.cache.content;
102
102
  const attributes = body.sharedAttributes;
103
103
  if (attributes) {
@@ -108,33 +108,46 @@ class RelationshipInfoUtil {
108
108
  const sharedWith = isTemplator
109
109
  ? relationship.peer.address
110
110
  : this.parent.accountController.identity.address;
111
- for (const attribute of attributes) {
112
- const sharedItem = await SharedItem_1.SharedItem.from({
113
- id: await consumption_1.ConsumptionIds.sharedItem.generate(),
114
- content: attribute,
115
- sharedAt: sharedAt,
116
- sharedBy: sharedBy,
117
- sharedWith: sharedWith,
118
- reference: template.id,
119
- expiresAt: attribute.validTo
111
+ const sharedItemsWithSameReference = await this.parent.sharedItems.getSharedItems({
112
+ reference: template.id.toString()
113
+ });
114
+ if (sharedItemsWithSameReference.length !== attributes.length) {
115
+ const missingItems = [];
116
+ attributes.forEach((attribute) => {
117
+ if (!sharedItemsWithSameReference.find(function (item) {
118
+ const content = item.content;
119
+ return content.name === attribute.name;
120
+ })) {
121
+ missingItems.push(attribute);
122
+ }
120
123
  });
121
- await this.parent.sharedItems.createSharedItem(sharedItem);
124
+ for (const attribute of missingItems) {
125
+ const sharedItem = await SharedItem_1.SharedItem.from({
126
+ id: await consumption_1.ConsumptionIds.sharedItem.generate(),
127
+ content: attribute,
128
+ sharedAt: sharedAt,
129
+ sharedBy: sharedBy,
130
+ sharedWith: sharedWith,
131
+ reference: template.id,
132
+ expiresAt: attribute.validTo
133
+ });
134
+ await this.parent.sharedItems.createSharedItem(sharedItem);
135
+ }
122
136
  }
123
137
  }
124
138
  }
139
+ else {
140
+ // do nothing, we don't know the content
141
+ }
125
142
  }
126
143
  async parseCreationRequest(relationship) {
127
- const request = relationship.cache.creationChange.request;
128
- if (!request.content) {
129
- const error = new Error("error.consumption.noRequestContent");
130
- this._log.error(error);
131
- throw error;
132
- }
133
- const isRequestor = this.parent.accountController.identity.isMe(request.createdBy);
144
+ const change = relationship.cache.creationChange;
145
+ const request = change.request;
134
146
  if (request.content instanceof content_1.RelationshipCreationChangeRequestBody) {
147
+ const isRequestor = this.parent.accountController.identity.isMe(request.createdBy);
135
148
  const body = request.content;
136
149
  const attributes = body.sharedAttributes;
137
- if (attributes) {
150
+ if (attributes && attributes.length > 0) {
138
151
  const sharedAt = request.createdAt;
139
152
  const sharedBy = isRequestor
140
153
  ? this.parent.accountController.identity.address
@@ -142,22 +155,36 @@ class RelationshipInfoUtil {
142
155
  const sharedWith = isRequestor
143
156
  ? relationship.peer.address
144
157
  : this.parent.accountController.identity.address;
145
- for (const attribute of attributes) {
146
- const sharedItem = await SharedItem_1.SharedItem.from({
147
- id: await consumption_1.ConsumptionIds.sharedItem.generate(),
148
- content: attribute,
149
- sharedAt: sharedAt,
150
- sharedBy: sharedBy,
151
- sharedWith: sharedWith,
152
- reference: relationship.id,
153
- expiresAt: attribute.validTo
158
+ const sharedItemsWithSameReference = await this.parent.sharedItems.getSharedItems({
159
+ reference: change.id.toString()
160
+ });
161
+ if (sharedItemsWithSameReference.length !== attributes.length) {
162
+ const missingItems = [];
163
+ attributes.forEach((attribute) => {
164
+ if (!sharedItemsWithSameReference.find(function (item) {
165
+ const content = item.content;
166
+ return content.name === attribute.name;
167
+ })) {
168
+ missingItems.push(attribute);
169
+ }
154
170
  });
155
- await this.parent.sharedItems.createSharedItem(sharedItem);
171
+ for (const attribute of missingItems) {
172
+ const sharedItem = await SharedItem_1.SharedItem.from({
173
+ id: await consumption_1.ConsumptionIds.sharedItem.generate(),
174
+ content: attribute,
175
+ sharedAt: sharedAt,
176
+ sharedBy: sharedBy,
177
+ sharedWith: sharedWith,
178
+ reference: change.id,
179
+ expiresAt: attribute.validTo
180
+ });
181
+ await this.parent.sharedItems.createSharedItem(sharedItem);
182
+ }
156
183
  }
157
184
  }
158
185
  }
159
186
  else {
160
- throw new Error("Request.content.content is no RelationshipCreationChangeRequestBody");
187
+ // do nothing, we don't know the content
161
188
  }
162
189
  }
163
190
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RelationshipInfoUtil.js","sourceRoot":"","sources":["../../../src/modules/relationships/RelationshipInfoUtil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RelationshipInfoUtil.js","sourceRoot":"","sources":["../../../src/modules/relationships/RelationshipInfoUtil.ts"],"names":[],"mappings":"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"}
@@ -17,10 +17,10 @@ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
17
17
  const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
18
18
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
19
19
  exports.buildInformation = {
20
- version: "1.0.9",
21
- build: "11",
22
- date: "2021-12-21T13:20:41+00:00",
23
- commit: "8c9ee503dff9ab6d92e5c9316a2e1bc94308a719",
20
+ version: "1.0.10",
21
+ build: "12",
22
+ date: "2021-12-23T16:26:55+00:00",
23
+ commit: "d6f4641d66742bf72bc0399783a432af36ef8efc",
24
24
  dependencies: {},
25
25
  libraries: {
26
26
  transport: transport_1.buildInformation,
@@ -700,13 +700,21 @@ class RelationshipInfoController extends consumption_1.ConsumptionBaseController
700
700
  return result ? await RelationshipInfo_1.RelationshipInfo.from(result) : undefined;
701
701
  }
702
702
  async getRelationshipInfoByRelationship(relationshipId) {
703
- const result = await this.relationshipInfo.findOne({ relationshipId: relationshipId.toString() });
704
- if (result) {
705
- return await RelationshipInfo_1.RelationshipInfo.from(result);
706
- }
707
703
  const info = await new RelationshipInfoUtil_1.RelationshipInfoUtil(this.parent).createInitialRelationshipInfo(relationshipId);
708
- await this.relationshipInfo.create(info);
709
704
  return info;
705
+ /*
706
+ // So far, do not store the relationshipInfo, as they wouldn't be updated correctly
707
+
708
+ const result = await this.relationshipInfo.findOne({ relationshipId: relationshipId.toString() })
709
+
710
+ if (result) {
711
+ return await RelationshipInfo.from(result)
712
+ }
713
+
714
+ const info = await new RelationshipInfoUtil(this.parent).createInitialRelationshipInfo(relationshipId)
715
+ await this.relationshipInfo.create(info)
716
+ return info
717
+ */
710
718
  }
711
719
  async getRelationshipInfos(query) {
712
720
  const items = await this.relationshipInfo.find(query);
@@ -806,14 +814,14 @@ class RelationshipInfoUtil {
806
814
  async createRelationshipInfo(relationship) {
807
815
  const peerAddress = relationship.peer.address;
808
816
  const truncatedAddress = peerAddress.address.substring(3, 9);
809
- let info = await RelationshipInfo_1.RelationshipInfo.from({
817
+ const info = await RelationshipInfo_1.RelationshipInfo.from({
810
818
  attributes: [],
811
819
  id: await consumption_1.ConsumptionIds.relationshipInfo.generate(),
812
820
  isPinned: false,
813
821
  relationshipId: relationship.id,
814
822
  title: truncatedAddress
815
823
  });
816
- info = await this.parent.relationshipInfo.createRelationshipInfo(info);
824
+ // info = await this.parent.relationshipInfo.createRelationshipInfo(info)
817
825
  const items = await this.parent.sharedItems.getSharedItems({
818
826
  sharedBy: relationship.peer.address.toString()
819
827
  });
@@ -833,15 +841,15 @@ class RelationshipInfoUtil {
833
841
  info.attributes = attributes;
834
842
  const title = this.getTitle(relationship, attributeMap);
835
843
  info.title = title;
836
- await this.parent.relationshipInfo.updateRelationshipInfo(info);
844
+ // await this.parent.relationshipInfo.updateRelationshipInfo(info)
837
845
  return info;
838
846
  }
839
847
  async parseTemplateBody(relationship, template) {
840
848
  if (!template.cache) {
841
849
  throw transport_1.TransportErrors.general.cacheEmpty(transport_1.RelationshipTemplate, template.id.toString()).logWith(this._log);
842
850
  }
843
- const isTemplator = this.parent.accountController.identity.isMe(template.cache.createdBy);
844
851
  if (template.cache.content instanceof content_1.RelationshipTemplateBody) {
852
+ const isTemplator = this.parent.accountController.identity.isMe(template.cache.createdBy);
845
853
  const body = template.cache.content;
846
854
  const attributes = body.sharedAttributes;
847
855
  if (attributes) {
@@ -852,33 +860,46 @@ class RelationshipInfoUtil {
852
860
  const sharedWith = isTemplator
853
861
  ? relationship.peer.address
854
862
  : this.parent.accountController.identity.address;
855
- for (const attribute of attributes) {
856
- const sharedItem = await SharedItem_1.SharedItem.from({
857
- id: await consumption_1.ConsumptionIds.sharedItem.generate(),
858
- content: attribute,
859
- sharedAt: sharedAt,
860
- sharedBy: sharedBy,
861
- sharedWith: sharedWith,
862
- reference: template.id,
863
- expiresAt: attribute.validTo
863
+ const sharedItemsWithSameReference = await this.parent.sharedItems.getSharedItems({
864
+ reference: template.id.toString()
865
+ });
866
+ if (sharedItemsWithSameReference.length !== attributes.length) {
867
+ const missingItems = [];
868
+ attributes.forEach((attribute) => {
869
+ if (!sharedItemsWithSameReference.find(function (item) {
870
+ const content = item.content;
871
+ return content.name === attribute.name;
872
+ })) {
873
+ missingItems.push(attribute);
874
+ }
864
875
  });
865
- await this.parent.sharedItems.createSharedItem(sharedItem);
876
+ for (const attribute of missingItems) {
877
+ const sharedItem = await SharedItem_1.SharedItem.from({
878
+ id: await consumption_1.ConsumptionIds.sharedItem.generate(),
879
+ content: attribute,
880
+ sharedAt: sharedAt,
881
+ sharedBy: sharedBy,
882
+ sharedWith: sharedWith,
883
+ reference: template.id,
884
+ expiresAt: attribute.validTo
885
+ });
886
+ await this.parent.sharedItems.createSharedItem(sharedItem);
887
+ }
866
888
  }
867
889
  }
868
890
  }
891
+ else {
892
+ // do nothing, we don't know the content
893
+ }
869
894
  }
870
895
  async parseCreationRequest(relationship) {
871
- const request = relationship.cache.creationChange.request;
872
- if (!request.content) {
873
- const error = new Error("error.consumption.noRequestContent");
874
- this._log.error(error);
875
- throw error;
876
- }
877
- const isRequestor = this.parent.accountController.identity.isMe(request.createdBy);
896
+ const change = relationship.cache.creationChange;
897
+ const request = change.request;
878
898
  if (request.content instanceof content_1.RelationshipCreationChangeRequestBody) {
899
+ const isRequestor = this.parent.accountController.identity.isMe(request.createdBy);
879
900
  const body = request.content;
880
901
  const attributes = body.sharedAttributes;
881
- if (attributes) {
902
+ if (attributes && attributes.length > 0) {
882
903
  const sharedAt = request.createdAt;
883
904
  const sharedBy = isRequestor
884
905
  ? this.parent.accountController.identity.address
@@ -886,22 +907,36 @@ class RelationshipInfoUtil {
886
907
  const sharedWith = isRequestor
887
908
  ? relationship.peer.address
888
909
  : this.parent.accountController.identity.address;
889
- for (const attribute of attributes) {
890
- const sharedItem = await SharedItem_1.SharedItem.from({
891
- id: await consumption_1.ConsumptionIds.sharedItem.generate(),
892
- content: attribute,
893
- sharedAt: sharedAt,
894
- sharedBy: sharedBy,
895
- sharedWith: sharedWith,
896
- reference: relationship.id,
897
- expiresAt: attribute.validTo
910
+ const sharedItemsWithSameReference = await this.parent.sharedItems.getSharedItems({
911
+ reference: change.id.toString()
912
+ });
913
+ if (sharedItemsWithSameReference.length !== attributes.length) {
914
+ const missingItems = [];
915
+ attributes.forEach((attribute) => {
916
+ if (!sharedItemsWithSameReference.find(function (item) {
917
+ const content = item.content;
918
+ return content.name === attribute.name;
919
+ })) {
920
+ missingItems.push(attribute);
921
+ }
898
922
  });
899
- await this.parent.sharedItems.createSharedItem(sharedItem);
923
+ for (const attribute of missingItems) {
924
+ const sharedItem = await SharedItem_1.SharedItem.from({
925
+ id: await consumption_1.ConsumptionIds.sharedItem.generate(),
926
+ content: attribute,
927
+ sharedAt: sharedAt,
928
+ sharedBy: sharedBy,
929
+ sharedWith: sharedWith,
930
+ reference: change.id,
931
+ expiresAt: attribute.validTo
932
+ });
933
+ await this.parent.sharedItems.createSharedItem(sharedItem);
934
+ }
900
935
  }
901
936
  }
902
937
  }
903
938
  else {
904
- throw new Error("Request.content.content is no RelationshipCreationChangeRequestBody");
939
+ // do nothing, we don't know the content
905
940
  }
906
941
  }
907
942
  }