search and getPublished (is a static search)

This commit is contained in:
mihaisc 2020-05-06 15:24:20 +03:00
parent e6c9eec679
commit 4480a92270
3 changed files with 71 additions and 0 deletions

View File

@ -1,3 +1,4 @@
export * from './useConsume'
export * from './useMetadata'
export * from './useCompute'
export * from './useSearch'

View File

@ -0,0 +1 @@
export * from './useSearch'

View File

@ -0,0 +1,69 @@
import { useState } from 'react'
import { Logger } from '@oceanprotocol/squid'
import { useOcean } from '../../providers'
import {
SearchQuery,
Aquarius,
QueryResult
} from '@oceanprotocol/squid/dist/node/aquarius/Aquarius'
// TODO searchText
interface UseSearch {
searchQuery: (query: SearchQuery) => Promise<QueryResult>
getPublishedList: (
account: string,
page: number,
offset: number
) => Promise<QueryResult>
searchError?: string
}
function useSearch(): UseSearch {
const { ocean, account, config } = useOcean()
const [searchError, setSearchError] = useState<string | undefined>()
async function searchQuery(query: SearchQuery): Promise<QueryResult> {
if (!ocean || !account) return
setSearchError(undefined)
try {
const aquarius = new Aquarius(config.aquariusUri as string, Logger)
return await aquarius.queryMetadata(query)
} catch (error) {
setSearchError(error.message)
}
}
async function getPublishedList(
account: string,
page: number,
offset: number
): Promise<QueryResult> {
if (!ocean || !account) return
setSearchError(undefined)
try {
const searchQuery = {
page,
offset,
query: {
'publicKey.owner': [account]
},
sort: {
created: -1
}
} as SearchQuery
const aquarius = new Aquarius(config.aquariusUri as string, Logger)
return await aquarius.queryMetadata(searchQuery)
} catch (error) {
setSearchError(error.message)
}
}
return { searchQuery, getPublishedList, searchError }
}
export { useSearch, UseSearch }
export default useSearch