diff --git a/package-lock.json b/package-lock.json index cf050551..7370e89f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1772,79 +1772,6 @@ } } }, - "@typescript-eslint/scope-manager": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.0.1.tgz", - "integrity": "sha512-u3YEXVJ8jsj7QCJk3om0Y457fy2euEOkkzxIB/LKU3MdyI+FJ2gI0M4aKEaXzwCSfNDiZ13a3lDo5DVozc+XLQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.0.1", - "@typescript-eslint/visitor-keys": "4.0.1" - } - }, - "@typescript-eslint/types": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.0.1.tgz", - "integrity": "sha512-S+gD3fgbkZYW2rnbjugNMqibm9HpEjqZBZkTiI3PwbbNGWmAcxolWIUwZ0SKeG4Dy2ktpKKaI/6+HGYVH8Qrlg==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.0.1.tgz", - "integrity": "sha512-zGzleORFXrRWRJAMLTB2iJD1IZbCPkg4hsI8mGdpYlKaqzvKYSEWVAYh14eauaR+qIoZVWrXgYSXqLtTlxotiw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.0.1", - "@typescript-eslint/visitor-keys": "4.0.1", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.0.1.tgz", - "integrity": "sha512-yBSqd6FjnTzbg5RUy9J+9kJEyQjTI34JdGMJz+9ttlJzLCnGkBikxw+N5n2VDcc3CesbIEJ0MnZc5uRYnrEnCw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.0.1", - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true - } - } - }, "abstract-leveldown": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", @@ -6634,11 +6561,6 @@ "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", "dev": true }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, "lodash.uniqby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", @@ -9592,14 +9514,6 @@ "punycode": "^2.1.1" } }, - "tr46": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", - "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", - "requires": { - "punycode": "^2.1.1" - } - }, "ts-node": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", @@ -10490,11 +10404,6 @@ } } }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" - }, "websocket": { "version": "1.0.31", "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz", @@ -10513,16 +10422,6 @@ "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", "dev": true }, - "whatwg-url": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.2.2.tgz", - "integrity": "sha512-PcVnO6NiewhkmzV0qn7A+UZ9Xx4maNTI+O+TShmfE4pqjoCMwUMjkvoNhNHPTvgR7QH9Xt3R13iHuWy2sToFxQ==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^2.0.2", - "webidl-conversions": "^6.1.0" - } - }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", diff --git a/package.json b/package.json index efb0f9aa..3001d72e 100644 --- a/package.json +++ b/package.json @@ -48,8 +48,7 @@ "save-file": "^2.3.1", "uuid": "^8.3.0", "web3": "^1.2.11", - "web3-eth-contract": "^1.2.11", - "whatwg-url": "^8.2.2" + "web3-eth-contract": "^1.2.11" }, "devDependencies": { "@release-it/bumper": "^2.0.0", diff --git a/src/metadatastore/MetadataStore.ts b/src/metadatastore/MetadataStore.ts index df193ff6..7047ee10 100644 --- a/src/metadatastore/MetadataStore.ts +++ b/src/metadatastore/MetadataStore.ts @@ -1,4 +1,3 @@ -import { URL } from 'whatwg-url' import { DDO } from '../ddo/DDO' import DID from '../ocean/DID' import { EditableMetadata } from '../ddo/interfaces/EditableMetadata' @@ -98,42 +97,6 @@ export class MetadataStore { return result } - /** - * Search over the DDOs using a query. - * @param {SearchQuery} query Query to filter the DDOs. - * @return {Promise} - */ - public async queryMetadataByText(query: SearchQuery): Promise { - const fullUrl = new URL(`${this.url}${apiPath}/query`) - fullUrl.searchParams.append('text', query.text) - fullUrl.searchParams.append('sort', decodeURIComponent(JSON.stringify(query.sort))) - fullUrl.searchParams.append('offset', query.offset.toString()) - fullUrl.searchParams.append('page', query.page.toString()) - - const result: QueryResult = await this.fetch - .get(fullUrl) - .then((response: any) => { - if (response.ok) { - return response.json() as DDO[] - } - this.logger.log( - 'queryMetadataByText failed:', - response.status, - response.statusText - ) - return this.transformResult() - }) - .then((results) => { - return this.transformResult(results) - }) - .catch((error) => { - this.logger.error('Error fetching querying metadata by text: ', error) - return this.transformResult() - }) - - return result - } - /** * Stores a DDO in Metadata Store. * @param {DDO} ddo DDO to be stored. diff --git a/src/ocean/Assets.ts b/src/ocean/Assets.ts index f6039b69..8181c7b0 100644 --- a/src/ocean/Assets.ts +++ b/src/ocean/Assets.ts @@ -325,7 +325,7 @@ export class Assets extends Instantiable { * @return {Promise} */ public async search(text: string): Promise { - return this.ocean.metadatastore.queryMetadataByText({ + return this.ocean.metadatastore.queryMetadata({ text, page: 1, offset: 100, diff --git a/test/unit/metadatastore/MetadataStore.test.ts b/test/unit/metadatastore/MetadataStore.test.ts index 10f7bbb6..66d354b7 100644 --- a/test/unit/metadatastore/MetadataStore.test.ts +++ b/test/unit/metadatastore/MetadataStore.test.ts @@ -58,6 +58,18 @@ describe('MetadataStore', () => { assert.equal(result.totalResults, 1) }) + it('should query metadata with a new instance', async () => { + const metadatastoreNew = new MetadataStore(config.metadataStoreUri, LoggerInstance) + spy.on(metadatastoreNew.fetch, 'get', () => reponsify(getResults([new DDO()]))) + + const result = await metadatastoreNew.queryMetadata(query) + assert.typeOf(result.results, 'array') + assert.lengthOf(result.results, 1) + assert.equal(result.page, 0) + assert.equal(result.totalPages, 1) + assert.equal(result.totalResults, 1) + }) + it('should query metadata and return real ddo', async () => { spy.on(metadataStore.fetch, 'post', () => reponsify(getResults([new DDO()]))) @@ -68,52 +80,6 @@ describe('MetadataStore', () => { }) }) - describe('#queryMetadataByText()', () => { - const query = { - offset: 100, - page: 1, - query: { - value: 1 - }, - sort: { - value: 1 - }, - text: 'Office' - } as SearchQuery - - it('should query metadata by text', async () => { - spy.on(metadataStore.fetch, 'get', () => reponsify(getResults([new DDO()]))) - const result = await metadataStore.queryMetadataByText(query) - - assert.typeOf(result.results, 'array') - assert.lengthOf(result.results, 1) - assert.equal(result.page, 0) - assert.equal(result.totalPages, 1) - assert.equal(result.totalResults, 1) - }) - - it('should query metadata by text with a new instance', async () => { - const metadatastoreNew = new MetadataStore(config.metadataStoreUri, LoggerInstance) - spy.on(metadatastoreNew.fetch, 'get', () => reponsify(getResults([new DDO()]))) - - const result = await metadatastoreNew.queryMetadataByText(query) - assert.typeOf(result.results, 'array') - assert.lengthOf(result.results, 1) - assert.equal(result.page, 0) - assert.equal(result.totalPages, 1) - assert.equal(result.totalResults, 1) - }) - - it('should query metadata and return real ddo', async () => { - spy.on(metadataStore.fetch, 'get', () => reponsify(getResults([new DDO()]))) - - const result = await metadataStore.queryMetadataByText(query) - assert.typeOf(result.results, 'array') - assert.lengthOf(result.results, 1) - assert.isDefined(result.results[0].findServiceById) - }) - }) - describe('#storeDDO()', () => { it('should store a ddo', async () => { const did: DID = DID.generate()