helium-js
helium-js copied to clipboard
Allow hotspot(address).rewards.sum.get to take natural language dates
https://github.com/helium/helium-js/blob/master/packages/http/src/resources/Sums.ts#L51
Right now .list
allows a string like "-1 day" but .get
only takes Date
objects as input:
.list:
async list(params: ListRewardsParams): Promise<ResourceList<Sum>> {
if (!params.bucket) {
throw new Error('missing bucket param')
}
const {
data: { data: rewards, cursor },
} = await this.client.get(this.baseUrl, {
cursor: params.cursor,
min_time: params.minTime instanceof Date ? params.minTime?.toISOString() : params.minTime,
max_time: params.maxTime instanceof Date ? params.maxTime?.toISOString() : params.maxTime,
bucket: params.bucket,
})
const data = rewards.map((d: HTTPSum) => new Sum(this.client, d))
return new ResourceList(data, this.list.bind(this), cursor)
}
.get:
async get(minTime: Date, maxTime: Date): Promise<Sum> {
const { data: { data } } = await this.client.get(this.baseUrl, {
min_time: minTime.toISOString(),
max_time: maxTime.toISOString(),
})
return new Sum(this.client, data)
}