@nmshd/consumption 2.0.0-alpha.19 → 2.0.0-alpha.21
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 +5 -5
- package/dist/consumption/ConsumptionController.d.ts +2 -4
- package/dist/consumption/ConsumptionController.js +15 -2
- package/dist/consumption/ConsumptionController.js.map +1 -1
- package/dist/consumption/ConsumptionErrors.d.ts +1 -1
- package/dist/consumption/ConsumptionErrors.js +2 -2
- package/dist/consumption/ConsumptionErrors.js.map +1 -1
- package/dist/modules/attributes/ConsumptionAttributesController.d.ts +7 -7
- package/dist/modules/attributes/ConsumptionAttributesController.js +3 -3
- package/dist/modules/attributes/ConsumptionAttributesController.js.map +1 -1
- package/dist/modules/attributes/{CreateConsumptionAttributeParams.d.ts → local/CreateConsumptionAttributeParams.d.ts} +0 -0
- package/dist/modules/attributes/{CreateConsumptionAttributeParams.js → local/CreateConsumptionAttributeParams.js} +0 -0
- package/dist/modules/attributes/local/CreateConsumptionAttributeParams.js.map +1 -0
- package/dist/modules/attributes/{CreatePeerConsumptionAttributeParams.d.ts → local/CreatePeerConsumptionAttributeParams.d.ts} +1 -1
- package/dist/modules/attributes/{CreatePeerConsumptionAttributeParams.js → local/CreatePeerConsumptionAttributeParams.js} +0 -0
- package/dist/modules/attributes/local/CreatePeerConsumptionAttributeParams.js.map +1 -0
- package/dist/modules/attributes/local/CreateRelationshipAttributeParams.d.ts +14 -0
- package/dist/modules/attributes/local/CreateRelationshipAttributeParams.js +40 -0
- package/dist/modules/attributes/local/CreateRelationshipAttributeParams.js.map +1 -0
- package/dist/modules/attributes/{CreateSharedConsumptionAttributeCopyParams.d.ts → local/CreateSharedConsumptionAttributeCopyParams.d.ts} +0 -0
- package/dist/modules/attributes/{CreateSharedConsumptionAttributeCopyParams.js → local/CreateSharedConsumptionAttributeCopyParams.js} +0 -0
- package/dist/modules/attributes/local/CreateSharedConsumptionAttributeCopyParams.js.map +1 -0
- package/dist/modules/attributes/{GetIdentityAttributesParams.d.ts → local/GetIdentityAttributesParams.d.ts} +0 -0
- package/dist/modules/attributes/{GetIdentityAttributesParams.js → local/GetIdentityAttributesParams.js} +0 -0
- package/dist/modules/attributes/local/GetIdentityAttributesParams.js.map +1 -0
- package/dist/modules/attributes/{GetRelationshipAttributesParams.d.ts → local/GetRelationshipAttributesParams.d.ts} +0 -0
- package/dist/modules/attributes/{GetRelationshipAttributesParams.js → local/GetRelationshipAttributesParams.js} +0 -0
- package/dist/modules/attributes/local/GetRelationshipAttributesParams.js.map +1 -0
- package/dist/modules/attributes/{SucceedConsumptionAttributeParams.d.ts → local/SucceedConsumptionAttributeParams.d.ts} +0 -0
- package/dist/modules/attributes/{SucceedConsumptionAttributeParams.js → local/SucceedConsumptionAttributeParams.js} +0 -0
- package/dist/modules/attributes/local/SucceedConsumptionAttributeParams.js.map +1 -0
- package/dist/modules/attributes/{UpdateConsumptionAttributeParams.d.ts → local/UpdateConsumptionAttributeParams.d.ts} +0 -0
- package/dist/modules/attributes/{UpdateConsumptionAttributeParams.js → local/UpdateConsumptionAttributeParams.js} +0 -0
- package/dist/modules/attributes/local/UpdateConsumptionAttributeParams.js.map +1 -0
- package/dist/modules/index.d.ts +13 -7
- package/dist/modules/index.js +13 -7
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/requests/incoming/IncomingRequestsController.js +2 -2
- package/dist/modules/requests/incoming/IncomingRequestsController.js.map +1 -1
- package/dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.d.ts +13 -11
- package/dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.js +2 -0
- package/dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.js.map +1 -1
- package/dist/modules/requests/itemProcessors/GenericRequestItemProcessor.d.ts +11 -10
- package/dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js +8 -8
- package/dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js.map +1 -1
- package/dist/modules/requests/itemProcessors/IRequestItemProcessor.d.ts +14 -10
- package/dist/modules/requests/itemProcessors/RequestItemProcessorRegistry.d.ts +4 -7
- package/dist/modules/requests/itemProcessors/RequestItemProcessorRegistry.js +8 -11
- package/dist/modules/requests/itemProcessors/RequestItemProcessorRegistry.js.map +1 -1
- package/dist/modules/requests/itemProcessors/ValidationResult.d.ts +3 -3
- package/dist/modules/requests/itemProcessors/ValidationResult.js +5 -5
- package/dist/modules/requests/itemProcessors/ValidationResult.js.map +1 -1
- package/dist/modules/requests/itemProcessors/createAttribute/AcceptCreateAttributeRequestItemParameters.d.ts +7 -0
- package/dist/modules/requests/itemProcessors/createAttribute/AcceptCreateAttributeRequestItemParameters.js +20 -0
- package/dist/modules/requests/itemProcessors/createAttribute/AcceptCreateAttributeRequestItemParameters.js.map +1 -0
- package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.d.ts +13 -0
- package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js +55 -0
- package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js.map +1 -0
- package/dist/modules/requests/itemProcessors/proposeAttribute/AcceptProposeAttributeRequestItemParameters.d.ts +20 -0
- package/dist/modules/requests/itemProcessors/proposeAttribute/AcceptProposeAttributeRequestItemParameters.js +47 -0
- package/dist/modules/requests/itemProcessors/proposeAttribute/AcceptProposeAttributeRequestItemParameters.js.map +1 -0
- package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.d.ts +14 -0
- package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js +88 -0
- package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js.map +1 -0
- package/dist/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.d.ts +6 -2
- package/dist/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.js +21 -3
- package/dist/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.js.map +1 -1
- package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.d.ts +9 -5
- package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js +58 -18
- package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js.map +1 -1
- package/dist/modules/requests/itemProcessors/shareAttribute/AcceptShareAttributeRequestItemParameters.d.ts +7 -0
- package/dist/modules/requests/itemProcessors/shareAttribute/AcceptShareAttributeRequestItemParameters.js +20 -0
- package/dist/modules/requests/itemProcessors/shareAttribute/AcceptShareAttributeRequestItemParameters.js.map +1 -0
- package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.d.ts +15 -0
- package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js +93 -0
- package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js.map +1 -0
- package/dist/modules/requests/itemProcessors/utility/validateQuery.d.ts +4 -0
- package/dist/modules/requests/itemProcessors/utility/validateQuery.js +21 -0
- package/dist/modules/requests/itemProcessors/utility/validateQuery.js.map +1 -0
- package/dist/modules/requests/outgoing/OutgoingRequestsController.js +9 -9
- package/dist/modules/requests/outgoing/OutgoingRequestsController.js.map +1 -1
- package/lib-web/nmshd.consumption.js +840 -325
- 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 +14 -13
- package/dist/modules/attributes/CreateConsumptionAttributeParams.js.map +0 -1
- package/dist/modules/attributes/CreatePeerConsumptionAttributeParams.js.map +0 -1
- package/dist/modules/attributes/CreateSharedConsumptionAttributeCopyParams.js.map +0 -1
- package/dist/modules/attributes/GetIdentityAttributesParams.js.map +0 -1
- package/dist/modules/attributes/GetRelationshipAttributesParams.js.map +0 -1
- package/dist/modules/attributes/SucceedConsumptionAttributeParams.js.map +0 -1
- package/dist/modules/attributes/UpdateConsumptionAttributeParams.js.map +0 -1
package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.ReadAttributeRequestItemProcessor = void 0;
|
|
4
7
|
const content_1 = require("@nmshd/content");
|
|
@@ -6,41 +9,78 @@ const transport_1 = require("@nmshd/transport");
|
|
|
6
9
|
const consumption_1 = require("../../../../consumption");
|
|
7
10
|
const ConsumptionAttribute_1 = require("../../../attributes/local/ConsumptionAttribute");
|
|
8
11
|
const GenericRequestItemProcessor_1 = require("../GenericRequestItemProcessor");
|
|
12
|
+
const validateQuery_1 = __importDefault(require("../utility/validateQuery"));
|
|
9
13
|
const ValidationResult_1 = require("../ValidationResult");
|
|
10
14
|
const AcceptReadAttributeRequestItemParameters_1 = require("./AcceptReadAttributeRequestItemParameters");
|
|
11
15
|
class ReadAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return ValidationResult_1.ValidationResult.error(transport_1.TransportErrors.general.recordNotFound(ConsumptionAttribute_1.ConsumptionAttribute, request.id.toString()));
|
|
16
|
+
canCreateOutgoingRequestItem(requestItem, _request, recipient) {
|
|
17
|
+
const queryValidationResult = (0, validateQuery_1.default)(requestItem.query, this.currentIdentityAddress, recipient);
|
|
18
|
+
if (queryValidationResult.isError()) {
|
|
19
|
+
return queryValidationResult;
|
|
17
20
|
}
|
|
18
|
-
|
|
19
|
-
|
|
21
|
+
return ValidationResult_1.ValidationResult.success();
|
|
22
|
+
}
|
|
23
|
+
async canAccept(_requestItem, params, requestInfo) {
|
|
24
|
+
const parsedParams = AcceptReadAttributeRequestItemParameters_1.AcceptReadAttributeRequestItemParameters.from(params);
|
|
25
|
+
if (parsedParams.attributeId) {
|
|
26
|
+
const foundAttribute = await this.consumptionController.attributes.getConsumptionAttribute(parsedParams.attributeId);
|
|
27
|
+
if (!foundAttribute) {
|
|
28
|
+
return ValidationResult_1.ValidationResult.error(transport_1.TransportErrors.general.recordNotFound(ConsumptionAttribute_1.ConsumptionAttribute, requestInfo.id.toString()));
|
|
29
|
+
}
|
|
30
|
+
if (!this.accountController.identity.isMe(foundAttribute.content.owner)) {
|
|
31
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("The given Attribute belongs to someone else. You can only share own Attributes."));
|
|
32
|
+
}
|
|
20
33
|
}
|
|
21
34
|
return ValidationResult_1.ValidationResult.success();
|
|
22
35
|
}
|
|
23
|
-
async accept(_requestItem, params,
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
36
|
+
async accept(_requestItem, params, requestInfo) {
|
|
37
|
+
const parsedParams = AcceptReadAttributeRequestItemParameters_1.AcceptReadAttributeRequestItemParameters.from(params);
|
|
38
|
+
let sharedConsumptionAttribute;
|
|
39
|
+
if (parsedParams.attributeId) {
|
|
40
|
+
sharedConsumptionAttribute = await this.copyExistingAttribute(parsedParams.attributeId, requestInfo);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
sharedConsumptionAttribute = await this.createNewAttribute(parsedParams.attribute, requestInfo);
|
|
44
|
+
}
|
|
29
45
|
return content_1.ReadAttributeAcceptResponseItem.from({
|
|
30
46
|
result: content_1.ResponseItemResult.Accepted,
|
|
31
|
-
attributeId:
|
|
32
|
-
attribute:
|
|
47
|
+
attributeId: sharedConsumptionAttribute.id,
|
|
48
|
+
attribute: sharedConsumptionAttribute.content
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
async copyExistingAttribute(attributeId, requestInfo) {
|
|
52
|
+
return await this.consumptionController.attributes.createSharedConsumptionAttributeCopy({
|
|
53
|
+
attributeId: transport_1.CoreId.from(attributeId),
|
|
54
|
+
peer: transport_1.CoreAddress.from(requestInfo.peer),
|
|
55
|
+
requestReference: transport_1.CoreId.from(requestInfo.id)
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
async createNewAttribute(attribute, requestInfo) {
|
|
59
|
+
if (attribute instanceof content_1.IdentityAttribute) {
|
|
60
|
+
const repositoryConsumptionAttribute = await this.consumptionController.attributes.createConsumptionAttribute({
|
|
61
|
+
content: attribute
|
|
62
|
+
});
|
|
63
|
+
return await this.consumptionController.attributes.createSharedConsumptionAttributeCopy({
|
|
64
|
+
attributeId: transport_1.CoreId.from(repositoryConsumptionAttribute.id),
|
|
65
|
+
peer: transport_1.CoreAddress.from(requestInfo.peer),
|
|
66
|
+
requestReference: transport_1.CoreId.from(requestInfo.id)
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return await this.consumptionController.attributes.createPeerConsumptionAttribute({
|
|
70
|
+
content: attribute,
|
|
71
|
+
peer: requestInfo.peer,
|
|
72
|
+
requestReference: transport_1.CoreId.from(requestInfo.id)
|
|
33
73
|
});
|
|
34
74
|
}
|
|
35
|
-
async applyIncomingResponseItem(responseItem, _requestItem,
|
|
75
|
+
async applyIncomingResponseItem(responseItem, _requestItem, requestInfo) {
|
|
36
76
|
if (!(responseItem instanceof content_1.ReadAttributeAcceptResponseItem)) {
|
|
37
77
|
return;
|
|
38
78
|
}
|
|
39
79
|
await this.consumptionController.attributes.createPeerConsumptionAttribute({
|
|
40
80
|
id: responseItem.attributeId,
|
|
41
81
|
content: responseItem.attribute,
|
|
42
|
-
peer:
|
|
43
|
-
requestReference:
|
|
82
|
+
peer: requestInfo.peer,
|
|
83
|
+
requestReference: requestInfo.id
|
|
44
84
|
});
|
|
45
85
|
}
|
|
46
86
|
}
|
package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadAttributeRequestItemProcessor.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReadAttributeRequestItemProcessor.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Serializable } from "@js-soft/ts-serval";
|
|
2
|
+
import { AcceptRequestItemParametersJSON } from "../../incoming/decide/AcceptRequestItemParameters";
|
|
3
|
+
export interface AcceptShareAttributeRequestItemParametersJSON extends AcceptRequestItemParametersJSON {
|
|
4
|
+
}
|
|
5
|
+
export declare class AcceptShareAttributeRequestItemParameters extends Serializable {
|
|
6
|
+
static from(value: AcceptShareAttributeRequestItemParametersJSON): AcceptShareAttributeRequestItemParameters;
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.AcceptShareAttributeRequestItemParameters = void 0;
|
|
10
|
+
const ts_serval_1 = require("@js-soft/ts-serval");
|
|
11
|
+
let AcceptShareAttributeRequestItemParameters = class AcceptShareAttributeRequestItemParameters extends ts_serval_1.Serializable {
|
|
12
|
+
static from(value) {
|
|
13
|
+
return this.fromAny(value);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
AcceptShareAttributeRequestItemParameters = __decorate([
|
|
17
|
+
(0, ts_serval_1.type)("AcceptShareAttributeRequestItemParameters")
|
|
18
|
+
], AcceptShareAttributeRequestItemParameters);
|
|
19
|
+
exports.AcceptShareAttributeRequestItemParameters = AcceptShareAttributeRequestItemParameters;
|
|
20
|
+
//# sourceMappingURL=AcceptShareAttributeRequestItemParameters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcceptShareAttributeRequestItemParameters.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/shareAttribute/AcceptShareAttributeRequestItemParameters.ts"],"names":[],"mappings":";;;;;;;;;AAAA,kDAAuD;AAMvD,IAAa,yCAAyC,GAAtD,MAAa,yCAA0C,SAAQ,wBAAY;IAChE,MAAM,CAAC,IAAI,CACd,KAAoD;QAEpD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;CACJ,CAAA;AANY,yCAAyC;IADrD,IAAA,gBAAI,EAAC,2CAA2C,CAAC;GACrC,yCAAyC,CAMrD;AANY,8FAAyC"}
|
package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AcceptResponseItem, Request, ShareAttributeRequestItem } from "@nmshd/content";
|
|
2
|
+
import { CoreAddress } from "@nmshd/transport";
|
|
3
|
+
import { GenericRequestItemProcessor } from "../GenericRequestItemProcessor";
|
|
4
|
+
import { ConsumptionRequestInfo } from "../IRequestItemProcessor";
|
|
5
|
+
import { ValidationResult } from "../ValidationResult";
|
|
6
|
+
import { AcceptShareAttributeRequestItemParametersJSON } from "./AcceptShareAttributeRequestItemParameters";
|
|
7
|
+
export declare class ShareAttributeRequestItemProcessor extends GenericRequestItemProcessor<ShareAttributeRequestItem, AcceptShareAttributeRequestItemParametersJSON> {
|
|
8
|
+
canCreateOutgoingRequestItem(requestItem: ShareAttributeRequestItem, _request: Request, recipient: CoreAddress): Promise<ValidationResult>;
|
|
9
|
+
checkPrerequisitesOfIncomingRequestItem(requestItem: ShareAttributeRequestItem, requestInfo: ConsumptionRequestInfo): Promise<boolean>;
|
|
10
|
+
private validateAttributeOwner;
|
|
11
|
+
canAccept(_requestItem: ShareAttributeRequestItem, _params: AcceptShareAttributeRequestItemParametersJSON, _requestInfo: ConsumptionRequestInfo): ValidationResult;
|
|
12
|
+
accept(requestItem: ShareAttributeRequestItem, _params: AcceptShareAttributeRequestItemParametersJSON, _requestInfo: ConsumptionRequestInfo): Promise<AcceptResponseItem>;
|
|
13
|
+
private isAttributeAlreadyShared;
|
|
14
|
+
private shareAttribute;
|
|
15
|
+
}
|
package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ShareAttributeRequestItemProcessor = void 0;
|
|
4
|
+
const content_1 = require("@nmshd/content");
|
|
5
|
+
const transport_1 = require("@nmshd/transport");
|
|
6
|
+
const consumption_1 = require("../../../../consumption");
|
|
7
|
+
const GenericRequestItemProcessor_1 = require("../GenericRequestItemProcessor");
|
|
8
|
+
const ValidationResult_1 = require("../ValidationResult");
|
|
9
|
+
class ShareAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
|
|
10
|
+
async canCreateOutgoingRequestItem(requestItem, _request, recipient) {
|
|
11
|
+
const attribute = await this.consumptionController.attributes.getConsumptionAttribute(requestItem.attributeId);
|
|
12
|
+
if (!attribute) {
|
|
13
|
+
return ValidationResult_1.ValidationResult.error(transport_1.TransportErrors.general.recordNotFound(content_1.Attribute, requestItem.attributeId.toString()));
|
|
14
|
+
}
|
|
15
|
+
const attributeOwnerValidationResult = this.validateAttributeOwner(attribute.content, this.currentIdentityAddress, recipient);
|
|
16
|
+
if (attributeOwnerValidationResult.isError()) {
|
|
17
|
+
return attributeOwnerValidationResult;
|
|
18
|
+
}
|
|
19
|
+
return ValidationResult_1.ValidationResult.success();
|
|
20
|
+
}
|
|
21
|
+
async checkPrerequisitesOfIncomingRequestItem(requestItem, requestInfo) {
|
|
22
|
+
const relationshipToShareWith = await this.accountController.relationships.getRelationshipToIdentity(requestItem.shareWith);
|
|
23
|
+
if (!relationshipToShareWith) {
|
|
24
|
+
return false; // Should the containing Request move to Error state?
|
|
25
|
+
}
|
|
26
|
+
const attribute = await this.consumptionController.attributes.getConsumptionAttribute(requestItem.attributeId);
|
|
27
|
+
if (!attribute) {
|
|
28
|
+
return false; // Should the containing Request move to Error state?
|
|
29
|
+
}
|
|
30
|
+
if (this.validateAttributeOwner(attribute.content, requestInfo.peer, this.currentIdentityAddress).isError()) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
validateAttributeOwner(attribute, sender, recipient) {
|
|
36
|
+
const attributeOwner = attribute.owner;
|
|
37
|
+
if (attribute instanceof content_1.IdentityAttribute) {
|
|
38
|
+
if (!attributeOwner.equals(recipient)) {
|
|
39
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("Can only request sharing of identity attributes owned by the recipient."));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (attribute instanceof content_1.RelationshipAttribute) {
|
|
43
|
+
if (!attributeOwner.equals(recipient) && !attributeOwner.equals(sender)) {
|
|
44
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("Cannot request sharing of relationship attributes not owned by recipient or sender."));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return ValidationResult_1.ValidationResult.success();
|
|
48
|
+
}
|
|
49
|
+
canAccept(_requestItem, _params, _requestInfo) {
|
|
50
|
+
return ValidationResult_1.ValidationResult.success();
|
|
51
|
+
}
|
|
52
|
+
async accept(requestItem, _params, _requestInfo) {
|
|
53
|
+
const attribute = await this.consumptionController.attributes.getConsumptionAttribute(requestItem.attributeId);
|
|
54
|
+
if (!(await this.isAttributeAlreadyShared(attribute, requestItem.shareWith))) {
|
|
55
|
+
await this.shareAttribute(attribute, requestItem.shareWith);
|
|
56
|
+
}
|
|
57
|
+
return content_1.AcceptResponseItem.from({ result: content_1.ResponseItemResult.Accepted });
|
|
58
|
+
}
|
|
59
|
+
async isAttributeAlreadyShared(attribute, shareWith) {
|
|
60
|
+
if (attribute.content instanceof content_1.IdentityAttribute) {
|
|
61
|
+
return ((await this.consumptionController.attributes.getConsumptionAttributes({
|
|
62
|
+
"shareInfo.sourceAttribute": attribute.shareInfo.sourceAttribute.toString(),
|
|
63
|
+
"shareInfo.peer": shareWith.toString() // eslint-disable-line @typescript-eslint/naming-convention
|
|
64
|
+
})).length > 0);
|
|
65
|
+
}
|
|
66
|
+
return ((await this.consumptionController.attributes.getConsumptionAttributes({
|
|
67
|
+
"shareInfo.sourceAttribute": attribute.id.toString(),
|
|
68
|
+
"shareInfo.peer": shareWith.toString() // eslint-disable-line @typescript-eslint/naming-convention
|
|
69
|
+
})).length > 0);
|
|
70
|
+
}
|
|
71
|
+
async shareAttribute(attribute, shareWith) {
|
|
72
|
+
const createAttributeRequestItem = content_1.CreateAttributeRequestItem.from({
|
|
73
|
+
attribute: attribute.content,
|
|
74
|
+
mustBeAccepted: true
|
|
75
|
+
});
|
|
76
|
+
const createAttributeRequest = await this.consumptionController.outgoingRequests.create({
|
|
77
|
+
peer: shareWith,
|
|
78
|
+
content: content_1.Request.from({
|
|
79
|
+
items: [createAttributeRequestItem]
|
|
80
|
+
})
|
|
81
|
+
});
|
|
82
|
+
const message = await this.accountController.messages.sendMessage({
|
|
83
|
+
recipients: [shareWith],
|
|
84
|
+
content: createAttributeRequest.content
|
|
85
|
+
});
|
|
86
|
+
await this.consumptionController.outgoingRequests.sent({
|
|
87
|
+
requestId: createAttributeRequest.id,
|
|
88
|
+
requestSourceObject: message
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.ShareAttributeRequestItemProcessor = ShareAttributeRequestItemProcessor;
|
|
93
|
+
//# sourceMappingURL=ShareAttributeRequestItemProcessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareAttributeRequestItemProcessor.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { AbstractAttributeQuery } from "@nmshd/content";
|
|
2
|
+
import { CoreAddress } from "@nmshd/transport";
|
|
3
|
+
import { ValidationResult } from "../ValidationResult";
|
|
4
|
+
export default function validateQuery(query: AbstractAttributeQuery, sender: CoreAddress, recipient: CoreAddress): ValidationResult;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const content_1 = require("@nmshd/content");
|
|
4
|
+
const consumption_1 = require("../../../../consumption");
|
|
5
|
+
const ValidationResult_1 = require("../ValidationResult");
|
|
6
|
+
function validateQuery(query, sender, recipient) {
|
|
7
|
+
if (query instanceof content_1.RelationshipAttributeQuery) {
|
|
8
|
+
if (query.thirdParty?.equals(sender)) {
|
|
9
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("Cannot query an Attribute with the own address as third party."));
|
|
10
|
+
}
|
|
11
|
+
if (query.thirdParty?.equals(recipient)) {
|
|
12
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("Cannot query an Attribute with the recipient's address as third party."));
|
|
13
|
+
}
|
|
14
|
+
if (query.owner.equals(sender) && query.thirdParty !== undefined) {
|
|
15
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("Cannot query own Attributes from a third party."));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return ValidationResult_1.ValidationResult.success();
|
|
19
|
+
}
|
|
20
|
+
exports.default = validateQuery;
|
|
21
|
+
//# sourceMappingURL=validateQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateQuery.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/utility/validateQuery.ts"],"names":[],"mappings":";;AAAA,4CAAmF;AAEnF,yDAA2D;AAC3D,0DAAsD;AAEtD,SAAwB,aAAa,CACjC,KAA6B,EAC7B,MAAmB,EACnB,SAAsB;IAEtB,IAAI,KAAK,YAAY,oCAA0B,EAAE;QAC7C,IAAI,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;YAClC,OAAO,mCAAgB,CAAC,KAAK,CACzB,+BAAiB,CAAC,QAAQ,CAAC,kBAAkB,CACzC,gEAAgE,CACnE,CACJ,CAAA;SACJ;QAED,IAAI,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE;YACrC,OAAO,mCAAgB,CAAC,KAAK,CACzB,+BAAiB,CAAC,QAAQ,CAAC,kBAAkB,CACzC,wEAAwE,CAC3E,CACJ,CAAA;SACJ;QAED,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE;YAC9D,OAAO,mCAAgB,CAAC,KAAK,CACzB,+BAAiB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,iDAAiD,CAAC,CACnG,CAAA;SACJ;KACJ;IAED,OAAO,mCAAgB,CAAC,OAAO,EAAE,CAAA;AACrC,CAAC;AA9BD,gCA8BC"}
|
|
@@ -20,32 +20,32 @@ class OutgoingRequestsController extends consumption_1.ConsumptionBaseController
|
|
|
20
20
|
}
|
|
21
21
|
async canCreate(params) {
|
|
22
22
|
const parsedParams = CreateOutgoingRequestParameters_1.CreateOutgoingRequestParameters.from(params);
|
|
23
|
-
const innerResults = await this.canCreateItems(parsedParams.content.
|
|
23
|
+
const innerResults = await this.canCreateItems(parsedParams.content, parsedParams.peer);
|
|
24
24
|
const result = ValidationResult_1.ValidationResult.fromItems(innerResults);
|
|
25
25
|
return result;
|
|
26
26
|
}
|
|
27
|
-
async canCreateItems(
|
|
27
|
+
async canCreateItems(request, recipient) {
|
|
28
28
|
const results = [];
|
|
29
|
-
for (const requestItem of items) {
|
|
29
|
+
for (const requestItem of request.items) {
|
|
30
30
|
if (requestItem instanceof content_1.RequestItem) {
|
|
31
|
-
const canCreateItem = await this.canCreateItem(requestItem);
|
|
31
|
+
const canCreateItem = await this.canCreateItem(requestItem, request, recipient);
|
|
32
32
|
results.push(canCreateItem);
|
|
33
33
|
}
|
|
34
34
|
else {
|
|
35
|
-
const result = await this.canCreateItemGroup(requestItem);
|
|
35
|
+
const result = await this.canCreateItemGroup(requestItem, request, recipient);
|
|
36
36
|
results.push(result);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
return results;
|
|
40
40
|
}
|
|
41
|
-
async canCreateItem(requestItem) {
|
|
41
|
+
async canCreateItem(requestItem, request, recipient) {
|
|
42
42
|
const processor = this.processorRegistry.getProcessorForItem(requestItem);
|
|
43
|
-
return await processor.canCreateOutgoingRequestItem(requestItem);
|
|
43
|
+
return await processor.canCreateOutgoingRequestItem(requestItem, request, recipient);
|
|
44
44
|
}
|
|
45
|
-
async canCreateItemGroup(requestItem) {
|
|
45
|
+
async canCreateItemGroup(requestItem, request, recipient) {
|
|
46
46
|
const innerResults = [];
|
|
47
47
|
for (const innerRequestItem of requestItem.items) {
|
|
48
|
-
const canCreateItem = await this.canCreateItem(innerRequestItem);
|
|
48
|
+
const canCreateItem = await this.canCreateItem(innerRequestItem, request, recipient);
|
|
49
49
|
innerResults.push(canCreateItem);
|
|
50
50
|
}
|
|
51
51
|
const result = ValidationResult_1.ValidationResult.fromItems(innerResults);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutgoingRequestsController.js","sourceRoot":"","sources":["../../../../src/modules/requests/outgoing/OutgoingRequestsController.ts"],"names":[],"mappings":";;;AAAA,4CASuB;AACvB,gDAUyB;AACzB,sDAA2G;AAG3G,yEAAqE;AACrE,oEAA0F;AAC1F,gFAA4E;AAC5E,sEAAkE;AAClE,mHAGoE;AACpE,wLAG6G;AAC7G,6GAGgE;AAChE,uGAG4D;AAE5D,MAAa,0BAA2B,SAAQ,uCAAyB;IACrE,YACqB,mBAA2C,EAC3C,iBAA+C,EAChE,MAA6B;QAE7B,KAAK,CAAC,uCAAyB,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;QAJ1C,wBAAmB,GAAnB,mBAAmB,CAAwB;QAC3C,sBAAiB,GAAjB,iBAAiB,CAA8B;IAIpE,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,MAAwC;QAC3D,MAAM,YAAY,GAAG,iEAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEjE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"OutgoingRequestsController.js","sourceRoot":"","sources":["../../../../src/modules/requests/outgoing/OutgoingRequestsController.ts"],"names":[],"mappings":"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"}
|