@nmshd/consumption 1.0.7 → 1.0.11

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.7",
10
- build: "9",
11
- date: "2021-12-21T11:15:38+00:00",
12
- commit: "e78278e1413f85e42e794e13e6d65b9c51906bc1",
9
+ version: "1.0.11",
10
+ build: "13",
11
+ date: "2021-12-29T14:32:15+00:00",
12
+ commit: "be407a6eedf0b92497314484fefd282be5ba6254",
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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RelationshipInfoUtil = void 0;
4
+ const ts_serval_1 = require("@js-soft/ts-serval");
4
5
  const content_1 = require("@nmshd/content");
5
6
  const transport_1 = require("@nmshd/transport");
6
7
  const consumption_1 = require("../../consumption");
@@ -20,53 +21,50 @@ class RelationshipInfoUtil {
20
21
  if (!relationship) {
21
22
  throw transport_1.TransportErrors.general.recordNotFound(transport_1.Relationship, id.toString()).logWith(this._log);
22
23
  }
23
- const template = await this.parent.accountController.relationshipTemplates.getRelationshipTemplate(relationship.cache.template.id);
24
- if (!template) {
25
- throw transport_1.TransportErrors.general
26
- .recordNotFound(transport_1.RelationshipTemplate, relationship.cache.template.id.toString())
27
- .logWith(this._log);
28
- }
29
- await this.parseTemplateBody(relationship, template);
24
+ await this.parseTemplateBody(relationship);
30
25
  await this.parseCreationRequest(relationship);
31
26
  return await this.createRelationshipInfo(relationship);
32
27
  }
33
28
  getTitle(relationship, attributeMap) {
34
29
  var _a, _b, _c, _d, _e, _f;
35
30
  let title = relationship.peer.address.toString().substring(3, 9);
36
- const thingname = (_a = attributeMap.get("Thing.name")) === null || _a === void 0 ? void 0 : _a.content.value;
37
- const firstname = (_b = attributeMap.get("Person.firstname")) === null || _b === void 0 ? void 0 : _b.content.value;
38
- const lastname = (_c = attributeMap.get("Person.lastname")) === null || _c === void 0 ? void 0 : _c.content.value;
31
+ const thingName = (_a = attributeMap.get("Thing.name")) === null || _a === void 0 ? void 0 : _a.content.value;
32
+ const givenName = (_b = attributeMap.get("Person.givenName")) === null || _b === void 0 ? void 0 : _b.content.value;
33
+ const familyName = (_c = attributeMap.get("Person.familyName")) === null || _c === void 0 ? void 0 : _c.content.value;
39
34
  const gender = (_d = attributeMap.get("Person.gender")) === null || _d === void 0 ? void 0 : _d.content.value;
40
35
  const orgname = (_e = attributeMap.get("Organization.name")) === null || _e === void 0 ? void 0 : _e.content.value;
41
- const legalname = (_f = attributeMap.get("Organization.legalname")) === null || _f === void 0 ? void 0 : _f.content.value;
42
- if (thingname) {
43
- title = thingname;
36
+ const legalName = (_f = attributeMap.get("Organization.legalname")) === null || _f === void 0 ? void 0 : _f.content.value;
37
+ if (thingName) {
38
+ title = thingName;
39
+ }
40
+ else if (givenName && familyName) {
41
+ title = `${givenName} ${familyName}`;
44
42
  }
45
- else if (firstname && lastname) {
46
- title = `${firstname} ${lastname}`;
43
+ else if (givenName) {
44
+ title = givenName;
47
45
  }
48
- else if (lastname && gender) {
49
- title = `~~gender.salutation.${gender}~~ ${lastname}`;
46
+ else if (familyName && gender) {
47
+ title = `i18n://salutation.gender.${gender} ${familyName}`;
50
48
  }
51
49
  else if (orgname) {
52
50
  title = orgname;
53
51
  }
54
- else if (legalname) {
55
- title = legalname;
52
+ else if (legalName) {
53
+ title = legalName;
56
54
  }
57
55
  return title;
58
56
  }
59
57
  async createRelationshipInfo(relationship) {
60
58
  const peerAddress = relationship.peer.address;
61
59
  const truncatedAddress = peerAddress.address.substring(3, 9);
62
- let info = await RelationshipInfo_1.RelationshipInfo.from({
60
+ const info = await RelationshipInfo_1.RelationshipInfo.from({
63
61
  attributes: [],
64
62
  id: await consumption_1.ConsumptionIds.relationshipInfo.generate(),
65
63
  isPinned: false,
66
64
  relationshipId: relationship.id,
67
65
  title: truncatedAddress
68
66
  });
69
- info = await this.parent.relationshipInfo.createRelationshipInfo(info);
67
+ // info = await this.parent.relationshipInfo.createRelationshipInfo(info)
70
68
  const items = await this.parent.sharedItems.getSharedItems({
71
69
  sharedBy: relationship.peer.address.toString()
72
70
  });
@@ -86,75 +84,135 @@ class RelationshipInfoUtil {
86
84
  info.attributes = attributes;
87
85
  const title = this.getTitle(relationship, attributeMap);
88
86
  info.title = title;
89
- await this.parent.relationshipInfo.updateRelationshipInfo(info);
87
+ // await this.parent.relationshipInfo.updateRelationshipInfo(info)
90
88
  return info;
91
89
  }
92
- async parseTemplateBody(relationship, template) {
90
+ async parseTemplateBody(relationship) {
91
+ const template = relationship.cache.template;
93
92
  if (!template.cache) {
94
93
  throw transport_1.TransportErrors.general.cacheEmpty(transport_1.RelationshipTemplate, template.id.toString()).logWith(this._log);
95
94
  }
95
+ const body = template.cache.content;
96
96
  const isTemplator = this.parent.accountController.identity.isMe(template.cache.createdBy);
97
- if (template.cache.content instanceof content_1.RelationshipTemplateBody) {
98
- const body = template.cache.content;
97
+ const sharedAt = template.cache.createdAt;
98
+ const sharedBy = isTemplator ? this.parent.accountController.identity.address : relationship.peer.address;
99
+ const sharedWith = isTemplator ? relationship.peer.address : this.parent.accountController.identity.address;
100
+ const sharedItemsWithSameReference = await this.parent.sharedItems.getSharedItems({
101
+ reference: template.id.toString()
102
+ });
103
+ const missingItems = [];
104
+ if (body instanceof content_1.RelationshipTemplateBody) {
99
105
  const attributes = body.sharedAttributes;
100
106
  if (attributes) {
101
- const sharedAt = template.cache.createdAt;
102
- const sharedBy = isTemplator
103
- ? this.parent.accountController.identity.address
104
- : relationship.peer.address;
105
- const sharedWith = isTemplator
106
- ? relationship.peer.address
107
- : this.parent.accountController.identity.address;
108
- for (const attribute of attributes) {
109
- const sharedItem = await SharedItem_1.SharedItem.from({
110
- id: await consumption_1.ConsumptionIds.sharedItem.generate(),
111
- content: attribute,
112
- sharedAt: sharedAt,
113
- sharedBy: sharedBy,
114
- sharedWith: sharedWith,
115
- reference: template.id,
116
- expiresAt: attribute.validTo
107
+ if (sharedItemsWithSameReference.length !== attributes.length) {
108
+ attributes.forEach((attribute) => {
109
+ if (!sharedItemsWithSameReference.find(function (item) {
110
+ const content = item.content;
111
+ return content.name === attribute.name;
112
+ })) {
113
+ missingItems.push(attribute);
114
+ }
115
+ });
116
+ }
117
+ }
118
+ }
119
+ else {
120
+ // Try to parse the old template format (without types)
121
+ let oldTemplateBody = body;
122
+ if (body instanceof ts_serval_1.JSONWrapper || body instanceof ts_serval_1.JSONWrapperAsync) {
123
+ oldTemplateBody = oldTemplateBody.value;
124
+ }
125
+ if ((oldTemplateBody === null || oldTemplateBody === void 0 ? void 0 : oldTemplateBody.attributes) && Array.isArray(oldTemplateBody.attributes)) {
126
+ if (sharedItemsWithSameReference.length !== oldTemplateBody.attributes.length) {
127
+ oldTemplateBody.attributes.forEach((attribute) => {
128
+ if (!sharedItemsWithSameReference.find(function (item) {
129
+ const content = item.content;
130
+ return content.name === attribute.name;
131
+ })) {
132
+ missingItems.push(content_1.Attribute.from({
133
+ name: attribute.name,
134
+ value: attribute.value
135
+ }));
136
+ }
117
137
  });
118
- await this.parent.sharedItems.createSharedItem(sharedItem);
119
138
  }
120
139
  }
121
140
  }
141
+ for (const attribute of missingItems) {
142
+ const sharedItem = await SharedItem_1.SharedItem.from({
143
+ id: await consumption_1.ConsumptionIds.sharedItem.generate(),
144
+ content: attribute,
145
+ sharedAt: sharedAt,
146
+ sharedBy: sharedBy,
147
+ sharedWith: sharedWith,
148
+ reference: template.id,
149
+ expiresAt: attribute.validTo
150
+ });
151
+ await this.parent.sharedItems.createSharedItem(sharedItem);
152
+ }
122
153
  }
123
154
  async parseCreationRequest(relationship) {
124
- const request = relationship.cache.creationChange.request;
125
- if (!request.content) {
126
- const error = new Error("error.consumption.noRequestContent");
127
- this._log.error(error);
128
- throw error;
129
- }
155
+ const change = relationship.cache.creationChange;
156
+ const request = change.request;
157
+ const body = request.content;
130
158
  const isRequestor = this.parent.accountController.identity.isMe(request.createdBy);
131
- if (request.content instanceof content_1.RelationshipCreationChangeRequestBody) {
132
- const body = request.content;
159
+ const sharedAt = request.createdAt;
160
+ const sharedBy = isRequestor ? this.parent.accountController.identity.address : relationship.peer.address;
161
+ const sharedWith = isRequestor ? relationship.peer.address : this.parent.accountController.identity.address;
162
+ const sharedItemsWithSameReference = await this.parent.sharedItems.getSharedItems({
163
+ reference: change.id.toString()
164
+ });
165
+ const missingItems = [];
166
+ if (body instanceof content_1.RelationshipCreationChangeRequestBody) {
133
167
  const attributes = body.sharedAttributes;
134
- if (attributes) {
135
- const sharedAt = request.createdAt;
136
- const sharedBy = isRequestor
137
- ? this.parent.accountController.identity.address
138
- : relationship.peer.address;
139
- const sharedWith = isRequestor
140
- ? relationship.peer.address
141
- : this.parent.accountController.identity.address;
142
- for (const attribute of attributes) {
143
- const sharedItem = await SharedItem_1.SharedItem.from({
144
- id: await consumption_1.ConsumptionIds.sharedItem.generate(),
145
- content: attribute,
146
- sharedAt: sharedAt,
147
- sharedBy: sharedBy,
148
- sharedWith: sharedWith,
149
- reference: relationship.id,
150
- expiresAt: attribute.validTo
168
+ if (attributes && attributes.length > 0) {
169
+ if (sharedItemsWithSameReference.length !== attributes.length) {
170
+ attributes.forEach((attribute) => {
171
+ if (!sharedItemsWithSameReference.find(function (item) {
172
+ const content = item.content;
173
+ return content.name === attribute.name;
174
+ })) {
175
+ missingItems.push(attribute);
176
+ }
151
177
  });
152
- await this.parent.sharedItems.createSharedItem(sharedItem);
153
178
  }
154
179
  }
155
180
  }
156
181
  else {
157
- throw new Error("Request.content.content is no RelationshipCreationChangeRequestBody");
182
+ // Try to parse the old request format (without types)
183
+ let oldRequestBody = body;
184
+ if (body instanceof ts_serval_1.JSONWrapper || body instanceof ts_serval_1.JSONWrapperAsync) {
185
+ oldRequestBody = oldRequestBody.value;
186
+ }
187
+ if (oldRequestBody === null || oldRequestBody === void 0 ? void 0 : oldRequestBody.attributes) {
188
+ const keys = Object.keys(oldRequestBody.attributes);
189
+ if (sharedItemsWithSameReference.length !== keys.length) {
190
+ keys.forEach((key) => {
191
+ const attribute = oldRequestBody.attributes[key];
192
+ if (!sharedItemsWithSameReference.find(function (item) {
193
+ const content = item.content;
194
+ return content.name === attribute.name;
195
+ })) {
196
+ missingItems.push(content_1.Attribute.from({
197
+ name: attribute.name,
198
+ value: attribute.value
199
+ }));
200
+ }
201
+ });
202
+ }
203
+ }
204
+ }
205
+ for (const attribute of missingItems) {
206
+ const sharedItem = await SharedItem_1.SharedItem.from({
207
+ id: await consumption_1.ConsumptionIds.sharedItem.generate(),
208
+ content: attribute,
209
+ sharedAt: sharedAt,
210
+ sharedBy: sharedBy,
211
+ sharedWith: sharedWith,
212
+ reference: change.id,
213
+ expiresAt: attribute.validTo
214
+ });
215
+ await this.parent.sharedItems.createSharedItem(sharedItem);
158
216
  }
159
217
  }
160
218
  }
@@ -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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"}