2020-05-06 14:24:20 +02:00
|
|
|
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 {
|
2020-05-11 13:47:21 +02:00
|
|
|
searchWithQuery: (query: SearchQuery) => Promise<QueryResult>
|
2020-05-06 14:24:20 +02:00
|
|
|
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>()
|
|
|
|
|
2020-05-11 13:47:21 +02:00
|
|
|
async function searchWithQuery(query: SearchQuery): Promise<QueryResult> {
|
2020-05-06 14:24:20 +02:00
|
|
|
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 {
|
2020-05-06 14:31:36 +02:00
|
|
|
const query = {
|
2020-05-06 14:24:20 +02:00
|
|
|
page,
|
|
|
|
offset,
|
|
|
|
query: {
|
|
|
|
'publicKey.owner': [account]
|
|
|
|
},
|
|
|
|
sort: {
|
|
|
|
created: -1
|
|
|
|
}
|
|
|
|
} as SearchQuery
|
2020-05-06 14:32:05 +02:00
|
|
|
|
2020-05-11 13:47:21 +02:00
|
|
|
return await searchWithQuery(query)
|
2020-05-06 14:24:20 +02:00
|
|
|
} catch (error) {
|
|
|
|
setSearchError(error.message)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-05-11 13:47:21 +02:00
|
|
|
return { searchWithQuery, getPublishedList, searchError }
|
2020-05-06 14:24:20 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
export { useSearch, UseSearch }
|
|
|
|
export default useSearch
|