@sphereon/ssi-sdk.w3c-vc-api 0.28.1-next.39 → 0.28.1-next.6
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/api-functions.d.ts.map +1 -1
- package/dist/api-functions.js +11 -43
- package/dist/api-functions.js.map +1 -1
- package/dist/types.d.ts +2 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +14 -15
- package/src/api-functions.ts +11 -47
- package/src/types.ts +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-functions.d.ts","sourceRoot":"","sources":["../src/api-functions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api-functions.d.ts","sourceRoot":"","sources":["../src/api-functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,mBAAmB,EAAqB,MAAM,+BAA+B,CAAA;AAIjG,OAAO,EAAqB,MAAM,EAAE,MAAM,SAAS,CAAA;AAEnD,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAmB,6BAA6B,EAAE,MAAM,SAAS,CAAA;AAGxH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,4BAA4B,QAsCrH;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,mBAAmB,QAe3G;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,mBAAmB,QAsB1G;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,6BAA6B,QA2BvH;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,mBAAmB,QAyB7G"}
|
package/dist/api-functions.js
CHANGED
|
@@ -13,11 +13,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.deleteCredentialEndpoint = exports.verifyCredentialEndpoint = exports.getCredentialEndpoint = exports.getCredentialsEndpoint = exports.issueCredentialEndpoint = void 0;
|
|
16
|
+
const ssi_sdk_core_1 = require("@sphereon/ssi-sdk.core");
|
|
16
17
|
const ssi_express_support_1 = require("@sphereon/ssi-express-support");
|
|
17
18
|
const uuid_1 = require("uuid");
|
|
18
19
|
const debug_1 = __importDefault(require("debug"));
|
|
19
|
-
const ssi_sdk_credential_store_1 = require("@sphereon/ssi-sdk.credential-store");
|
|
20
|
-
const ssi_sdk_data_store_1 = require("@sphereon/ssi-sdk.data-store");
|
|
21
20
|
const debug = (0, debug_1.default)('sphereon:ssi-sdk:w3c-vc-api');
|
|
22
21
|
function issueCredentialEndpoint(router, context, opts) {
|
|
23
22
|
var _a;
|
|
@@ -71,23 +70,9 @@ function getCredentialsEndpoint(router, context, opts) {
|
|
|
71
70
|
const path = (_a = opts === null || opts === void 0 ? void 0 : opts.path) !== null && _a !== void 0 ? _a : '/credentials';
|
|
72
71
|
router.get(path, (0, ssi_express_support_1.checkAuth)(opts === null || opts === void 0 ? void 0 : opts.endpoint), (request, response) => __awaiter(this, void 0, void 0, function* () {
|
|
73
72
|
try {
|
|
74
|
-
const
|
|
75
|
-
if (!Object.values(ssi_sdk_data_store_1.CredentialRole).includes(credentialRole)) {
|
|
76
|
-
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, `Invalid credentialRole: ${credentialRole}`);
|
|
77
|
-
}
|
|
78
|
-
const documentType = request.query.documentType || ssi_sdk_credential_store_1.DocumentType.VC;
|
|
79
|
-
if (!Object.values(ssi_sdk_credential_store_1.DocumentType).includes(documentType)) {
|
|
80
|
-
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, `Invalid documentType: ${documentType}`);
|
|
81
|
-
}
|
|
82
|
-
const filter = [
|
|
83
|
-
{
|
|
84
|
-
documentType: documentType,
|
|
85
|
-
credentialRole: credentialRole,
|
|
86
|
-
},
|
|
87
|
-
];
|
|
88
|
-
const uniqueVCs = yield context.agent.crsGetUniqueCredentials({ filter });
|
|
73
|
+
const uniqueVCs = yield context.agent.dataStoreORMGetVerifiableCredentials();
|
|
89
74
|
response.statusCode = 202;
|
|
90
|
-
return response.send(uniqueVCs.map((uVC) => uVC.
|
|
75
|
+
return response.send(uniqueVCs.map((uVC) => uVC.verifiableCredential));
|
|
91
76
|
}
|
|
92
77
|
catch (e) {
|
|
93
78
|
return (0, ssi_express_support_1.sendErrorResponse)(response, 500, e.message, e);
|
|
@@ -108,19 +93,12 @@ function getCredentialEndpoint(router, context, opts) {
|
|
|
108
93
|
if (!id) {
|
|
109
94
|
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'no id provided');
|
|
110
95
|
}
|
|
111
|
-
|
|
112
|
-
if (!
|
|
113
|
-
return (0, ssi_express_support_1.sendErrorResponse)(response,
|
|
114
|
-
}
|
|
115
|
-
const vcInfo = yield context.agent.crsGetUniqueCredentialByIdOrHash({
|
|
116
|
-
credentialRole: credentialRole,
|
|
117
|
-
idOrHash: id,
|
|
118
|
-
});
|
|
119
|
-
if (!vcInfo) {
|
|
120
|
-
return (0, ssi_express_support_1.sendErrorResponse)(response, 403, `id ${id} not found`);
|
|
96
|
+
let vcInfo = yield (0, ssi_sdk_core_1.getCredentialByIdOrHash)(context, id);
|
|
97
|
+
if (!vcInfo.vc) {
|
|
98
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 404, `id ${id} not found`);
|
|
121
99
|
}
|
|
122
100
|
response.statusCode = 200;
|
|
123
|
-
return response.send(vcInfo.
|
|
101
|
+
return response.send(vcInfo.vc);
|
|
124
102
|
}
|
|
125
103
|
catch (e) {
|
|
126
104
|
return (0, ssi_express_support_1.sendErrorResponse)(response, 500, e.message, e);
|
|
@@ -170,22 +148,12 @@ function deleteCredentialEndpoint(router, context, opts) {
|
|
|
170
148
|
if (!id) {
|
|
171
149
|
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'no id provided');
|
|
172
150
|
}
|
|
173
|
-
|
|
174
|
-
if (
|
|
175
|
-
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'credentialRole query parameter is missing');
|
|
176
|
-
}
|
|
177
|
-
if (!Object.values(ssi_sdk_data_store_1.CredentialRole).includes(credentialRole)) {
|
|
178
|
-
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, `Invalid credentialRole: ${credentialRole}`);
|
|
179
|
-
}
|
|
180
|
-
const vcInfo = yield context.agent.crsGetUniqueCredentialByIdOrHash({
|
|
181
|
-
credentialRole: credentialRole,
|
|
182
|
-
idOrHash: id,
|
|
183
|
-
});
|
|
184
|
-
if (!vcInfo) {
|
|
151
|
+
let vcInfo = yield (0, ssi_sdk_core_1.getCredentialByIdOrHash)(context, id);
|
|
152
|
+
if (!vcInfo.vc || !vcInfo.hash) {
|
|
185
153
|
return (0, ssi_express_support_1.sendErrorResponse)(response, 404, `id ${id} not found`);
|
|
186
154
|
}
|
|
187
|
-
const success =
|
|
188
|
-
if (success
|
|
155
|
+
const success = context.agent.dataStoreDeleteVerifiableCredential({ hash: vcInfo.hash });
|
|
156
|
+
if (!success) {
|
|
189
157
|
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, `Could not delete Verifiable Credential with id ${id}`);
|
|
190
158
|
}
|
|
191
159
|
response.statusCode = 200;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-functions.js","sourceRoot":"","sources":["../src/api-functions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uEAAiG;AAKjG,+BAAyB;AAEzB,kDAAyB;AACzB,
|
|
1
|
+
{"version":3,"file":"api-functions.js","sourceRoot":"","sources":["../src/api-functions.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { GenericAuthArgs, ISingleEndpointOpts } from '@sphereon/ssi-express-support';
|
|
2
|
-
import { IAgentContext, ICredentialIssuer, ICredentialPlugin, ICredentialVerifier, IDataStoreORM, IDIDManager, IKeyManager, IResolver } from '@veramo/core';
|
|
2
|
+
import { IAgentContext, ICredentialIssuer, ICredentialPlugin, ICredentialVerifier, IDataStore, IDataStoreORM, IDIDManager, IKeyManager, IResolver } from '@veramo/core';
|
|
3
3
|
import { ProofFormat } from '@veramo/core/src/types/ICredentialIssuer';
|
|
4
|
-
|
|
5
|
-
export type IRequiredPlugins = IDataStoreORM & IDIDManager & IKeyManager & ICredentialIssuer & ICredentialVerifier & ICredentialStore & ICredentialPlugin & IResolver;
|
|
4
|
+
export type IRequiredPlugins = IDataStore & IDataStoreORM & IDIDManager & IKeyManager & ICredentialIssuer & ICredentialVerifier & ICredentialPlugin & IResolver;
|
|
6
5
|
export type IRequiredContext = IAgentContext<IRequiredPlugins>;
|
|
7
6
|
export interface IVCAPIOpts {
|
|
8
7
|
endpointOpts?: IVCAPIEndpointOpts;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACpF,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,WAAW,EACX,SAAS,EACV,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACpF,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,SAAS,EACV,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAA;AAEtE,MAAM,MAAM,gBAAgB,GAAG,UAAU,GACvC,aAAa,GACb,WAAW,GACX,WAAW,GACX,iBAAiB,GACjB,mBAAmB,GACnB,iBAAiB,GACjB,SAAS,CAAA;AACX,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAA;AAI9D,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,EAAE,kBAAkB,CAAA;IAEjC,mBAAmB,CAAC,EAAE,eAAe,CAAA;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B,eAAe,CAAC,EAAE,4BAA4B,CAAA;IAC9C,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,gBAAgB,CAAC,EAAE,mBAAmB,CAAA;IACtC,gBAAgB,CAAC,EAAE,6BAA6B,CAAA;IAChD,kBAAkB,CAAC,EAAE,mBAAmB,CAAA;CACzC;AAED,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,CAAA;AAEnE,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE,aAAa,EAAE,CAAA;IAChC,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAElC;;OAEG;IACH,WAAW,EAAE,WAAW,CAAA;IAExB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAE9B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED,MAAM,WAAW,4BAA6B,SAAQ,mBAAmB;IACvE,mBAAmB,CAAC,EAAE,eAAe,CAAA;IACrC,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC;AAED,MAAM,WAAW,6BAA8B,SAAQ,mBAAmB;IACxE,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE;QACjB,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;CACF;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk.w3c-vc-api",
|
|
3
|
-
"version": "0.28.1-next.
|
|
3
|
+
"version": "0.28.1-next.6+e969b97b",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -12,12 +12,11 @@
|
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@sphereon/did-auth-siop": "0.6.4",
|
|
15
|
-
"@sphereon/ssi-express-support": "0.28.1-next.
|
|
16
|
-
"@sphereon/ssi-sdk.core": "0.28.1-next.
|
|
17
|
-
"@sphereon/ssi-sdk.
|
|
18
|
-
"@sphereon/ssi-sdk.
|
|
19
|
-
"@sphereon/ssi-
|
|
20
|
-
"@sphereon/ssi-types": "0.28.1-next.39+150eb383",
|
|
15
|
+
"@sphereon/ssi-express-support": "0.28.1-next.6+e969b97b",
|
|
16
|
+
"@sphereon/ssi-sdk.core": "0.28.1-next.6+e969b97b",
|
|
17
|
+
"@sphereon/ssi-sdk.kv-store-temp": "0.28.1-next.6+e969b97b",
|
|
18
|
+
"@sphereon/ssi-sdk.presentation-exchange": "0.28.1-next.6+e969b97b",
|
|
19
|
+
"@sphereon/ssi-types": "0.28.1-next.6+e969b97b",
|
|
21
20
|
"@veramo/core": "4.2.0",
|
|
22
21
|
"@veramo/credential-w3c": "4.2.0",
|
|
23
22
|
"body-parser": "^1.20.2",
|
|
@@ -33,13 +32,13 @@
|
|
|
33
32
|
},
|
|
34
33
|
"devDependencies": {
|
|
35
34
|
"@sphereon/did-uni-client": "^0.6.3",
|
|
36
|
-
"@sphereon/ssi-sdk-ext.did-provider-jwk": "0.23.1-next.
|
|
37
|
-
"@sphereon/ssi-sdk-ext.did-resolver-jwk": "0.23.1-next.
|
|
38
|
-
"@sphereon/ssi-sdk-ext.key-manager": "0.23.1-next.
|
|
39
|
-
"@sphereon/ssi-sdk-ext.kms-local": "0.23.1-next.
|
|
40
|
-
"@sphereon/ssi-sdk.agent-config": "0.28.1-next.
|
|
41
|
-
"@sphereon/ssi-sdk.data-store": "0.28.1-next.
|
|
42
|
-
"@sphereon/ssi-sdk.vc-handler-ld-local": "0.28.1-next.
|
|
35
|
+
"@sphereon/ssi-sdk-ext.did-provider-jwk": "0.23.1-next.3",
|
|
36
|
+
"@sphereon/ssi-sdk-ext.did-resolver-jwk": "0.23.1-next.3",
|
|
37
|
+
"@sphereon/ssi-sdk-ext.key-manager": "0.23.1-next.3",
|
|
38
|
+
"@sphereon/ssi-sdk-ext.kms-local": "0.23.1-next.3",
|
|
39
|
+
"@sphereon/ssi-sdk.agent-config": "0.28.1-next.6+e969b97b",
|
|
40
|
+
"@sphereon/ssi-sdk.data-store": "0.28.1-next.6+e969b97b",
|
|
41
|
+
"@sphereon/ssi-sdk.vc-handler-ld-local": "0.28.1-next.6+e969b97b",
|
|
43
42
|
"@types/body-parser": "^1.19.5",
|
|
44
43
|
"@types/cookie-parser": "^1.4.7",
|
|
45
44
|
"@types/cors": "^2.8.17",
|
|
@@ -92,5 +91,5 @@
|
|
|
92
91
|
"W3C",
|
|
93
92
|
"VC API"
|
|
94
93
|
],
|
|
95
|
-
"gitHead": "
|
|
94
|
+
"gitHead": "e969b97b387e62e2def5a0bac655f1fe5c7100a7"
|
|
96
95
|
}
|
package/src/api-functions.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getCredentialByIdOrHash } from '@sphereon/ssi-sdk.core'
|
|
1
2
|
import { checkAuth, ISingleEndpointOpts, sendErrorResponse } from '@sphereon/ssi-express-support'
|
|
2
3
|
import { CredentialPayload } from '@veramo/core'
|
|
3
4
|
import { ProofFormat } from '@veramo/core/src/types/ICredentialIssuer'
|
|
@@ -6,8 +7,6 @@ import { Request, Response, Router } from 'express'
|
|
|
6
7
|
import { v4 } from 'uuid'
|
|
7
8
|
import { IIssueCredentialEndpointOpts, IRequiredContext, IVCAPIIssueOpts, IVerifyCredentialEndpointOpts } from './types'
|
|
8
9
|
import Debug from 'debug'
|
|
9
|
-
import { DocumentType, FindDigitalCredentialArgs } from '@sphereon/ssi-sdk.credential-store'
|
|
10
|
-
import { CredentialRole } from '@sphereon/ssi-sdk.data-store'
|
|
11
10
|
const debug = Debug('sphereon:ssi-sdk:w3c-vc-api')
|
|
12
11
|
export function issueCredentialEndpoint(router: Router, context: IRequiredContext, opts?: IIssueCredentialEndpointOpts) {
|
|
13
12
|
if (opts?.enabled === false) {
|
|
@@ -57,25 +56,9 @@ export function getCredentialsEndpoint(router: Router, context: IRequiredContext
|
|
|
57
56
|
const path = opts?.path ?? '/credentials'
|
|
58
57
|
router.get(path, checkAuth(opts?.endpoint), async (request: Request, response: Response) => {
|
|
59
58
|
try {
|
|
60
|
-
const
|
|
61
|
-
if (!Object.values(CredentialRole).includes(credentialRole)) {
|
|
62
|
-
return sendErrorResponse(response, 400, `Invalid credentialRole: ${credentialRole}`)
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const documentType = (request.query.documentType as DocumentType) || DocumentType.VC
|
|
66
|
-
if (!Object.values(DocumentType).includes(documentType)) {
|
|
67
|
-
return sendErrorResponse(response, 400, `Invalid documentType: ${documentType}`)
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
const filter: FindDigitalCredentialArgs = [
|
|
71
|
-
{
|
|
72
|
-
documentType: documentType,
|
|
73
|
-
credentialRole: credentialRole,
|
|
74
|
-
},
|
|
75
|
-
]
|
|
76
|
-
const uniqueVCs = await context.agent.crsGetUniqueCredentials({ filter })
|
|
59
|
+
const uniqueVCs = await context.agent.dataStoreORMGetVerifiableCredentials()
|
|
77
60
|
response.statusCode = 202
|
|
78
|
-
return response.send(uniqueVCs.map((uVC) => uVC.
|
|
61
|
+
return response.send(uniqueVCs.map((uVC) => uVC.verifiableCredential))
|
|
79
62
|
} catch (e) {
|
|
80
63
|
return sendErrorResponse(response, 500, e.message as string, e)
|
|
81
64
|
}
|
|
@@ -94,20 +77,12 @@ export function getCredentialEndpoint(router: Router, context: IRequiredContext,
|
|
|
94
77
|
if (!id) {
|
|
95
78
|
return sendErrorResponse(response, 400, 'no id provided')
|
|
96
79
|
}
|
|
97
|
-
|
|
98
|
-
if (!
|
|
99
|
-
return sendErrorResponse(response,
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
const vcInfo = await context.agent.crsGetUniqueCredentialByIdOrHash({
|
|
103
|
-
credentialRole: credentialRole,
|
|
104
|
-
idOrHash: id,
|
|
105
|
-
})
|
|
106
|
-
if (!vcInfo) {
|
|
107
|
-
return sendErrorResponse(response, 403, `id ${id} not found`)
|
|
80
|
+
let vcInfo = await getCredentialByIdOrHash(context, id)
|
|
81
|
+
if (!vcInfo.vc) {
|
|
82
|
+
return sendErrorResponse(response, 404, `id ${id} not found`)
|
|
108
83
|
}
|
|
109
84
|
response.statusCode = 200
|
|
110
|
-
return response.send(vcInfo.
|
|
85
|
+
return response.send(vcInfo.vc)
|
|
111
86
|
} catch (e) {
|
|
112
87
|
return sendErrorResponse(response, 500, e.message as string, e)
|
|
113
88
|
}
|
|
@@ -154,23 +129,12 @@ export function deleteCredentialEndpoint(router: Router, context: IRequiredConte
|
|
|
154
129
|
if (!id) {
|
|
155
130
|
return sendErrorResponse(response, 400, 'no id provided')
|
|
156
131
|
}
|
|
157
|
-
|
|
158
|
-
if (
|
|
159
|
-
return sendErrorResponse(response, 400, 'credentialRole query parameter is missing')
|
|
160
|
-
}
|
|
161
|
-
if (!Object.values(CredentialRole).includes(credentialRole)) {
|
|
162
|
-
return sendErrorResponse(response, 400, `Invalid credentialRole: ${credentialRole}`)
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
const vcInfo = await context.agent.crsGetUniqueCredentialByIdOrHash({
|
|
166
|
-
credentialRole: credentialRole,
|
|
167
|
-
idOrHash: id,
|
|
168
|
-
})
|
|
169
|
-
if (!vcInfo) {
|
|
132
|
+
let vcInfo = await getCredentialByIdOrHash(context, id)
|
|
133
|
+
if (!vcInfo.vc || !vcInfo.hash) {
|
|
170
134
|
return sendErrorResponse(response, 404, `id ${id} not found`)
|
|
171
135
|
}
|
|
172
|
-
const success =
|
|
173
|
-
if (success
|
|
136
|
+
const success = context.agent.dataStoreDeleteVerifiableCredential({ hash: vcInfo.hash })
|
|
137
|
+
if (!success) {
|
|
174
138
|
return sendErrorResponse(response, 400, `Could not delete Verifiable Credential with id ${id}`)
|
|
175
139
|
}
|
|
176
140
|
response.statusCode = 200
|
package/src/types.ts
CHANGED
|
@@ -4,20 +4,20 @@ import {
|
|
|
4
4
|
ICredentialIssuer,
|
|
5
5
|
ICredentialPlugin,
|
|
6
6
|
ICredentialVerifier,
|
|
7
|
+
IDataStore,
|
|
7
8
|
IDataStoreORM,
|
|
8
9
|
IDIDManager,
|
|
9
10
|
IKeyManager,
|
|
10
11
|
IResolver,
|
|
11
12
|
} from '@veramo/core'
|
|
12
13
|
import { ProofFormat } from '@veramo/core/src/types/ICredentialIssuer'
|
|
13
|
-
import { ICredentialStore } from '@sphereon/ssi-sdk.credential-store'
|
|
14
14
|
|
|
15
|
-
export type IRequiredPlugins =
|
|
15
|
+
export type IRequiredPlugins = IDataStore &
|
|
16
|
+
IDataStoreORM &
|
|
16
17
|
IDIDManager &
|
|
17
18
|
IKeyManager &
|
|
18
19
|
ICredentialIssuer &
|
|
19
20
|
ICredentialVerifier &
|
|
20
|
-
ICredentialStore &
|
|
21
21
|
ICredentialPlugin &
|
|
22
22
|
IResolver
|
|
23
23
|
export type IRequiredContext = IAgentContext<IRequiredPlugins>
|