Skip to content

Commit

Permalink
Fix public.test.ts
Browse files Browse the repository at this point in the history
  • Loading branch information
ndr-brt committed Jun 1, 2023
1 parent f368c26 commit bf7cdbb
Show file tree
Hide file tree
Showing 16 changed files with 9,132 additions and 604 deletions.
7,477 changes: 7,477 additions & 0 deletions package-lock.json

Large diffs are not rendered by default.

5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,14 @@
],
"license": "MIT",
"dependencies": {
"@think-it-labs/typed-error": "^0.1.4"
"@think-it-labs/typed-error": "^0.1.4",
"jsonld": "^8.2.0",
"schema-dts-gen": "^1.1.2"
},
"devDependencies": {
"@commitlint/config-conventional": "^17.1.0",
"@types/jest": "^28.1.6",
"@types/jsonld": "^1.5.8",
"@types/node": "^18.11.9",
"commitlint": "^17.1.2",
"husky": "^8.0.1",
Expand Down
127 changes: 96 additions & 31 deletions src/controllers/management-controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,15 @@ import {
DataAddressProperties,
Dataplane,
DataplaneInput,
DCATCatalog,
PolicyDefinition,
PolicyDefinitionInput,
QuerySpec,
TransferProcess,
TransferProcessInput,
} from "../entities";
import { Inner } from "../inner";
import jsonld from 'jsonld';

export class ManagementController {
#inner: Inner;
Expand Down Expand Up @@ -56,10 +58,15 @@ export class ManagementController {
input: AssetInput,
): Promise<CreateResult> {
return this.#inner.request(context.management, {
path: "/assets",
path: "/v2/assets",
method: "POST",
apiToken: context.apiToken,
body: input,
body: {
"@context": {
"edc": "https://w3id.org/edc/v0.0.1/ns/"
},
...input
},
});
}

Expand All @@ -68,7 +75,7 @@ export class ManagementController {
assetId: string,
): Promise<void> {
return this.#inner.request(context.management, {
path: `/assets/${assetId}`,
path: `/v2/assets/${assetId}`,
method: "DELETE",
apiToken: context.apiToken,
});
Expand All @@ -79,7 +86,7 @@ export class ManagementController {
assetId: string,
): Promise<Asset> {
return this.#inner.request(context.management, {
path: `/assets/${assetId}`,
path: `/v2/assets/${assetId}`,
method: "GET",
apiToken: context.apiToken,
});
Expand Down Expand Up @@ -113,10 +120,15 @@ export class ManagementController {
input: PolicyDefinitionInput,
): Promise<CreateResult> {
return this.#inner.request(context.management, {
path: "/policydefinitions",
path: "/v2/policydefinitions",
method: "POST",
apiToken: context.apiToken,
body: input,
body: {
"@context": {
"edc": "https://w3id.org/edc/v0.0.1/ns/"
},
...input
},
});
}

Expand Down Expand Up @@ -158,20 +170,27 @@ export class ManagementController {
context: EdcConnectorClientContext,
input: ContractDefinitionInput,
): Promise<CreateResult> {
return this.#inner.request(context.management, {
path: "/contractdefinitions",
return this.#inner.request<any>(context.management, {
path: "/v2/contractdefinitions",
method: "POST",
apiToken: context.apiToken,
body: input,
});
body: {
"@context": {
"edc": "https://w3id.org/edc/v0.0.1/ns/"
},
...input
},
})
.then(body => jsonld.expand(body))
.then(expanded => Object.assign(new CreateResult(), expanded[0]));
}

async deleteContractDefinition(
context: EdcConnectorClientContext,
contractDefinitionId: string,
): Promise<void> {
return this.#inner.request(context.management, {
path: `/contractdefinitions/${contractDefinitionId}`,
path: `/v2/contractdefinitions/${contractDefinitionId}`,
method: "DELETE",
apiToken: context.apiToken,
});
Expand All @@ -182,7 +201,7 @@ export class ManagementController {
contractDefinitionId: string,
): Promise<ContractDefinition> {
return this.#inner.request(context.management, {
path: `/contractdefinitions/${contractDefinitionId}`,
path: `/v2/contractdefinitions/${contractDefinitionId}`,
method: "GET",
apiToken: context.apiToken,
});
Expand All @@ -205,23 +224,56 @@ export class ManagementController {
input: CatalogRequest,
): Promise<Catalog> {
return this.#inner.request(context.management, {
path: "/catalog/request",
path: "/v2/catalog/request",
method: "POST",
apiToken: context.apiToken,
body: input,
body: {
"@context": {
"edc": "https://w3id.org/edc/v0.0.1/ns/"
},
protocol: "dataspace-protocol-http",
...input,
},
});
}

async requestDcatCatalog(
context: EdcConnectorClientContext,
input: CatalogRequest,
): Promise<DCATCatalog> {
return this.#inner.request<any>(context.management, {
path: "/v2/catalog/request",
method: "POST",
apiToken: context.apiToken,
body: {
"@context": {
"edc": "https://w3id.org/edc/v0.0.1/ns/"
},
protocol: "dataspace-protocol-http",
...input,
},
})
.then(body => jsonld.expand(body))
.then(expanded => Object.assign(new DCATCatalog(), expanded[0]));
}

async initiateContractNegotiation(
context: EdcConnectorClientContext,
input: ContractNegotiationRequest,
): Promise<CreateResult> {
return this.#inner.request(context.management, {
path: "/contractnegotiations",
return this.#inner.request<any>(context.management, {
path: "/v2/contractnegotiations",
method: "POST",
apiToken: context.apiToken,
body: input,
});
body: {
"@context": {
"edc": "https://w3id.org/edc/v0.0.1/ns/"
},
...input
},
})
.then(body => jsonld.expand(body))
.then(expanded => Object.assign(new CreateResult(), expanded[0]));
}

async queryNegotiations(
Expand All @@ -240,22 +292,26 @@ export class ManagementController {
context: EdcConnectorClientContext,
negotiationId: string,
): Promise<ContractNegotiation> {
return this.#inner.request(context.management, {
path: `/contractnegotiations/${negotiationId}`,
return this.#inner.request<any>(context.management, {
path: `/v2/contractnegotiations/${negotiationId}`,
method: "GET",
apiToken: context.apiToken,
});
})
.then(body => jsonld.expand(body))
.then(expanded => Object.assign(new ContractNegotiation(), expanded[0]))
}

async getNegotiationState(
context: EdcConnectorClientContext,
negotiationId: string,
): Promise<ContractNegotiationState> {
return this.#inner.request(context.management, {
path: `/contractnegotiations/${negotiationId}/state`,
return this.#inner.request<any>(context.management, {
path: `/v2/contractnegotiations/${negotiationId}/state`,
method: "GET",
apiToken: context.apiToken,
});
})
.then(body => jsonld.expand(body))
.then(expanded => Object.assign(new ContractNegotiationState(), expanded[0]));
}

async cancelNegotiation(
Expand Down Expand Up @@ -307,23 +363,32 @@ export class ManagementController {
context: EdcConnectorClientContext,
agreementId: string,
): Promise<ContractAgreement> {
return this.#inner.request(context.management, {
path: `/contractagreements/${agreementId}`,
return this.#inner.request<any>(context.management, {
path: `/v2/contractagreements/${agreementId}`,
method: "GET",
apiToken: context.apiToken,
});
})
.then(body => jsonld.expand(body))
.then(expanded => Object.assign(new ContractAgreement(), expanded[0]));
}

async initiateTransfer(
context: EdcConnectorClientContext,
input: TransferProcessInput,
): Promise<CreateResult> {
return this.#inner.request(context.management, {
path: "/transferprocess",
return this.#inner.request<any>(context.management, {
path: "/v2/transferprocesses",
method: "POST",
apiToken: context.apiToken,
body: input,
});
body: {
"@context": {
"edc": "https://w3id.org/edc/v0.0.1/ns/"
},
...input
},
})
.then(body => jsonld.expand(body))
.then(expanded => Object.assign(new CreateResult(), expanded[0]));;
}

async queryAllTransferProcesses(
Expand Down
4 changes: 2 additions & 2 deletions src/entities/asset.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ export interface Asset {
"asset:prop:name"?: string;
};
createdAt: string;
id: string;
'@id': string;
}

export interface AssetInput {
asset: Omit<Asset, "id" | "createdAt">;
asset: Omit<Asset, "createdAt">;
dataAddress: DataAddressProperties;
}
34 changes: 34 additions & 0 deletions src/entities/catalog.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { QuerySpec } from ".";
import { ContractOffer } from "./contract-offer";
import { JsonLdId, JsonLdValue } from "./jsonld";

export interface Catalog {
id: string;
Expand All @@ -10,3 +11,36 @@ export interface CatalogRequest {
providerUrl: string;
querySpec?: QuerySpec;
}

export class DCATCatalog extends JsonLdId {
'https://www.w3.org/ns/dcat/dataset': Array<Dataset>;

getDatasets(): Array<Dataset> {
return this['https://www.w3.org/ns/dcat/dataset'].map(it => Object.assign(new Dataset(), it));
}
}

export class Dataset extends JsonLdId {
'http://www.w3.org/ns/odrl/2/hasPolicy': Array<Offer>

getOffers(): Array<Offer> {
return this['http://www.w3.org/ns/odrl/2/hasPolicy'].map(it => Object.assign(new Offer(), it));
}
}

export class Offer extends JsonLdId {
'http://www.w3.org/ns/odrl/2/target': Array<JsonLdValue>

getAssetId(): string {
return this.getTarget().value();
}

assetId() {
return this.id().split(':')[1];
}

getTarget(): JsonLdValue {
return this['http://www.w3.org/ns/odrl/2/target'].map(it => Object.assign(new JsonLdValue(), it))[0]
}

}
12 changes: 6 additions & 6 deletions src/entities/contract-agreement.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { Policy } from "./policy";
import { JsonLdId } from "./jsonld"

export interface ContractAgreement {
id: string;
assetId: string;
consumerAgentId: string;
export class ContractAgreement extends JsonLdId {
assetId?: string;
consumerAgentId?: string;
contractEndDate?: number;
constractSigningDate?: number;
constractStartDate?: number;
policy: Policy;
providerAgentId: string;
policy?: Policy;
providerAgentId?: string;
}
4 changes: 2 additions & 2 deletions src/entities/contract-definition.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { Criterion } from "./criterion";

export interface ContractDefinitionInput {
id: string;
'@id'?: string;
accessPolicyId: string;
contractPolicyId: string;
criteria: Criterion[];
assetsSelector: Criterion[];
}
export interface ContractDefinition extends ContractDefinitionInput {
createdAt: number;
Expand Down
Loading

0 comments on commit bf7cdbb

Please sign in to comment.