helium-js icon indicating copy to clipboard operation
helium-js copied to clipboard

Allow hotspot(address).rewards.sum.get to take natural language dates

Open danielcolinjames opened this issue 4 years ago • 0 comments

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)
  }

danielcolinjames avatar Feb 19 '21 01:02 danielcolinjames