@gameroom/cli
Version:
A command line tool for Gameroom
45 lines (43 loc) • 2.15 kB
JavaScript
const axios = require('axios'),
cosmetic = require('cosmetic'),
{ shopifyCredentials, tryRepeatedly } = require('../../helpers'),
{ spinner } = require('../../refs')
module.exports = class Inventory_Level {
constructor(data) {
if (!data) data = {}
this.available = data.available || 0,
this.inventory_item_id = data.inventory_item_id || null
this.location_id = data.location_id || null
this.disconnect_if_necessary = true
// updated_at read only
}
static async delete({ inventory_item_id, location_id }) {
const { username, password, store_url } = shopifyCredentials()
const result = await tryRepeatedly(() => axios.delete('/inventory_levels.json', {
auth: { username, password },
baseURL: `https://${store_url}/admin/api/2019-10`,
params: { inventory_item_id, location_id }
}), (err) => spinner.warn(`error deleting ${cosmetic.green('inventory_level')} ${inventory_item_id} ${err}`))
return result
}
static async get(inventory_item_id) {
const { username, password, store_url } = shopifyCredentials()
const result = await tryRepeatedly(() => axios.get('/inventory_levels.json', {
auth: { username, password },
baseURL: `https://${store_url}/admin/api/2019-10`,
params: { inventory_item_ids: inventory_item_id }
}), (err) => spinner.warn(`error getting ${cosmetic.green('inventory_levels')} for ${inventory_item_id} ${err}`))
return result && result.data && result.data.inventory_levels ? result.data.inventory_levels.reduce((a, i) => [...a, new Inventory_Level(i)], []) : []
}
async delete() {
return Inventory_Level.delete(this)
}
async save() {
const { username, password, store_url } = shopifyCredentials()
const result = await tryRepeatedly(() => axios.post('/inventory_levels/set.json', this, {
auth: { username, password },
baseURL: `https://${store_url}/admin/api/2019-10`,
}), (err) => spinner.warn(`error saving ${cosmetic.green('inventory_level')} for ${this.inventory_item_id} ${err}`))
return result && result.data && result.data.inventory_level ? result.data.inventory_level : null
}
}