Module:ToolInventoryData: Difference between revisions

From Claremont MakerSpace
(Use native lua functions introduced in ExternalData 2.2)
No edit summary
Line 1: Line 1:
local p = {}
local p = {}


function p.getToolInfo(asset_tag)
local function getToolInfo(asset_tag)
   local data, err = mw.ext.externaldata.getWebData {
   local data, err = mw.ext.externaldata.getWebData {
       url = 'SNIPEIT_URL/api/v1/hardware/bytag/' .. asset_tag,
       url = 'SNIPEIT_URL/api/v1/hardware/bytag/' .. asset_tag,

Revision as of 05:27, 3 August 2021

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 .. '||' .. data.status .. '\n|-\n'
   end

   return out .. '|}'
end

return p