diff --git a/src/ocean/Assets.ts b/src/ocean/Assets.ts index e2ce5898..c037f550 100644 --- a/src/ocean/Assets.ts +++ b/src/ocean/Assets.ts @@ -1,7 +1,12 @@ import { SearchQuery } from '../metadatastore/MetadataStore' import { DDO } from '../ddo/DDO' import { Metadata } from '../ddo/interfaces/Metadata' -import { Service, ServiceAccess, ServiceComputePrivacy } from '../ddo/interfaces/Service' +import { + Service, + ServiceAccess, + ServiceComputePrivacy, + ServiceCommon +} from '../ddo/interfaces/Service' import { EditableMetadata } from '../ddo/interfaces/EditableMetadata' import Account from './Account' import DID from './DID' @@ -352,6 +357,17 @@ export class Assets extends Instantiable { } as SearchQuery) } + public async getService(did: string, serviceType: string): Promise { + const services: ServiceCommon[] = (await this.resolve(did)).service + let service + services.forEach((serv) => { + if (serv.type.toString() === serviceType) { + service = serv + } + }) + return service + } + public async createAccessServiceAttributes( creator: Account, dtCost: number, diff --git a/test/integration/Marketplaceflow.test.ts b/test/integration/Marketplaceflow.test.ts index c302f16a..79180782 100644 --- a/test/integration/Marketplaceflow.test.ts +++ b/test/integration/Marketplaceflow.test.ts @@ -147,7 +147,9 @@ describe('Marketplace flow', () => { }) it('Marketplace posts asset for sale', async () => { - // const downloadService = await ocean.assets.getService(ddo.id, 'download') + const accessService = await ocean.assets.getService(ddo.id, 'access') + const price = 20 + assert(accessService.attributes.main.dtCost * price === 200) }) it('Bob gets datatokens', async () => {