Skip to content
This repository was archived by the owner on Oct 19, 2023. It is now read-only.

Commit 33958b8

Browse files
committed
address all the comments
1 parent afaf5e0 commit 33958b8

File tree

6 files changed

+53
-88
lines changed

6 files changed

+53
-88
lines changed

catalog/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
"main": "./dist/index.js",
55
"types": "./dist/index.d.ts",
66
"dependencies": {
7-
"@nevermined-io/sdk-dtp": "^0.4.0",
8-
"@nevermined-io/sdk": "^1.1.0",
7+
"@nevermined-io/sdk-dtp": "^0.4.1",
8+
"@nevermined-io/sdk": "^1.2.0",
99
"@types/jsonwebtoken": "^8.5.8",
1010
"axios": "^0.27.2",
1111
"axios-retry": "^3.3.1",

catalog/src/catalog.tsx

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -206,28 +206,22 @@ export const NeverminedProvider = ({ children, config, verbose }: NeverminedProv
206206
}
207207
},
208208

209-
getPublishedSubscriptions: async (address: string): Promise<SubscriptionsAndServicesDDOs[]> => {
209+
getPublishedSubscriptions: async (): Promise<SubscriptionsAndServicesDDOs[]> => {
210210
try {
211-
const publishedAssets = await account.getReleases(address)
212-
213-
const subscriptions = await getSubscriptionsAndServices(publishedAssets, assets, sdk)
214-
215-
return subscriptions.filter(ddo => Boolean(ddo)) as SubscriptionsAndServicesDDOs[]
216-
211+
const account = await getCurrentAccount(sdk)
212+
const query = await sdk.search.subscriptionsCreated(account)
213+
return getSubscriptionsAndServices(query.results, sdk)
217214
} catch (error) {
218215
verbose && Logger.error(error)
219216
return []
220217
}
221218
},
222219

223-
getPurchasedSubscriptions: async (address: string): Promise<SubscriptionsAndServicesDDOs[]> => {
220+
getPurchasedSubscriptions: async (): Promise<SubscriptionsAndServicesDDOs[]> => {
224221
try {
225-
const publishedAssets = await account.getCollection(address)
226-
227-
const subscriptions = await getSubscriptionsAndServices(publishedAssets, assets, sdk)
228-
229-
return subscriptions.filter(ddo => Boolean(ddo)) as SubscriptionsAndServicesDDOs[]
230-
222+
const account = await getCurrentAccount(sdk)
223+
const query = await sdk.search.subscriptionsPurchased(account)
224+
return getSubscriptionsAndServices(query.results, sdk)
231225
} catch (error) {
232226
verbose && Logger.error(error)
233227
return []

catalog/src/utils/index.ts

Lines changed: 7 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Account, DDO, Nevermined, Logger, ClientError } from '..'
2-
import { AssetsModule, BigNumber, ERCType, NeverminedNFT721Type } from '../types'
2+
import { BigNumber, ERCType } from '../types'
33
import axios from 'axios'
44
import axiosRetry from 'axios-retry'
55

@@ -167,67 +167,14 @@ export const handlePostRequest = async (url: string, formData: FormData, retries
167167
}
168168
}
169169

170-
export const getSubscriptionsAndServices = async (
171-
dids: string[],
172-
assets: AssetsModule,
173-
sdk: Nevermined,
174-
) => {
170+
export const getSubscriptionsAndServices = async (subscriptionsDDOs: DDO[], sdk: Nevermined) => {
175171
return Promise.all(
176-
dids.map(async (a) => {
177-
try {
178-
const subscriptionDDO = await assets.findOne(a)
179-
180-
if (!subscriptionDDO) {
181-
return undefined
182-
}
183-
184-
const metadata = subscriptionDDO?.findServiceByType('metadata')
185-
const isNFTSales = subscriptionDDO?.findServiceByType('nft-sales')
186-
187-
if (
188-
!metadata ||
189-
!isNFTSales ||
190-
metadata.attributes.main.nftType !== NeverminedNFT721Type.nft721Subscription
191-
) {
192-
return undefined
193-
}
194-
195-
const nftInfo = (await sdk.keeper.didRegistry.getNFTInfo(subscriptionDDO.id)) as string[]
196-
197-
const services = await Promise.all(
198-
dids.map(async (p) => {
199-
try {
200-
const serviceDDO = await assets.findOne(p)
201-
202-
const metadata = serviceDDO?.findServiceByType('metadata')
203-
const isNFTAccess = serviceDDO?.findServiceByType('nft-access')
204-
205-
const nftServiceInfo = (await sdk.keeper.didRegistry.getNFTInfo(
206-
serviceDDO.id,
207-
)) as string[]
208-
209-
if (
210-
!metadata ||
211-
!isNFTAccess ||
212-
metadata.attributes.main.nftType !== NeverminedNFT721Type.nft721Subscription ||
213-
nftServiceInfo[0] !== nftInfo[0]
214-
) {
215-
return undefined
216-
}
217-
218-
return serviceDDO
219-
} catch (_error) {
220-
return undefined
221-
}
222-
}),
223-
)
172+
subscriptionsDDOs.map(async (ddo) => {
173+
const query = await sdk.search.servicesBySubscription(ddo.id)
224174

225-
return {
226-
subscription: subscriptionDDO,
227-
services: services.filter((service) => Boolean(service)),
228-
}
229-
} catch (_error) {
230-
return undefined
175+
return {
176+
subscription: ddo,
177+
services: query.results,
231178
}
232179
}),
233180
)

catalog/unit-tests/mockups.ts

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,26 @@ export const ddo2 = {
346346
name: 'UK Weather information 2011',
347347
price: '1',
348348
type: 'dataset',
349-
nftType: 'nft721-subscription',
349+
nftType: 'nft721',
350+
webService: {
351+
type: 'RESTful',
352+
endpoints: [
353+
{
354+
GET: 'http://127.0.0.1:3000',
355+
},
356+
],
357+
internalAttributes: {
358+
authentication: {
359+
type: 'oauth',
360+
token: '',
361+
},
362+
headers: [
363+
{
364+
Authorization: 'Bearer xxxxxx',
365+
},
366+
],
367+
},
368+
},
350369
},
351370
additionalInformation: {
352371
description: 'Weather information of UK including temperature and humidity',
@@ -756,6 +775,11 @@ export const nevermined = {
756775
createWithRoyalties: async () => ddo,
757776
transferForDelegate: async () => true,
758777
},
778+
search: {
779+
subscriptionsCreated: () => ({ results: [ddo] }),
780+
subscriptionsPurchased: () => ({ results: [ddo] }),
781+
servicesBySubscription: () => ({ results: [ddo2, ddo3] }),
782+
},
759783
keeper: {
760784
conditions: {
761785
transferNftCondition: {

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,8 @@
105105
]
106106
},
107107
"dependencies": {
108-
"@nevermined-io/sdk": "^1.1.0",
109-
"@nevermined-io/sdk-dtp": "^0.4.0",
108+
"@nevermined-io/sdk": "^1.2.0",
109+
"@nevermined-io/sdk-dtp": "^0.4.1",
110110
"@types/jsonwebtoken": "^8.5.8",
111111
"@wagmi/core": "^0.8.15",
112112
"axios": "^0.27.2",

yarn.lock

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2168,23 +2168,23 @@
21682168
"@motionone/dom" "^10.15.5"
21692169
tslib "^2.3.1"
21702170

2171-
"@nevermined-io/sdk-dtp@^0.4.0":
2172-
version "0.4.0"
2173-
resolved "https://registry.yarnpkg.com/@nevermined-io/sdk-dtp/-/sdk-dtp-0.4.0.tgz#1e02e89ef335badcbb3864db491e17b449f51e09"
2174-
integrity sha512-MMWQ9G7PQQZLrqvkoOttieqLMpvdSIJm+Iv5O/SR0tDAoCMxJMHrF3NtkvVs/13qf4VsmT7KwLqBJ6/MQdot3A==
2171+
"@nevermined-io/sdk-dtp@^0.4.1":
2172+
version "0.4.1"
2173+
resolved "https://registry.yarnpkg.com/@nevermined-io/sdk-dtp/-/sdk-dtp-0.4.1.tgz#a04c622f3b5d4cb1a9480adec86f01631157abab"
2174+
integrity sha512-RjEWMx1OWwFYSq5jZXM/3n9WEoyaG1nwrXM/sK+/zpBMOwyScvfWZf3wpJKaVfshMH30FNOqcQrGYbcM8/5o7g==
21752175
dependencies:
2176-
"@nevermined-io/sdk" "1.1.0"
2176+
"@nevermined-io/sdk" "1.2.0"
21772177
circomlibjs "^0.1.1"
21782178
eciesjs "^0.3.15"
21792179
ffjavascript "^0.2.55"
21802180
node-rsa "^1.1.1"
21812181
snarkjs "^0.4.26"
21822182
web3-utils "^1.7.4"
21832183

2184-
"@nevermined-io/sdk@1.1.0", "@nevermined-io/sdk@^1.1.0":
2185-
version "1.1.0"
2186-
resolved "https://registry.yarnpkg.com/@nevermined-io/sdk/-/sdk-1.1.0.tgz#b18d63b2c17ef0508aed363a24750bbcfd1b8e87"
2187-
integrity sha512-UTT1l9VCIHVs7GM/PKnRFUHjT6KQIwH9WZ5fPQEQpeKzP4nDEmsyMOse9q2I4YtPY4O6az41EHWvfFmmljxhLw==
2184+
"@nevermined-io/sdk@1.2.0", "@nevermined-io/sdk@^1.2.0":
2185+
version "1.2.0"
2186+
resolved "https://registry.yarnpkg.com/@nevermined-io/sdk/-/sdk-1.2.0.tgz#5e11927eaf88c113c95abb19c61ca0682c2e584d"
2187+
integrity sha512-RqbBvZD0MEoYyl98x42qQfg85qcNrDQbFONF/cdVuPaPjmTsf64vImA/t5VwlLUMRGRH/OXKNnVuSw9r3C5VxA==
21882188
dependencies:
21892189
"@nevermined-io/subgraphs" "0.5.0"
21902190
assert "^2.0.0"

0 commit comments

Comments
 (0)