@rholabs/rho-sdk
Version:
Rho Protocol SDK
30 lines (26 loc) • 801 B
text/typescript
import { EventsFilter } from './index'
export const buildWhereQuery = (filter: EventsFilter) => {
let where: any = {}
const whereAnd: any = []
if (filter.marketIds) {
whereAnd.push({ marketId_in: filter.marketIds })
}
if (filter.futureIds) {
whereAnd.push({ futureId_in: filter.futureIds })
}
if (filter.timestampFrom) {
whereAnd.push({ blockTimestamp_gte: filter.timestampFrom })
}
if (filter.timestampTo) {
whereAnd.push({ blockTimestamp_lte: filter.timestampTo })
}
if (filter.userAddress) {
where.or = [{ owner: filter.userAddress }, { initiator: filter.userAddress }]
if (Object.keys(whereAnd).length > 0) {
where.and = whereAnd
}
} else {
where.and = whereAnd
}
return JSON.stringify(where).replace(/"([^(")"]+)":/g, '$1:')
}