Skip to content

Commit

Permalink
feat(claims): issuer fields
Browse files Browse the repository at this point in the history
  • Loading branch information
Passerino committed Nov 16, 2021
1 parent 93a97bd commit 0b7d6c4
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 13 deletions.
Expand Up @@ -282,6 +282,7 @@ ___
| `__namedParameters.claim.claimType` | `string` |
| `__namedParameters.claim.claimTypeVersion` | `number` |
| `__namedParameters.claim.fields` | { `key`: `string` ; `value`: `string` \| `number` }[] |
| `__namedParameters.claim.issuerFields` | { `key`: `string` ; `value`: `string` \| `number` }[] |
| `__namedParameters.subject` | `string` |

#### Returns
Expand All @@ -299,8 +300,8 @@ ___
| Name | Type |
| :------ | :------ |
| `__namedParameters` | `Object` |
| `__namedParameters.claimParams?` | `Record`<`string`, `string`\> |
| `__namedParameters.id` | `string` |
| `__namedParameters.issuerFields` | { `key`: `string` ; `value`: `string` \| `number` }[] |
| `__namedParameters.registrationTypes` | [`RegistrationTypes`](../enums/modules_claims_claims_types.RegistrationTypes.md)[] |
| `__namedParameters.requester` | `string` |
| `__namedParameters.subjectAgreement` | `string` |
Expand Down
23 changes: 15 additions & 8 deletions e2e/claims.service.e2e.ts
Expand Up @@ -41,6 +41,7 @@ const version = 1;
const baseRoleDef = {
roleType: "org",
fields: [],
issuerFields: [],
enrolmentPreconditions: [],
issuer: { issuerType: "DID", did: [staticIssuerDID] },
version,
Expand Down Expand Up @@ -302,7 +303,7 @@ describe("Enrollment claim tests", () => {
expect(hasRole).toBe(false);
});

test("should issue claim request with additional params", async () => {
test("should issue claim request with additional issuer fields", async () => {
await signerService.connect(rootOwner, ProviderType.PrivateKey);

const registrationTypes = [RegistrationTypes.OnChain, RegistrationTypes.OffChain];
Expand All @@ -316,23 +317,29 @@ describe("Enrollment claim tests", () => {
subjectAgreement;
token;
};
const claimParams: Record<string, string> = {
"document ID": "ASG 123222",
DOB: "1990-01-07",
};
const issuerFields: { key: string; value: string | number }[] = [
{
key: "document ID",
value: "ASG 123222",
},
{
key: "DOB",
value: "1990-01-07",
},
];
await signerService.connect(staticIssuer, ProviderType.PrivateKey);
await claimsService.issueClaimRequest({
id,
registrationTypes,
requester: rootOwnerDID,
subjectAgreement,
token,
claimParams,
issuerFields,
});

const [, encodedMsg2] = mockPublish.mock.calls.pop();
const { issuedToken } = jsonCodec.decode(encodedMsg2) as { issuedToken };
const data = didRegistry.jwt.decode(issuedToken) as { claimData: { claimParams } };
expect(data.claimData.claimParams).toEqual(claimParams);
const data = didRegistry.jwt.decode(issuedToken) as { claimData: { issuerFields } };
expect(data.claimData.issuerFields).toEqual(issuerFields);
});
});
1 change: 1 addition & 0 deletions e2e/domains.service.e2e.ts
Expand Up @@ -89,6 +89,7 @@ describe("Domains service", () => {

const data: IRoleDefinition = {
fields: [],
issuerFields: [],
issuer: {
issuerType: "DID",
did: [`did:${Methods.Erc1056}:${rootOwner.address}`],
Expand Down
1 change: 1 addition & 0 deletions e2e/staking.pool.e2e.ts
Expand Up @@ -83,6 +83,7 @@ describe("StakingPool tests", () => {

const data: IRoleDefinition = {
fields: [],
issuerFields: [],
issuer: {
issuerType: "DID",
did: [orgOwnerDid],
Expand Down
1 change: 1 addition & 0 deletions e2e/staking.service.e2e.ts
Expand Up @@ -76,6 +76,7 @@ describe("Staking service tests", () => {

const data: IRoleDefinition = {
fields: [],
issuerFields: [],
issuer: {
issuerType: "DID",
did: [orgOwnerDid],
Expand Down
13 changes: 9 additions & 4 deletions src/modules/claims/claims.service.ts
Expand Up @@ -154,14 +154,14 @@ export class ClaimsService {
id,
subjectAgreement,
registrationTypes,
claimParams,
issuerFields,
}: {
requester: string;
token: string;
id: string;
subjectAgreement: string;
registrationTypes: RegistrationTypes[];
claimParams?: Record<string, string>;
issuerFields: { key: string; value: string | number }[];
}) {
const { claimData, sub } = this._didRegistry.jwt.decode(token) as {
claimData: { claimType: string; claimTypeVersion: number; expiry: number };
Expand All @@ -181,7 +181,7 @@ export class ClaimsService {
const publicClaim: IPublicClaim = {
did: sub,
signer: this._signerService.did,
claimData: { ...strippedClaimData, ...(claimParams && { claimParams }) },
claimData: { ...strippedClaimData, ...(issuerFields && { issuerFields }) },
};
message.issuedToken = await this._didRegistry.issuePublicClaim({
publicClaim,
Expand Down Expand Up @@ -231,7 +231,12 @@ export class ClaimsService {
claim,
subject,
}: {
claim: { claimType: string; claimTypeVersion: number; fields: { key: string; value: string | number }[] };
claim: {
claimType: string;
claimTypeVersion: number;
fields: { key: string; value: string | number }[];
issuerFields: { key: string; value: string | number }[];
};
subject: string;
}) {
await this.verifyEnrolmentPrerequisites({ subject, role: claim.claimType });
Expand Down

0 comments on commit 0b7d6c4

Please sign in to comment.