From acc61aa999e7ed020635cc64e455f1c3e5aa4762 Mon Sep 17 00:00:00 2001 From: spieljs Date: Fri, 21 Apr 2023 17:53:52 +0200 Subject: [PATCH 1/2] Adding v1.3.3 Changelog updates --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09e6801..d388f62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,15 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +#### [v1.3.3](https://github.com/nevermined-io/components-catalog/compare/v1.3.2...v1.3.3) + +> 21 April 2023 + +- Update sdk 1.3.5 [`#281`](https://github.com/nevermined-io/components-catalog/pull/281) +- Adding v1.3.2 Changelog updates [`9686495`](https://github.com/nevermined-io/components-catalog/commit/9686495f8e2d3b8cfd116b170151043c7a57c239) +- update sdk to the version 1.3.5 [`173b139`](https://github.com/nevermined-io/components-catalog/commit/173b139792db37e85c273cacf9ef9b209c323bb3) +- update sdk-dtp in the correct version [`cb32eb0`](https://github.com/nevermined-io/components-catalog/commit/cb32eb00280cc7121dceddf5103050c4007e2fb3) + #### [v1.3.2](https://github.com/nevermined-io/components-catalog/compare/v1.3.1...v1.3.2) > 11 April 2023 From 738645e69d1d588e809ce2349a0b2bfa79823c53 Mon Sep 17 00:00:00 2001 From: spieljs Date: Mon, 24 Apr 2023 13:35:33 +0200 Subject: [PATCH 2/2] add search options to get published and purchased subscriptions --- catalog/package.json | 2 +- catalog/src/catalog.tsx | 45 ++++++++-------- catalog/src/types/index.ts | 51 ++++++++++++++----- catalog/src/utils/index.ts | 29 +++++++++-- .../catalog/catalog.account.spec.tsx | 12 ++--- providers/package.json | 2 +- 6 files changed, 95 insertions(+), 46 deletions(-) diff --git a/catalog/package.json b/catalog/package.json index b47b654..ba4e688 100644 --- a/catalog/package.json +++ b/catalog/package.json @@ -1,6 +1,6 @@ { "name": "@nevermined-io/catalog", - "version": "1.3.3", + "version": "1.3.4", "main": "./dist/index.js", "types": "./dist/index.d.ts", "dependencies": { diff --git a/catalog/src/catalog.tsx b/catalog/src/catalog.tsx index 270824a..8f6ff89 100644 --- a/catalog/src/catalog.tsx +++ b/catalog/src/catalog.tsx @@ -23,7 +23,8 @@ import { BigNumber, SubscriptionsAndServicesDDOs, OrderProgressStep, - SubscriptionsAndDatasetsDDOs + SubscriptionsAndDatasetsDDOs, + SearchOptions } from './types' import { conductOrder, @@ -210,10 +211,10 @@ export const NeverminedProvider = ({ children, config, verbose }: NeverminedProv } }, - getPublishedSubscriptions: async (): Promise => { + getPublishedSubscriptions: async (searchOptions?: SearchOptions): Promise => { try { const account = await getCurrentAccount(sdk) - const query = await sdk.search.subscriptionsCreated(account) + const query = await sdk.search.subscriptionsCreated(account, searchOptions?.offset, searchOptions?.page, searchOptions?.sort, searchOptions?.appId) return query.results } catch { verbose && Logger.error(error) @@ -221,32 +222,33 @@ export const NeverminedProvider = ({ children, config, verbose }: NeverminedProv } }, - getPublishedSubscriptionsAndServices: async (): Promise => { + getPublishedSubscriptionsAndServices: async (searchOptions?: SearchOptions + ): Promise => { try { const account = await getCurrentAccount(sdk) - const query = await sdk.search.subscriptionsCreated(account) - return getSubscriptionsAndServices(query.results, sdk) + const query = await sdk.search.subscriptionsCreated(account, searchOptions?.offset, searchOptions?.page, searchOptions?.sort, searchOptions?.appId) + return getSubscriptionsAndServices(query.results, sdk, searchOptions) } catch (error) { verbose && Logger.error(error) return [] } }, - getPublishedSubscriptionsAndDatasets: async (): Promise => { + getPublishedSubscriptionsAndDatasets: async (searchOptions?: SearchOptions): Promise => { try { const account = await getCurrentAccount(sdk) - const query = await sdk.search.subscriptionsCreated(account) - return getSubscriptionsAndDatasets(query.results, sdk) + const query = await sdk.search.subscriptionsCreated(account, searchOptions?.offset, searchOptions?.page, searchOptions?.sort, searchOptions?.appId) + return getSubscriptionsAndDatasets(query.results, sdk, searchOptions) } catch (error) { verbose && Logger.error(error) return [] } }, - getPurchasedSubscriptions: async (): Promise => { + getPurchasedSubscriptions: async (searchOptions?: SearchOptions): Promise => { try { const account = await getCurrentAccount(sdk) - const query = await sdk.search.subscriptionsPurchased(account) + const query = await sdk.search.subscriptionsPurchased(account, searchOptions?.offset, searchOptions?.page, searchOptions?.sort, searchOptions?.appId) return query.results } catch (error) { verbose && Logger.error(error) @@ -254,31 +256,32 @@ export const NeverminedProvider = ({ children, config, verbose }: NeverminedProv } }, - getPurchasedSubscriptionsAndServices: async (): Promise => { + getPurchasedSubscriptionsAndServices: async (searchOptions?: SearchOptions + ): Promise => { try { const account = await getCurrentAccount(sdk) - const query = await sdk.search.subscriptionsPurchased(account) - return getSubscriptionsAndServices(query.results, sdk) + const query = await sdk.search.subscriptionsPurchased(account, searchOptions?.offset, searchOptions?.page, searchOptions?.sort, searchOptions?.appId) + return getSubscriptionsAndServices(query.results, sdk, searchOptions) } catch (error) { verbose && Logger.error(error) return [] } }, - getPurchasedSubscriptionsAndDatasets: async (): Promise => { + getPurchasedSubscriptionsAndDatasets: async (searchOptions?: SearchOptions): Promise => { try { const account = await getCurrentAccount(sdk) - const query = await sdk.search.subscriptionsPurchased(account) - return getSubscriptionsAndDatasets(query.results, sdk) + const query = await sdk.search.subscriptionsPurchased(account, searchOptions?.offset, searchOptions?.page, searchOptions?.sort, searchOptions?.appId) + return getSubscriptionsAndDatasets(query.results, sdk, searchOptions) } catch (error) { verbose && Logger.error(error) return [] } }, - getAssociatedServices: async (did: string): Promise => { + getAssociatedServices: async (did: string, searchOptions?: SearchOptions): Promise => { try { - const query = await sdk.search.servicesBySubscription(did) + const query = await sdk.search.servicesBySubscription(did, searchOptions?.offset, searchOptions?.page, searchOptions?.sort, searchOptions?.appId) return query.results } catch (error) { verbose && Logger.error(error) @@ -286,9 +289,9 @@ export const NeverminedProvider = ({ children, config, verbose }: NeverminedProv } }, - getAssociatedDatasets: async (did: string): Promise => { + getAssociatedDatasets: async (did: string, searchOptions?: SearchOptions): Promise => { try { - const query = await sdk.search.datasetsBySubscription(did) + const query = await sdk.search.datasetsBySubscription(did, searchOptions?.offset, searchOptions?.page, searchOptions?.sort, searchOptions?.appId) return query.results } catch (error) { verbose && Logger.error(error) diff --git a/catalog/src/types/index.ts b/catalog/src/types/index.ts index 5973dd7..32a67b9 100644 --- a/catalog/src/types/index.ts +++ b/catalog/src/types/index.ts @@ -299,6 +299,20 @@ export interface GenericOutput { success: boolean } +/** + * Query search options + */ +export interface SearchOptions { + /** Number of results per page */ + offset?: number + /** Number of page */ + page?: number + /** result order */ + sort?: 'asc' | 'desc' + /** If app to search have an id */ + appId?: string +} + /** Id of the asset */ export type DID = string @@ -405,51 +419,62 @@ export interface AccountModule { /** * Get only published Subscriptions * @param address the address which published the subscription returned + * @param searchOptions options for customize result * @returns published subscriptions */ - getPublishedSubscriptions: (address: string) => Promise + getPublishedSubscriptions: (searchOptions?: SearchOptions) => Promise /** * Get all the services associated a subscription * @param address the subscription address + * @param searchOptions options for customize result * @returns associated services to subscriptions */ - getAssociatedServices: (did: string) => Promise + getAssociatedServices: (did: string, searchOptions?: SearchOptions) => Promise /** * Get all the datasets associated to a subscription * @param address the subscription address + * @param searchOptions options for customize result * @returns associated datasets to subscriptions */ - getAssociatedDatasets: (did: string) => Promise + getAssociatedDatasets: (did: string, searchOptions?: SearchOptions) => Promise /** * Get all the published subscriptions and services associated from the wallet address passed - * @param did the did of the subscription + * @param searchOptions options for customize result * @returns published subscriptions and service */ - getPublishedSubscriptionsAndServices: (address: string) => Promise + getPublishedSubscriptionsAndServices: ( + searchOptions?: SearchOptions, + ) => Promise /** * Get all the published subscriptions and datasets associated from the wallet address passed - * @param did the did of the subscription + * @param searchOptions options for customize result * @returns published subscriptions and its datasets */ - getPublishedSubscriptionsAndDatasets: (address: string) => Promise + getPublishedSubscriptionsAndDatasets: ( + searchOptions?: SearchOptions, + ) => Promise /** * Get only purchased Subscriptions - * @param address the address which purchased the subscription returned + * @param searchOptions options for customize result * @returns purchased subscriptions */ - getPurchasedSubscriptions: (address: string) => Promise + getPurchasedSubscriptions: (searchOptions?: SearchOptions) => Promise /** * Get all the purchased subscriptions and services associated from the wallet address passed - * @param address the address which published the subscription returned + * @param searchOptions options for customize result * @returns purchased subscriptions and services */ - getPurchasedSubscriptionsAndServices: (address: string) => Promise + getPurchasedSubscriptionsAndServices: ( + searchOptions?: SearchOptions, + ) => Promise /** * Get all the purchased subscriptions and datasets associated from the wallet address passed - * @param did the did of the subscription + * @param searchOptions options for customize result * @returns purchased subscriptions and its datasets */ - getPurchasedSubscriptionsAndDatasets: (address: string) => Promise + getPurchasedSubscriptionsAndDatasets: ( + searchOptions?: SearchOptions, + ) => Promise /** * Generate a token for authentication in the Marketplace API * @returns The new generated token diff --git a/catalog/src/utils/index.ts b/catalog/src/utils/index.ts index 5b6a299..c90d326 100644 --- a/catalog/src/utils/index.ts +++ b/catalog/src/utils/index.ts @@ -4,6 +4,7 @@ import { ERCType, MarketplaceAPIToken, NeverminedOptions, + SearchOptions, SubscribablePromise, } from '../types' import axios from 'axios' @@ -173,10 +174,20 @@ export const handlePostRequest = async (url: string, formData: FormData, retries } } -export const getSubscriptionsAndServices = async (subscriptionsDDOs: DDO[], sdk: Nevermined) => { +export const getSubscriptionsAndServices = async ( + subscriptionsDDOs: DDO[], + sdk: Nevermined, + searchOptions?: SearchOptions, +) => { return Promise.all( subscriptionsDDOs.map(async (ddo) => { - const query = await sdk.search.servicesBySubscription(ddo.id) + const query = await sdk.search.servicesBySubscription( + ddo.id, + searchOptions?.offset, + searchOptions?.page, + searchOptions?.sort, + searchOptions?.appId, + ) return { subscription: ddo, @@ -186,10 +197,20 @@ export const getSubscriptionsAndServices = async (subscriptionsDDOs: DDO[], sdk: ) } -export const getSubscriptionsAndDatasets = async (subscriptionsDDOs: DDO[], sdk: Nevermined) => { +export const getSubscriptionsAndDatasets = async ( + subscriptionsDDOs: DDO[], + sdk: Nevermined, + searchOptions?: SearchOptions, +) => { return Promise.all( subscriptionsDDOs.map(async (ddo) => { - const query = await sdk.search.datasetsBySubscription(ddo.id) + const query = await sdk.search.datasetsBySubscription( + ddo.id, + searchOptions?.offset, + searchOptions?.page, + searchOptions?.sort, + searchOptions?.appId, + ) return { subscription: ddo, diff --git a/catalog/unit-tests/catalog/catalog.account.spec.tsx b/catalog/unit-tests/catalog/catalog.account.spec.tsx index b7a0f83..5c93783 100644 --- a/catalog/unit-tests/catalog/catalog.account.spec.tsx +++ b/catalog/unit-tests/catalog/catalog.account.spec.tsx @@ -546,7 +546,7 @@ describe('Nevermined account', () => { (async () => { try { - const result = await account.getPublishedSubscriptions(walletAddress) + const result = await account.getPublishedSubscriptions() setSubscriptions([...result]) } catch (error: any) { @@ -582,7 +582,7 @@ describe('Nevermined account', () => { (async () => { try { - const result = await account.getPublishedSubscriptionsAndServices(walletAddress) + const result = await account.getPublishedSubscriptionsAndServices() setSubscriptions([...result]) } catch (error: any) { @@ -621,7 +621,7 @@ describe('Nevermined account', () => { (async () => { try { - const result = await account.getPurchasedSubscriptions(walletAddress) + const result = await account.getPurchasedSubscriptions() setSubscriptions([...result]) } catch (error: any) { @@ -657,7 +657,7 @@ describe('Nevermined account', () => { (async () => { try { - const result = await account.getPurchasedSubscriptionsAndServices(walletAddress) + const result = await account.getPurchasedSubscriptionsAndServices() setSubscriptions([...result]) } catch (error: any) { @@ -732,7 +732,7 @@ describe('Nevermined account', () => { (async () => { try { - const result = await account.getPublishedSubscriptionsAndDatasets(walletAddress) + const result = await account.getPublishedSubscriptionsAndDatasets() setSubscriptions([...result]) } catch (error: any) { @@ -771,7 +771,7 @@ describe('Nevermined account', () => { (async () => { try { - const result = await account.getPublishedSubscriptionsAndDatasets(walletAddress) + const result = await account.getPublishedSubscriptionsAndDatasets() setSubscriptions([...result]) } catch (error: any) { diff --git a/providers/package.json b/providers/package.json index 1d6c468..2415a0f 100644 --- a/providers/package.json +++ b/providers/package.json @@ -1,7 +1,7 @@ { "name": "@nevermined-io/providers", "private": false, - "version": "1.3.3", + "version": "1.3.4", "main": "./dist/index.js", "types": "./dist/index.d.ts", "dependencies": {