diff --git a/package.json b/package.json index 1c28981..9cc340e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@merokudao/dapp-store-registry", - "version": "0.1.43", + "version": "0.1.44", "description": "The dApp Store registry for MerokuDAO dAapp Store", "repository": { "type": "git", diff --git a/src/handlers/opensearch-handlers/request.ts b/src/handlers/opensearch-handlers/request.ts index 850da04..6d6ca5b 100644 --- a/src/handlers/opensearch-handlers/request.ts +++ b/src/handlers/opensearch-handlers/request.ts @@ -106,4 +106,21 @@ export class OpensearchRequest { public async attachAliasName(index: string, alias: string) { return this.opensearchClient.indices.putAlias({ index, name: alias }); } + + /** + * insert a new doc to database + * @param index index name + * @param body doc + * @returns response + */ + public async updateDoc(index: string, body: any): Promise { + const id = body.id; + delete body.id; + return this.opensearchClient.update({ + index, + id, + body: { doc: body }, + refresh: true + }); + } } diff --git a/src/lib/v1/registry.ts b/src/lib/v1/registry.ts index d002804..e537439 100644 --- a/src/lib/v1/registry.ts +++ b/src/lib/v1/registry.ts @@ -279,4 +279,30 @@ export class DappStoreRegistryV1 { data: res && res.map(rs => rs._source) }; }; + + + /** + * update dapp to index, when new app is registered on dapp store + * @param name + * @param dapp + * @param org + * @returns acknowledge + */ + public async updateDapp( + payload: AddDappPayload + ): Promise { + const { dapp } = payload; + /** + * have to add if any action have to do onchain + */ + await this.opensearchApis.updateDoc(searchRegistry.alias, { + id: dapp.dappId, + ...dapp + }); + return { + status: 200, + message: ["success"] + }; + } + }