Module:ToolInventoryData

From Claremont MakerSpace

Documentation for this module may be created at Module:ToolInventoryData/doc

local p = {}

local function getToolInfo(asset_tag)
   local data, err = mw.ext.externaldata.getWebData {
      url = 'SNIPEIT_URL/api/v1/hardware/bytag/' .. asset_tag,
      format = 'json',
      'use jsonpath',
      data = {status = '$.status_label.name'}
   }
   if err ~= nil then
      mw.logObject(err)
   end

   return data
end

function p.ToolInstanceTable(frame)
   local out = '{| class="wikitable" style="margin: 0;"\n! Asset Tag || Status \n|-\n'
   for idx, asset_tag in ipairs(mw.text.split(frame.args[1], ';'))
   do
      local data = getToolInfo(asset_tag)
      local status = data and data.status or '<span class="error">Error retrieving status</span>'
      local link ='[https://inventory.claremontmakerspace.org/hardware/bytag?assetTag='..asset_tag..' '..asset_tag..']'
      out = out .. '|' .. link .. '||' .. status .. '\n|-\n'
   end

   return out .. '|}'
end

return p