@nmshd/consumption 2.0.0-beta.6 → 2.0.0-beta.7
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 +2 -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 +75 -128
- 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 +2 -2
- 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.7",
|
|
21
|
+
build: "57",
|
|
22
|
+
date: "2022-08-05T14:52:40+00:00",
|
|
23
|
+
commit: "c807245adfc9a9d69e8907f9f604770d2b6f7c6b",
|
|
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,10 @@ 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.ShareAttributeRequestItem, modules_1.ShareAttributeRequestItemProcessor],
|
|
127
127
|
[content_1.ConsentRequestItem, modules_1.GenericRequestItemProcessor]
|
|
128
128
|
]);
|
|
129
129
|
}
|
|
@@ -1335,8 +1335,8 @@ __exportStar(__webpack_require__(/*! ./requests/incoming/IncomingRequestsControl
|
|
|
1335
1335
|
__exportStar(__webpack_require__(/*! ./requests/incoming/received/ReceivedIncomingRequestParameters */ "./dist/modules/requests/incoming/received/ReceivedIncomingRequestParameters.js"), exports);
|
|
1336
1336
|
__exportStar(__webpack_require__(/*! ./requests/incoming/requireManualDecision/RequireManualDecisionOfIncomingRequestParameters */ "./dist/modules/requests/incoming/requireManualDecision/RequireManualDecisionOfIncomingRequestParameters.js"), exports);
|
|
1337
1337
|
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/AbstractRequestItemProcessor */ "./dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.js"), exports);
|
|
1338
|
-
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/
|
|
1339
|
-
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/
|
|
1338
|
+
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters */ "./dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.js"), exports);
|
|
1339
|
+
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor */ "./dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.js"), exports);
|
|
1340
1340
|
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/GenericRequestItemProcessor */ "./dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js"), exports);
|
|
1341
1341
|
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/IRequestItemProcessor */ "./dist/modules/requests/itemProcessors/IRequestItemProcessor.js"), exports);
|
|
1342
1342
|
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/ProcessorConstructor */ "./dist/modules/requests/itemProcessors/ProcessorConstructor.js"), exports);
|
|
@@ -2379,10 +2379,10 @@ exports.ErrorValidationResult = ErrorValidationResult;
|
|
|
2379
2379
|
|
|
2380
2380
|
/***/ }),
|
|
2381
2381
|
|
|
2382
|
-
/***/ "./dist/modules/requests/itemProcessors/
|
|
2383
|
-
|
|
2384
|
-
!*** ./dist/modules/requests/itemProcessors/
|
|
2385
|
-
|
|
2382
|
+
/***/ "./dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.js":
|
|
2383
|
+
/*!************************************************************************************************************************************!*\
|
|
2384
|
+
!*** ./dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.js ***!
|
|
2385
|
+
\************************************************************************************************************************************/
|
|
2386
2386
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
2387
2387
|
|
|
2388
2388
|
"use strict";
|
|
@@ -2394,88 +2394,72 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
2394
2394
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
2395
2395
|
};
|
|
2396
2396
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2397
|
-
exports.
|
|
2397
|
+
exports.AcceptCreateRelationshipAttributeRequestItemParameters = void 0;
|
|
2398
2398
|
const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
|
|
2399
|
-
let
|
|
2399
|
+
let AcceptCreateRelationshipAttributeRequestItemParameters = class AcceptCreateRelationshipAttributeRequestItemParameters extends ts_serval_1.Serializable {
|
|
2400
2400
|
static from(value) {
|
|
2401
2401
|
return this.fromAny(value);
|
|
2402
2402
|
}
|
|
2403
2403
|
};
|
|
2404
|
-
|
|
2405
|
-
(0, ts_serval_1.type)("
|
|
2406
|
-
],
|
|
2407
|
-
exports.
|
|
2408
|
-
//# sourceMappingURL=
|
|
2404
|
+
AcceptCreateRelationshipAttributeRequestItemParameters = __decorate([
|
|
2405
|
+
(0, ts_serval_1.type)("AcceptCreateRelationshipAttributeRequestItemParameters")
|
|
2406
|
+
], AcceptCreateRelationshipAttributeRequestItemParameters);
|
|
2407
|
+
exports.AcceptCreateRelationshipAttributeRequestItemParameters = AcceptCreateRelationshipAttributeRequestItemParameters;
|
|
2408
|
+
//# sourceMappingURL=AcceptCreateRelationshipAttributeRequestItemParameters.js.map
|
|
2409
2409
|
|
|
2410
2410
|
/***/ }),
|
|
2411
2411
|
|
|
2412
|
-
/***/ "./dist/modules/requests/itemProcessors/
|
|
2413
|
-
|
|
2414
|
-
!*** ./dist/modules/requests/itemProcessors/
|
|
2415
|
-
|
|
2412
|
+
/***/ "./dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.js":
|
|
2413
|
+
/*!*****************************************************************************************************************************!*\
|
|
2414
|
+
!*** ./dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.js ***!
|
|
2415
|
+
\*****************************************************************************************************************************/
|
|
2416
2416
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
2417
2417
|
|
|
2418
2418
|
"use strict";
|
|
2419
2419
|
|
|
2420
2420
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2421
|
-
exports.
|
|
2421
|
+
exports.CreateRelationshipAttributeRequestItemProcessor = void 0;
|
|
2422
2422
|
const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
|
|
2423
2423
|
const consumption_1 = __webpack_require__(/*! ../../../../consumption */ "./dist/consumption/index.js");
|
|
2424
2424
|
const GenericRequestItemProcessor_1 = __webpack_require__(/*! ../GenericRequestItemProcessor */ "./dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js");
|
|
2425
2425
|
const ValidationResult_1 = __webpack_require__(/*! ../ValidationResult */ "./dist/modules/requests/itemProcessors/ValidationResult.js");
|
|
2426
|
-
class
|
|
2426
|
+
class CreateRelationshipAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
|
|
2427
2427
|
canCreateOutgoingRequestItem(requestItem, _request, _recipient) {
|
|
2428
2428
|
if (requestItem.attribute.owner.toString() !== "" &&
|
|
2429
2429
|
!requestItem.attribute.owner.equals(this.currentIdentityAddress)) {
|
|
2430
2430
|
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."));
|
|
2431
2431
|
}
|
|
2432
|
-
if (requestItem.attribute instanceof content_1.IdentityAttribute) {
|
|
2433
|
-
return this.canCreateRequestItemWithIdentityAttribute(requestItem);
|
|
2434
|
-
}
|
|
2435
|
-
return ValidationResult_1.ValidationResult.success();
|
|
2436
|
-
}
|
|
2437
|
-
canCreateRequestItemWithIdentityAttribute(requestItem) {
|
|
2438
|
-
if (!requestItem.sourceAttributeId) {
|
|
2439
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("'sourceAttributeId' cannot be undefined when sending an Identity Attribute."));
|
|
2440
|
-
}
|
|
2441
2432
|
return ValidationResult_1.ValidationResult.success();
|
|
2442
2433
|
}
|
|
2443
2434
|
async accept(requestItem, _params, requestInfo) {
|
|
2435
|
+
requestItem.attribute.owner ??= requestInfo.peer;
|
|
2444
2436
|
const peerLocalAttribute = await this.consumptionController.attributes.createPeerLocalAttribute({
|
|
2445
2437
|
content: requestItem.attribute,
|
|
2446
2438
|
peer: requestInfo.peer,
|
|
2447
2439
|
requestReference: requestInfo.id
|
|
2448
2440
|
});
|
|
2449
|
-
return content_1.
|
|
2450
|
-
|
|
2451
|
-
|
|
2441
|
+
return content_1.CreateRelationshipAttributeAcceptResponseItem.from({
|
|
2442
|
+
result: content_1.ResponseItemResult.Accepted,
|
|
2443
|
+
attributeId: peerLocalAttribute.id
|
|
2452
2444
|
});
|
|
2453
2445
|
}
|
|
2454
2446
|
async applyIncomingResponseItem(responseItem, requestItem, requestInfo) {
|
|
2455
|
-
if (!(responseItem instanceof content_1.
|
|
2447
|
+
if (!(responseItem instanceof content_1.CreateRelationshipAttributeAcceptResponseItem)) {
|
|
2456
2448
|
return;
|
|
2457
2449
|
}
|
|
2458
|
-
if (requestItem.
|
|
2459
|
-
|
|
2460
|
-
await this.consumptionController.attributes.createSharedLocalAttributeCopy({
|
|
2461
|
-
attributeId: responseItem.attributeId,
|
|
2462
|
-
sourceAttributeId: sourceAttribute.id,
|
|
2463
|
-
peer: requestInfo.peer,
|
|
2464
|
-
requestReference: requestInfo.id
|
|
2465
|
-
});
|
|
2466
|
-
}
|
|
2467
|
-
else {
|
|
2468
|
-
await this.consumptionController.attributes.createPeerLocalAttribute({
|
|
2469
|
-
id: responseItem.attributeId,
|
|
2470
|
-
content: requestItem.attribute,
|
|
2471
|
-
peer: requestInfo.peer,
|
|
2472
|
-
requestReference: requestInfo.id
|
|
2473
|
-
});
|
|
2450
|
+
if (requestItem.attribute.owner.toString() === "") {
|
|
2451
|
+
requestItem.attribute.owner = this.currentIdentityAddress;
|
|
2474
2452
|
}
|
|
2453
|
+
await this.consumptionController.attributes.createPeerLocalAttribute({
|
|
2454
|
+
id: responseItem.attributeId,
|
|
2455
|
+
content: requestItem.attribute,
|
|
2456
|
+
peer: requestInfo.peer,
|
|
2457
|
+
requestReference: requestInfo.id
|
|
2458
|
+
});
|
|
2475
2459
|
}
|
|
2476
2460
|
}
|
|
2477
|
-
exports.
|
|
2478
|
-
//# sourceMappingURL=
|
|
2461
|
+
exports.CreateRelationshipAttributeRequestItemProcessor = CreateRelationshipAttributeRequestItemProcessor;
|
|
2462
|
+
//# sourceMappingURL=CreateRelationshipAttributeRequestItemProcessor.js.map
|
|
2479
2463
|
|
|
2480
2464
|
/***/ }),
|
|
2481
2465
|
|
|
@@ -2756,7 +2740,8 @@ class ReadAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.Ge
|
|
|
2756
2740
|
if (!foundAttribute) {
|
|
2757
2741
|
return ValidationResult_1.ValidationResult.error(transport_1.TransportErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, requestInfo.id.toString()));
|
|
2758
2742
|
}
|
|
2759
|
-
|
|
2743
|
+
const ownerIsCurrentIdentity = this.accountController.identity.isMe(foundAttribute.content.owner);
|
|
2744
|
+
if (!ownerIsCurrentIdentity) {
|
|
2760
2745
|
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("The given Attribute belongs to someone else. You can only share own Attributes."));
|
|
2761
2746
|
}
|
|
2762
2747
|
}
|
|
@@ -2859,91 +2844,53 @@ exports.AcceptShareAttributeRequestItemParameters = AcceptShareAttributeRequestI
|
|
|
2859
2844
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2860
2845
|
exports.ShareAttributeRequestItemProcessor = void 0;
|
|
2861
2846
|
const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
|
|
2862
|
-
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
2863
2847
|
const consumption_1 = __webpack_require__(/*! ../../../../consumption */ "./dist/consumption/index.js");
|
|
2864
2848
|
const GenericRequestItemProcessor_1 = __webpack_require__(/*! ../GenericRequestItemProcessor */ "./dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js");
|
|
2865
2849
|
const ValidationResult_1 = __webpack_require__(/*! ../ValidationResult */ "./dist/modules/requests/itemProcessors/ValidationResult.js");
|
|
2866
2850
|
class ShareAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
return ValidationResult_1.ValidationResult.error(transport_1.TransportErrors.general.recordNotFound(content_1.Attribute, requestItem.attributeId.toString()));
|
|
2871
|
-
}
|
|
2872
|
-
const attributeOwnerValidationResult = this.validateAttributeOwner(attribute.content, this.currentIdentityAddress, recipient);
|
|
2873
|
-
if (attributeOwnerValidationResult.isError()) {
|
|
2874
|
-
return attributeOwnerValidationResult;
|
|
2875
|
-
}
|
|
2876
|
-
return ValidationResult_1.ValidationResult.success();
|
|
2877
|
-
}
|
|
2878
|
-
async checkPrerequisitesOfIncomingRequestItem(requestItem, requestInfo) {
|
|
2879
|
-
const relationshipToShareWith = await this.accountController.relationships.getRelationshipToIdentity(requestItem.shareWith);
|
|
2880
|
-
if (!relationshipToShareWith) {
|
|
2881
|
-
return false; // Should the containing Request move to Error state?
|
|
2882
|
-
}
|
|
2883
|
-
const attribute = await this.consumptionController.attributes.getLocalAttribute(requestItem.attributeId);
|
|
2884
|
-
if (!attribute) {
|
|
2885
|
-
return false; // Should the containing Request move to Error state?
|
|
2886
|
-
}
|
|
2887
|
-
if (this.validateAttributeOwner(attribute.content, requestInfo.peer, this.currentIdentityAddress).isError()) {
|
|
2888
|
-
return false;
|
|
2851
|
+
canCreateOutgoingRequestItem(requestItem, _request, _recipient) {
|
|
2852
|
+
if (requestItem.attribute instanceof content_1.IdentityAttribute) {
|
|
2853
|
+
return this.canCreateWithIdentityAttribute(requestItem);
|
|
2889
2854
|
}
|
|
2890
|
-
return
|
|
2855
|
+
return this.canCreateWithRelationshipAttribute(requestItem.attribute);
|
|
2891
2856
|
}
|
|
2892
|
-
|
|
2893
|
-
const
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
|
|
2897
|
-
}
|
|
2898
|
-
}
|
|
2899
|
-
if (attribute instanceof content_1.RelationshipAttribute) {
|
|
2900
|
-
if (!attributeOwner.equals(recipient) && !attributeOwner.equals(sender)) {
|
|
2901
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("Cannot request sharing of relationship attributes not owned by recipient or sender."));
|
|
2902
|
-
}
|
|
2857
|
+
canCreateWithIdentityAttribute(requestItem) {
|
|
2858
|
+
const ownerIsEmpty = requestItem.attribute.owner.toString() === "";
|
|
2859
|
+
const ownerIsCurrentIdentity = requestItem.attribute.owner.equals(this.currentIdentityAddress);
|
|
2860
|
+
if (!ownerIsEmpty && !ownerIsCurrentIdentity) {
|
|
2861
|
+
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."));
|
|
2903
2862
|
}
|
|
2904
2863
|
return ValidationResult_1.ValidationResult.success();
|
|
2905
2864
|
}
|
|
2906
|
-
|
|
2865
|
+
canCreateWithRelationshipAttribute(attribute) {
|
|
2866
|
+
if (attribute.confidentiality === content_1.RelationshipAttributeConfidentiality.Private) {
|
|
2867
|
+
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."));
|
|
2868
|
+
}
|
|
2907
2869
|
return ValidationResult_1.ValidationResult.success();
|
|
2908
2870
|
}
|
|
2909
|
-
async accept(requestItem, _params,
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
await this.shareAttribute(attribute, requestItem.shareWith);
|
|
2871
|
+
async accept(requestItem, _params, requestInfo) {
|
|
2872
|
+
if (requestItem.attribute.owner.toString() === "") {
|
|
2873
|
+
requestItem.attribute.owner = requestInfo.peer;
|
|
2913
2874
|
}
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
return ((await this.consumptionController.attributes.getLocalAttributes({
|
|
2919
|
-
"shareInfo.sourceAttribute": attribute.shareInfo.sourceAttribute.toString(),
|
|
2920
|
-
"shareInfo.peer": shareWith.toString()
|
|
2921
|
-
})).length > 0);
|
|
2922
|
-
}
|
|
2923
|
-
return ((await this.consumptionController.attributes.getLocalAttributes({
|
|
2924
|
-
"shareInfo.sourceAttribute": attribute.id.toString(),
|
|
2925
|
-
"shareInfo.peer": shareWith.toString()
|
|
2926
|
-
})).length > 0);
|
|
2927
|
-
}
|
|
2928
|
-
async shareAttribute(attribute, shareWith) {
|
|
2929
|
-
const createAttributeRequestItem = content_1.CreateAttributeRequestItem.from({
|
|
2930
|
-
attribute: attribute.content,
|
|
2931
|
-
mustBeAccepted: true,
|
|
2932
|
-
sourceAttributeId: attribute.id
|
|
2933
|
-
});
|
|
2934
|
-
const createAttributeRequest = await this.consumptionController.outgoingRequests.create({
|
|
2935
|
-
peer: shareWith,
|
|
2936
|
-
content: content_1.Request.from({
|
|
2937
|
-
items: [createAttributeRequestItem]
|
|
2938
|
-
})
|
|
2875
|
+
const localAttribute = await this.consumptionController.attributes.createPeerLocalAttribute({
|
|
2876
|
+
content: requestItem.attribute,
|
|
2877
|
+
peer: requestInfo.peer,
|
|
2878
|
+
requestReference: requestInfo.id
|
|
2939
2879
|
});
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2880
|
+
return content_1.ShareAttributeAcceptResponseItem.from({
|
|
2881
|
+
attributeId: localAttribute.id,
|
|
2882
|
+
result: content_1.ResponseItemResult.Accepted
|
|
2943
2883
|
});
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2884
|
+
}
|
|
2885
|
+
async applyIncomingResponseItem(responseItem, requestItem, requestInfo) {
|
|
2886
|
+
if (!(responseItem instanceof content_1.ShareAttributeAcceptResponseItem)) {
|
|
2887
|
+
return;
|
|
2888
|
+
}
|
|
2889
|
+
await this.consumptionController.attributes.createSharedLocalAttributeCopy({
|
|
2890
|
+
attributeId: responseItem.attributeId,
|
|
2891
|
+
sourceAttributeId: requestItem.sourceAttributeId,
|
|
2892
|
+
peer: requestInfo.peer,
|
|
2893
|
+
requestReference: requestInfo.id
|
|
2947
2894
|
});
|
|
2948
2895
|
}
|
|
2949
2896
|
}
|