UNPKG

@gameroom/cli

Version:

A command line tool for Gameroom

45 lines (43 loc) 2.15 kB
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 } }