wax-expresstrade
Version:
Promise-based Node API for WAX Expresstrade.
149 lines (113 loc) • 3.2 kB
JavaScript
const ETInterface = require('../ETInterface')
class IItem extends ETInterface {
async GetAllItems({ appId, sku, name, page, perPage, sort, noExclusions }) {
if (appId === undefined) {
throw new Error('appId not specified!')
}
const url = this.getUrl() + 'GetAllItems/v1'
const res = await this.request.get({
url,
qs: {
app_id: appId,
sku: sku ? sku.toString() : undefined,
name,
page,
per_page: perPage,
sort,
no_exclusions: noExclusions
}
})
if (!res.response) {
throw new Error(res.message)
}
res.response.current_page = res.current_page
res.response.total_pages = res.total_pages
return res.response
}
async GetItemsById({ itemId }) {
if (itemId === undefined) {
throw new Error('itemId not specified!')
}
const url = this.getUrl() + 'GetItemsById/v1'
const res = await this.request.get({
url,
qs: { item_id: itemId.toString() }
})
if (!res.response) {
throw new Error(res.message)
}
return res.response
}
async WithdrawToOpskins({ itemId }) {
if (itemId === undefined) {
throw new Error('itemId not specified!')
}
const url = this.getUrl() + 'WithdrawToOpskins/v1'
const form = { item_id: itemId.toString() }
const res = await this.request.post({ url, form })
if (!res.response) {
throw new Error(res.message)
}
return res.response
}
GetItems() {
throw new Error(
'GetItems is deprecated. Please use GetItemDefinitions instead.'
)
}
async GetItemDefinitions({ appId, defIdFilter, indexBy, page, perPage }) {
if (appId === undefined) {
throw new Error('appId not specified!')
}
const url = this.getUrl() + 'GetItemDefinitions/v1'
const res = await this.request.get({
url,
qs: {
app_id: appId,
def_id_filter: defIdFilter ? defIdFilter.toString() : undefined,
index_by: indexBy,
page,
per_page: perPage
}
})
if (!res.response) {
throw new Error(res.message)
}
res.response.current_page = res.current_page
res.response.total_pages = res.total_pages
return res.response
}
async GetRarityStats({ appId, defId }) {
if (appId === undefined) {
throw new Error('appId not specified!')
}
const url = this.getUrl() + 'GetRarityStats/v1'
const res = await this.request.get({
url,
qs: { app_id: appId, def_id: defId ? defId.toString() : undefined }
})
if (!res.response) {
throw new Error(res.message)
}
return res.response.items
}
async InstantSellRecentItems({ itemId, instantSellType = 2 }) {
if (itemId === undefined) {
throw new Error('itemId not specified!')
}
const url = this.getUrl() + 'WithdrawToOpskins/v1'
const form = {
item_id: itemId.toString(),
instant_sell_type: instantSellType
}
const res = await this.request.post({ url, form })
if (!res.response) {
throw new Error(res.message)
}
return res.response
}
getUrl() {
return 'IItem/'
}
}
module.exports = IItem