@nmshd/consumption 2.0.0-beta.5 → 2.0.0-beta.8
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.
- package/dist/buildInformation.js +4 -4
- package/dist/consumption/ConsumptionController.js +4 -2
- package/dist/consumption/ConsumptionController.js.map +1 -1
- package/dist/modules/index.d.ts +2 -2
- package/dist/modules/index.js +2 -2
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.d.ts +7 -0
- package/dist/modules/requests/itemProcessors/{createAttribute/AcceptCreateAttributeRequestItemParameters.js → createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.js} +7 -7
- package/dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.js.map +1 -0
- package/dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.d.ts +11 -0
- package/dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.js +44 -0
- package/dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.js.map +1 -0
- package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js +2 -1
- package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js.map +1 -1
- package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.d.ts +6 -8
- package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js +34 -72
- package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js.map +1 -1
- package/lib-web/nmshd.consumption.js +78 -129
- package/lib-web/nmshd.consumption.js.map +1 -1
- package/lib-web/nmshd.consumption.min.js +1 -1
- package/lib-web/nmshd.consumption.min.js.map +1 -1
- package/package.json +5 -5
- package/dist/modules/requests/itemProcessors/createAttribute/AcceptCreateAttributeRequestItemParameters.d.ts +0 -7
- package/dist/modules/requests/itemProcessors/createAttribute/AcceptCreateAttributeRequestItemParameters.js.map +0 -1
- package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.d.ts +0 -12
- package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js +0 -60
- package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js.map +0 -1
|
@@ -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: "2.0.0-beta.
|
|
21
|
-
build: "
|
|
22
|
-
date: "2022-08-
|
|
23
|
-
commit: "
|
|
20
|
+
version: "2.0.0-beta.8",
|
|
21
|
+
build: "58",
|
|
22
|
+
date: "2022-08-05T15:16:19+00:00",
|
|
23
|
+
commit: "e415cd06c69fd35f17d74f93d50a47c88f145137",
|
|
24
24
|
dependencies: {"@js-soft/docdb-querytranslator":"^1.1.0","ts-simple-nameof":"^1.3.1"},
|
|
25
25
|
libraries: {
|
|
26
26
|
transport: transport_1.buildInformation,
|
|
@@ -120,10 +120,12 @@ class ConsumptionController {
|
|
|
120
120
|
}
|
|
121
121
|
getDefaultProcessors() {
|
|
122
122
|
return new Map([
|
|
123
|
-
[content_1.
|
|
123
|
+
[content_1.ShareAttributeRequestItem, modules_1.ShareAttributeRequestItemProcessor],
|
|
124
|
+
[content_1.CreateRelationshipAttributeRequestItem, modules_1.CreateRelationshipAttributeRequestItemProcessor],
|
|
124
125
|
[content_1.ReadAttributeRequestItem, modules_1.ReadAttributeRequestItemProcessor],
|
|
125
126
|
[content_1.ProposeAttributeRequestItem, modules_1.ProposeAttributeRequestItemProcessor],
|
|
126
|
-
[content_1.
|
|
127
|
+
[content_1.ConsentRequestItem, modules_1.GenericRequestItemProcessor],
|
|
128
|
+
[content_1.AuthenticationRequestItem, modules_1.GenericRequestItemProcessor]
|
|
127
129
|
]);
|
|
128
130
|
}
|
|
129
131
|
}
|
|
@@ -1334,8 +1336,8 @@ __exportStar(__webpack_require__(/*! ./requests/incoming/IncomingRequestsControl
|
|
|
1334
1336
|
__exportStar(__webpack_require__(/*! ./requests/incoming/received/ReceivedIncomingRequestParameters */ "./dist/modules/requests/incoming/received/ReceivedIncomingRequestParameters.js"), exports);
|
|
1335
1337
|
__exportStar(__webpack_require__(/*! ./requests/incoming/requireManualDecision/RequireManualDecisionOfIncomingRequestParameters */ "./dist/modules/requests/incoming/requireManualDecision/RequireManualDecisionOfIncomingRequestParameters.js"), exports);
|
|
1336
1338
|
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/AbstractRequestItemProcessor */ "./dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.js"), exports);
|
|
1337
|
-
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/
|
|
1338
|
-
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/
|
|
1339
|
+
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters */ "./dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.js"), exports);
|
|
1340
|
+
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor */ "./dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.js"), exports);
|
|
1339
1341
|
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/GenericRequestItemProcessor */ "./dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js"), exports);
|
|
1340
1342
|
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/IRequestItemProcessor */ "./dist/modules/requests/itemProcessors/IRequestItemProcessor.js"), exports);
|
|
1341
1343
|
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/ProcessorConstructor */ "./dist/modules/requests/itemProcessors/ProcessorConstructor.js"), exports);
|
|
@@ -2378,10 +2380,10 @@ exports.ErrorValidationResult = ErrorValidationResult;
|
|
|
2378
2380
|
|
|
2379
2381
|
/***/ }),
|
|
2380
2382
|
|
|
2381
|
-
/***/ "./dist/modules/requests/itemProcessors/
|
|
2382
|
-
|
|
2383
|
-
!*** ./dist/modules/requests/itemProcessors/
|
|
2384
|
-
|
|
2383
|
+
/***/ "./dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.js":
|
|
2384
|
+
/*!************************************************************************************************************************************!*\
|
|
2385
|
+
!*** ./dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.js ***!
|
|
2386
|
+
\************************************************************************************************************************************/
|
|
2385
2387
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
2386
2388
|
|
|
2387
2389
|
"use strict";
|
|
@@ -2393,88 +2395,72 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
2393
2395
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
2394
2396
|
};
|
|
2395
2397
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2396
|
-
exports.
|
|
2398
|
+
exports.AcceptCreateRelationshipAttributeRequestItemParameters = void 0;
|
|
2397
2399
|
const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
|
|
2398
|
-
let
|
|
2400
|
+
let AcceptCreateRelationshipAttributeRequestItemParameters = class AcceptCreateRelationshipAttributeRequestItemParameters extends ts_serval_1.Serializable {
|
|
2399
2401
|
static from(value) {
|
|
2400
2402
|
return this.fromAny(value);
|
|
2401
2403
|
}
|
|
2402
2404
|
};
|
|
2403
|
-
|
|
2404
|
-
(0, ts_serval_1.type)("
|
|
2405
|
-
],
|
|
2406
|
-
exports.
|
|
2407
|
-
//# sourceMappingURL=
|
|
2405
|
+
AcceptCreateRelationshipAttributeRequestItemParameters = __decorate([
|
|
2406
|
+
(0, ts_serval_1.type)("AcceptCreateRelationshipAttributeRequestItemParameters")
|
|
2407
|
+
], AcceptCreateRelationshipAttributeRequestItemParameters);
|
|
2408
|
+
exports.AcceptCreateRelationshipAttributeRequestItemParameters = AcceptCreateRelationshipAttributeRequestItemParameters;
|
|
2409
|
+
//# sourceMappingURL=AcceptCreateRelationshipAttributeRequestItemParameters.js.map
|
|
2408
2410
|
|
|
2409
2411
|
/***/ }),
|
|
2410
2412
|
|
|
2411
|
-
/***/ "./dist/modules/requests/itemProcessors/
|
|
2412
|
-
|
|
2413
|
-
!*** ./dist/modules/requests/itemProcessors/
|
|
2414
|
-
|
|
2413
|
+
/***/ "./dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.js":
|
|
2414
|
+
/*!*****************************************************************************************************************************!*\
|
|
2415
|
+
!*** ./dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.js ***!
|
|
2416
|
+
\*****************************************************************************************************************************/
|
|
2415
2417
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
2416
2418
|
|
|
2417
2419
|
"use strict";
|
|
2418
2420
|
|
|
2419
2421
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2420
|
-
exports.
|
|
2422
|
+
exports.CreateRelationshipAttributeRequestItemProcessor = void 0;
|
|
2421
2423
|
const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
|
|
2422
2424
|
const consumption_1 = __webpack_require__(/*! ../../../../consumption */ "./dist/consumption/index.js");
|
|
2423
2425
|
const GenericRequestItemProcessor_1 = __webpack_require__(/*! ../GenericRequestItemProcessor */ "./dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js");
|
|
2424
2426
|
const ValidationResult_1 = __webpack_require__(/*! ../ValidationResult */ "./dist/modules/requests/itemProcessors/ValidationResult.js");
|
|
2425
|
-
class
|
|
2427
|
+
class CreateRelationshipAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
|
|
2426
2428
|
canCreateOutgoingRequestItem(requestItem, _request, _recipient) {
|
|
2427
2429
|
if (requestItem.attribute.owner.toString() !== "" &&
|
|
2428
2430
|
!requestItem.attribute.owner.equals(this.currentIdentityAddress)) {
|
|
2429
2431
|
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("The owner of the given `attribute` can only be an empty string. This is because you can only send Attributes where the recipient of the Request is the owner anyway. And in order to avoid mistakes, the owner will be automatically filled for you."));
|
|
2430
2432
|
}
|
|
2431
|
-
if (requestItem.attribute instanceof content_1.IdentityAttribute) {
|
|
2432
|
-
return this.canCreateRequestItemWithIdentityAttribute(requestItem);
|
|
2433
|
-
}
|
|
2434
|
-
return ValidationResult_1.ValidationResult.success();
|
|
2435
|
-
}
|
|
2436
|
-
canCreateRequestItemWithIdentityAttribute(requestItem) {
|
|
2437
|
-
if (!requestItem.sourceAttributeId) {
|
|
2438
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("'sourceAttributeId' cannot be undefined when sending an Identity Attribute."));
|
|
2439
|
-
}
|
|
2440
2433
|
return ValidationResult_1.ValidationResult.success();
|
|
2441
2434
|
}
|
|
2442
2435
|
async accept(requestItem, _params, requestInfo) {
|
|
2436
|
+
requestItem.attribute.owner ??= requestInfo.peer;
|
|
2443
2437
|
const peerLocalAttribute = await this.consumptionController.attributes.createPeerLocalAttribute({
|
|
2444
2438
|
content: requestItem.attribute,
|
|
2445
2439
|
peer: requestInfo.peer,
|
|
2446
2440
|
requestReference: requestInfo.id
|
|
2447
2441
|
});
|
|
2448
|
-
return content_1.
|
|
2449
|
-
|
|
2450
|
-
|
|
2442
|
+
return content_1.CreateRelationshipAttributeAcceptResponseItem.from({
|
|
2443
|
+
result: content_1.ResponseItemResult.Accepted,
|
|
2444
|
+
attributeId: peerLocalAttribute.id
|
|
2451
2445
|
});
|
|
2452
2446
|
}
|
|
2453
2447
|
async applyIncomingResponseItem(responseItem, requestItem, requestInfo) {
|
|
2454
|
-
if (!(responseItem instanceof content_1.
|
|
2448
|
+
if (!(responseItem instanceof content_1.CreateRelationshipAttributeAcceptResponseItem)) {
|
|
2455
2449
|
return;
|
|
2456
2450
|
}
|
|
2457
|
-
if (requestItem.
|
|
2458
|
-
|
|
2459
|
-
await this.consumptionController.attributes.createSharedLocalAttributeCopy({
|
|
2460
|
-
attributeId: responseItem.attributeId,
|
|
2461
|
-
sourceAttributeId: sourceAttribute.id,
|
|
2462
|
-
peer: requestInfo.peer,
|
|
2463
|
-
requestReference: requestInfo.id
|
|
2464
|
-
});
|
|
2465
|
-
}
|
|
2466
|
-
else {
|
|
2467
|
-
await this.consumptionController.attributes.createPeerLocalAttribute({
|
|
2468
|
-
id: responseItem.attributeId,
|
|
2469
|
-
content: requestItem.attribute,
|
|
2470
|
-
peer: requestInfo.peer,
|
|
2471
|
-
requestReference: requestInfo.id
|
|
2472
|
-
});
|
|
2451
|
+
if (requestItem.attribute.owner.toString() === "") {
|
|
2452
|
+
requestItem.attribute.owner = this.currentIdentityAddress;
|
|
2473
2453
|
}
|
|
2454
|
+
await this.consumptionController.attributes.createPeerLocalAttribute({
|
|
2455
|
+
id: responseItem.attributeId,
|
|
2456
|
+
content: requestItem.attribute,
|
|
2457
|
+
peer: requestInfo.peer,
|
|
2458
|
+
requestReference: requestInfo.id
|
|
2459
|
+
});
|
|
2474
2460
|
}
|
|
2475
2461
|
}
|
|
2476
|
-
exports.
|
|
2477
|
-
//# sourceMappingURL=
|
|
2462
|
+
exports.CreateRelationshipAttributeRequestItemProcessor = CreateRelationshipAttributeRequestItemProcessor;
|
|
2463
|
+
//# sourceMappingURL=CreateRelationshipAttributeRequestItemProcessor.js.map
|
|
2478
2464
|
|
|
2479
2465
|
/***/ }),
|
|
2480
2466
|
|
|
@@ -2755,7 +2741,8 @@ class ReadAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.Ge
|
|
|
2755
2741
|
if (!foundAttribute) {
|
|
2756
2742
|
return ValidationResult_1.ValidationResult.error(transport_1.TransportErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, requestInfo.id.toString()));
|
|
2757
2743
|
}
|
|
2758
|
-
|
|
2744
|
+
const ownerIsCurrentIdentity = this.accountController.identity.isMe(foundAttribute.content.owner);
|
|
2745
|
+
if (!ownerIsCurrentIdentity) {
|
|
2759
2746
|
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("The given Attribute belongs to someone else. You can only share own Attributes."));
|
|
2760
2747
|
}
|
|
2761
2748
|
}
|
|
@@ -2858,91 +2845,53 @@ exports.AcceptShareAttributeRequestItemParameters = AcceptShareAttributeRequestI
|
|
|
2858
2845
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2859
2846
|
exports.ShareAttributeRequestItemProcessor = void 0;
|
|
2860
2847
|
const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
|
|
2861
|
-
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
2862
2848
|
const consumption_1 = __webpack_require__(/*! ../../../../consumption */ "./dist/consumption/index.js");
|
|
2863
2849
|
const GenericRequestItemProcessor_1 = __webpack_require__(/*! ../GenericRequestItemProcessor */ "./dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js");
|
|
2864
2850
|
const ValidationResult_1 = __webpack_require__(/*! ../ValidationResult */ "./dist/modules/requests/itemProcessors/ValidationResult.js");
|
|
2865
2851
|
class ShareAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
return ValidationResult_1.ValidationResult.error(transport_1.TransportErrors.general.recordNotFound(content_1.Attribute, requestItem.attributeId.toString()));
|
|
2870
|
-
}
|
|
2871
|
-
const attributeOwnerValidationResult = this.validateAttributeOwner(attribute.content, this.currentIdentityAddress, recipient);
|
|
2872
|
-
if (attributeOwnerValidationResult.isError()) {
|
|
2873
|
-
return attributeOwnerValidationResult;
|
|
2874
|
-
}
|
|
2875
|
-
return ValidationResult_1.ValidationResult.success();
|
|
2876
|
-
}
|
|
2877
|
-
async checkPrerequisitesOfIncomingRequestItem(requestItem, requestInfo) {
|
|
2878
|
-
const relationshipToShareWith = await this.accountController.relationships.getRelationshipToIdentity(requestItem.shareWith);
|
|
2879
|
-
if (!relationshipToShareWith) {
|
|
2880
|
-
return false; // Should the containing Request move to Error state?
|
|
2881
|
-
}
|
|
2882
|
-
const attribute = await this.consumptionController.attributes.getLocalAttribute(requestItem.attributeId);
|
|
2883
|
-
if (!attribute) {
|
|
2884
|
-
return false; // Should the containing Request move to Error state?
|
|
2885
|
-
}
|
|
2886
|
-
if (this.validateAttributeOwner(attribute.content, requestInfo.peer, this.currentIdentityAddress).isError()) {
|
|
2887
|
-
return false;
|
|
2852
|
+
canCreateOutgoingRequestItem(requestItem, _request, _recipient) {
|
|
2853
|
+
if (requestItem.attribute instanceof content_1.IdentityAttribute) {
|
|
2854
|
+
return this.canCreateWithIdentityAttribute(requestItem);
|
|
2888
2855
|
}
|
|
2889
|
-
return
|
|
2856
|
+
return this.canCreateWithRelationshipAttribute(requestItem.attribute);
|
|
2890
2857
|
}
|
|
2891
|
-
|
|
2892
|
-
const
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
}
|
|
2897
|
-
}
|
|
2898
|
-
if (attribute instanceof content_1.RelationshipAttribute) {
|
|
2899
|
-
if (!attributeOwner.equals(recipient) && !attributeOwner.equals(sender)) {
|
|
2900
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("Cannot request sharing of relationship attributes not owned by recipient or sender."));
|
|
2901
|
-
}
|
|
2858
|
+
canCreateWithIdentityAttribute(requestItem) {
|
|
2859
|
+
const ownerIsEmpty = requestItem.attribute.owner.toString() === "";
|
|
2860
|
+
const ownerIsCurrentIdentity = requestItem.attribute.owner.equals(this.currentIdentityAddress);
|
|
2861
|
+
if (!ownerIsEmpty && !ownerIsCurrentIdentity) {
|
|
2862
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("The owner of the given `attribute` can only be an empty string. This is because you can only send Attributes where the recipient of the Request is the owner anyway. And in order to avoid mistakes, the owner will be automatically filled for you."));
|
|
2902
2863
|
}
|
|
2903
2864
|
return ValidationResult_1.ValidationResult.success();
|
|
2904
2865
|
}
|
|
2905
|
-
|
|
2866
|
+
canCreateWithRelationshipAttribute(attribute) {
|
|
2867
|
+
if (attribute.confidentiality === content_1.RelationshipAttributeConfidentiality.Private) {
|
|
2868
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("The confidentiality of the given `attribute` is private. Therefore you are not allowed to share it."));
|
|
2869
|
+
}
|
|
2906
2870
|
return ValidationResult_1.ValidationResult.success();
|
|
2907
2871
|
}
|
|
2908
|
-
async accept(requestItem, _params,
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
await this.shareAttribute(attribute, requestItem.shareWith);
|
|
2872
|
+
async accept(requestItem, _params, requestInfo) {
|
|
2873
|
+
if (requestItem.attribute.owner.toString() === "") {
|
|
2874
|
+
requestItem.attribute.owner = requestInfo.peer;
|
|
2912
2875
|
}
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
return ((await this.consumptionController.attributes.getLocalAttributes({
|
|
2918
|
-
"shareInfo.sourceAttribute": attribute.shareInfo.sourceAttribute.toString(),
|
|
2919
|
-
"shareInfo.peer": shareWith.toString()
|
|
2920
|
-
})).length > 0);
|
|
2921
|
-
}
|
|
2922
|
-
return ((await this.consumptionController.attributes.getLocalAttributes({
|
|
2923
|
-
"shareInfo.sourceAttribute": attribute.id.toString(),
|
|
2924
|
-
"shareInfo.peer": shareWith.toString()
|
|
2925
|
-
})).length > 0);
|
|
2926
|
-
}
|
|
2927
|
-
async shareAttribute(attribute, shareWith) {
|
|
2928
|
-
const createAttributeRequestItem = content_1.CreateAttributeRequestItem.from({
|
|
2929
|
-
attribute: attribute.content,
|
|
2930
|
-
mustBeAccepted: true,
|
|
2931
|
-
sourceAttributeId: attribute.id
|
|
2932
|
-
});
|
|
2933
|
-
const createAttributeRequest = await this.consumptionController.outgoingRequests.create({
|
|
2934
|
-
peer: shareWith,
|
|
2935
|
-
content: content_1.Request.from({
|
|
2936
|
-
items: [createAttributeRequestItem]
|
|
2937
|
-
})
|
|
2876
|
+
const localAttribute = await this.consumptionController.attributes.createPeerLocalAttribute({
|
|
2877
|
+
content: requestItem.attribute,
|
|
2878
|
+
peer: requestInfo.peer,
|
|
2879
|
+
requestReference: requestInfo.id
|
|
2938
2880
|
});
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2881
|
+
return content_1.ShareAttributeAcceptResponseItem.from({
|
|
2882
|
+
attributeId: localAttribute.id,
|
|
2883
|
+
result: content_1.ResponseItemResult.Accepted
|
|
2942
2884
|
});
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2885
|
+
}
|
|
2886
|
+
async applyIncomingResponseItem(responseItem, requestItem, requestInfo) {
|
|
2887
|
+
if (!(responseItem instanceof content_1.ShareAttributeAcceptResponseItem)) {
|
|
2888
|
+
return;
|
|
2889
|
+
}
|
|
2890
|
+
await this.consumptionController.attributes.createSharedLocalAttributeCopy({
|
|
2891
|
+
attributeId: responseItem.attributeId,
|
|
2892
|
+
sourceAttributeId: requestItem.sourceAttributeId,
|
|
2893
|
+
peer: requestInfo.peer,
|
|
2894
|
+
requestReference: requestInfo.id
|
|
2946
2895
|
});
|
|
2947
2896
|
}
|
|
2948
2897
|
}
|
|
@@ -4525,7 +4474,7 @@ class ApplicationError extends Error {
|
|
|
4525
4474
|
return this.code === error.code;
|
|
4526
4475
|
}
|
|
4527
4476
|
toString() {
|
|
4528
|
-
return JSON.stringify(this, undefined, 2);
|
|
4477
|
+
return JSON.stringify({ code: this.code, message: this.message, data: this.data }, undefined, 2);
|
|
4529
4478
|
}
|
|
4530
4479
|
}
|
|
4531
4480
|
exports.ApplicationError = ApplicationError;
|