From 8b952c6b05c50f3f29f2e4b44ace443adf07f10e Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Thu, 14 Jul 2022 13:28:02 +0200 Subject: [PATCH 1/3] add querySearch() function --- src/aquarius/Aquarius.ts | 55 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/src/aquarius/Aquarius.ts b/src/aquarius/Aquarius.ts index 823010c2..035c7f16 100644 --- a/src/aquarius/Aquarius.ts +++ b/src/aquarius/Aquarius.ts @@ -1,6 +1,30 @@ import { LoggerInstance, sleep } from '../utils' import { Asset, DDO, ValidateMetadata } from '../@types/' import fetch from 'cross-fetch' + +export interface SearchQuery { + from?: number + size?: number + query: { + match?: { + [property: string]: + | string + | number + | boolean + | Record + } + // eslint-disable-next-line camelcase + query_string?: { + [property: string]: string | number | string[] | number[] | boolean + } + // eslint-disable-next-line camelcase + simple_query_string?: { + [property: string]: string | number | string[] | number[] | boolean + } + } + sort?: { [jsonPath: string]: string } +} + export class Aquarius { public aquariusURL /** @@ -121,6 +145,37 @@ export class Aquarius { } return status } + + /** + * Search over the DDOs using a query. + * @param {SearchQuery} query Query to filter the DDOs. + * @param {AbortSignal} signal abort signal + * @return {Promise} + */ + public async querySearch(query: SearchQuery, signal?: AbortSignal): Promise { + const path = this.aquariusURL + '/api/aquarius/assets/query' + + try { + const response = await fetch(path, { + method: 'POST', + body: JSON.stringify(query), + headers: { + 'Content-Type': 'application/json' + }, + signal: signal + }) + + if (response.ok) { + return response.json() + } else { + LoggerInstance.error('querySearch failed: ', response.status, response.statusText) + return null + } + } catch (error) { + LoggerInstance.error('Error querying metadata: ', error) + throw new Error('Error querying metadata: ', error) + } + } } export default Aquarius From 76471f367784360725ff05784a0b017be7c947c9 Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Thu, 14 Jul 2022 13:35:49 +0200 Subject: [PATCH 2/3] add getAssetMetadata() function --- src/aquarius/Aquarius.ts | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/src/aquarius/Aquarius.ts b/src/aquarius/Aquarius.ts index 035c7f16..e3a65967 100644 --- a/src/aquarius/Aquarius.ts +++ b/src/aquarius/Aquarius.ts @@ -146,6 +146,37 @@ export class Aquarius { return status } + /** + * Search over the DDOs using a query. + * @param {string} did DID of the asset + * @param {AbortSignal} signal abort signal + * @return {Promise} + */ + public async getAssetMetadata(did: string, signal?: AbortSignal): Promise { + const path = this.aquariusURL + '/api/aquarius/assets/metadata/' + did + + try { + const response = await fetch(path, { + method: 'GET', + headers: { + 'Content-Type': 'application/json' + }, + signal: signal + }) + + if (response.ok) { + return response.json() + } else { + throw new Error( + 'getAssetMetadata failed: ' + response.status + response.statusText + ) + } + } catch (error) { + LoggerInstance.error('Error getting metadata: ', error) + throw new Error('Error getting metadata: ', error) + } + } + /** * Search over the DDOs using a query. * @param {SearchQuery} query Query to filter the DDOs. @@ -168,8 +199,7 @@ export class Aquarius { if (response.ok) { return response.json() } else { - LoggerInstance.error('querySearch failed: ', response.status, response.statusText) - return null + throw new Error('querySearch failed: ' + response.status + response.statusText) } } catch (error) { LoggerInstance.error('Error querying metadata: ', error) From ab5de621c37d34fbc4c89ef3f2eebf0bafb4b82a Mon Sep 17 00:00:00 2001 From: "Miquel A. Cabot" Date: Thu, 14 Jul 2022 13:43:35 +0200 Subject: [PATCH 3/3] fix error in throw statement --- src/aquarius/Aquarius.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/aquarius/Aquarius.ts b/src/aquarius/Aquarius.ts index e3a65967..c2cf0f71 100644 --- a/src/aquarius/Aquarius.ts +++ b/src/aquarius/Aquarius.ts @@ -173,7 +173,7 @@ export class Aquarius { } } catch (error) { LoggerInstance.error('Error getting metadata: ', error) - throw new Error('Error getting metadata: ', error) + throw new Error('Error getting metadata: ' + error) } } @@ -203,7 +203,7 @@ export class Aquarius { } } catch (error) { LoggerInstance.error('Error querying metadata: ', error) - throw new Error('Error querying metadata: ', error) + throw new Error('Error querying metadata: ' + error) } } }