From 19b326d51837c37249a21b3fe597b0109d02837c Mon Sep 17 00:00:00 2001 From: Arshdeep Singh Date: Fri, 8 Mar 2024 16:41:25 -0500 Subject: [PATCH] Add method to rename registry (#232) - add method in renaming credential registries. - update credential.test.ts Signed-off-by: arshdeep singh --- .../integration-scripts/credentials.test.ts | 15 +++++++++++-- src/keri/app/credentialing.ts | 22 +++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/examples/integration-scripts/credentials.test.ts b/examples/integration-scripts/credentials.test.ts index 1babbc26..feab661c 100644 --- a/examples/integration-scripts/credentials.test.ts +++ b/examples/integration-scripts/credentials.test.ts @@ -109,16 +109,27 @@ test('single signature credentials', async () => { const registry = await step('Create registry', async () => { const registryName = 'vLEI-test-registry'; + const updatedRegistryName = 'vLEI-test-registry-1'; const regResult = await issuerClient .registries() .create({ name: issuerAid.name, registryName: registryName }); await waitOperation(issuerClient, await regResult.op()); - const registries = await issuerClient.registries().list(issuerAid.name); + let registries = await issuerClient.registries().list(issuerAid.name); const registry: { name: string; regk: string } = registries[0]; assert.equal(registries.length, 1); assert.equal(registry.name, registryName); - return registry; + + await issuerClient + .registries() + .rename(issuerAid.name, registryName, updatedRegistryName); + + registries = await issuerClient.registries().list(issuerAid.name); + let updateRegistry: { name: string; regk: string } = registries[0]; + assert.equal(registries.length, 1); + assert.equal(updateRegistry.name, updatedRegistryName); + + return updateRegistry; }); await step('issuer can get schemas', async () => { diff --git a/src/keri/app/credentialing.ts b/src/keri/app/credentialing.ts index 28b11ab2..522c49d2 100644 --- a/src/keri/app/credentialing.ts +++ b/src/keri/app/credentialing.ts @@ -659,6 +659,28 @@ export class Registries { return this.client.fetch(path, method, data); } + + /** + * Rename a registry + * @async + * @param {string} name Name or alias of the identifier + * @param {string} registryName Current registry name + * @param {string} newName New registry name + * @returns {Promise} A promise to the registry record + */ + async rename( + name: string, + registryName: string, + newName: string + ): Promise { + const path = `/identifiers/${name}/registries/${registryName}`; + const method = 'PUT'; + const data = { + name: newName, + }; + const res = await this.client.fetch(path, method, data); + return await res.json(); + } } /** * Schemas