|
1 | 1 | import { Account, DDO, Nevermined, Logger, ClientError } from '..' |
2 | | -import { AssetsModule, BigNumber, ERCType, NeverminedNFT721Type } from '../types' |
| 2 | +import { BigNumber, ERCType } from '../types' |
3 | 3 | import axios from 'axios' |
4 | 4 | import axiosRetry from 'axios-retry' |
5 | 5 |
|
@@ -167,67 +167,14 @@ export const handlePostRequest = async (url: string, formData: FormData, retries |
167 | 167 | } |
168 | 168 | } |
169 | 169 |
|
170 | | -export const getSubscriptionsAndServices = async ( |
171 | | - dids: string[], |
172 | | - assets: AssetsModule, |
173 | | - sdk: Nevermined, |
174 | | -) => { |
| 170 | +export const getSubscriptionsAndServices = async (subscriptionsDDOs: DDO[], sdk: Nevermined) => { |
175 | 171 | 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) |
224 | 174 |
|
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, |
231 | 178 | } |
232 | 179 | }), |
233 | 180 | ) |
|
0 commit comments