steamcommunity-market
Version:
Uses steamcommunity market API to get data.
55 lines (39 loc) • 917 B
JavaScript
const CMResponse = require('../../CMResponse');
const CMSearchListing = require('./CMSearchItem');
class CMSearch extends CMResponse {
constructor(handler, params, data) {
super(handler, params, data);
this.getSearchListings(data);
this.totalCount = this.listings.length;
}
[Symbol.iterator]() {
return this.listings.values();
}
getSearchListings(search) {
const listings = [];
search.forEach((listing) => {
listings.push(
new CMSearchListing(
listing,
this.date,
),
);
});
this.listings = listings;
}
update(params) {
const searchParams = {};
Object.assign(searchParams, this.params, params);
return this.handler
.get(params)
.then((search) => {
this.updateFromObject(search);
return this;
});
}
updateFromObject(search) {
this.listings = search.listings;
this.totalCount = search.totalCount;
}
}
module.exports = CMSearch;