mirror of
https://github.com/oceanprotocol/ocean.js.git
synced 2024-11-26 20:39:05 +01:00
add querySearch() function
This commit is contained in:
parent
bbab53c7bf
commit
8b952c6b05
@ -1,6 +1,30 @@
|
||||
import { LoggerInstance, sleep } from '../utils'
|
||||
import { Asset, DDO, ValidateMetadata } from '../@types/'
|
||||
import fetch from 'cross-fetch'
|
||||
|
||||
export interface SearchQuery {
|
||||
from?: number
|
||||
size?: number
|
||||
query: {
|
||||
match?: {
|
||||
[property: string]:
|
||||
| string
|
||||
| number
|
||||
| boolean
|
||||
| Record<string, string | number | boolean>
|
||||
}
|
||||
// eslint-disable-next-line camelcase
|
||||
query_string?: {
|
||||
[property: string]: string | number | string[] | number[] | boolean
|
||||
}
|
||||
// eslint-disable-next-line camelcase
|
||||
simple_query_string?: {
|
||||
[property: string]: string | number | string[] | number[] | boolean
|
||||
}
|
||||
}
|
||||
sort?: { [jsonPath: string]: string }
|
||||
}
|
||||
|
||||
export class Aquarius {
|
||||
public aquariusURL
|
||||
/**
|
||||
@ -121,6 +145,37 @@ export class Aquarius {
|
||||
}
|
||||
return status
|
||||
}
|
||||
|
||||
/**
|
||||
* Search over the DDOs using a query.
|
||||
* @param {SearchQuery} query Query to filter the DDOs.
|
||||
* @param {AbortSignal} signal abort signal
|
||||
* @return {Promise<QueryResult>}
|
||||
*/
|
||||
public async querySearch(query: SearchQuery, signal?: AbortSignal): Promise<any> {
|
||||
const path = this.aquariusURL + '/api/aquarius/assets/query'
|
||||
|
||||
try {
|
||||
const response = await fetch(path, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify(query),
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
signal: signal
|
||||
})
|
||||
|
||||
if (response.ok) {
|
||||
return response.json()
|
||||
} else {
|
||||
LoggerInstance.error('querySearch failed: ', response.status, response.statusText)
|
||||
return null
|
||||
}
|
||||
} catch (error) {
|
||||
LoggerInstance.error('Error querying metadata: ', error)
|
||||
throw new Error('Error querying metadata: ', error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default Aquarius
|
||||
|
Loading…
x
Reference in New Issue
Block a user