Module:ToolInventoryData

From Claremont MakerSpace
Revision as of 21:09, 7 July 2020 by Adam.goldsmith (talk | contribs) (Make asset tag a link)

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

local p = {}

local function getToolInfo(asset_tag)
   mw.getCurrentFrame():callParserFunction(
         '#get_web_data',
         {
            url = 'SNIPEIT_URL/api/v1/hardware/bytag/' .. asset_tag,
            format='json',
            'use jsonpath',
            data='status=$.status_label.name, modelno=$.model_number'
         }
   )

   return {
      status = mw.getCurrentFrame():callParserFunction('#external_value', {'status'}),
      modelno = mw.getCurrentFrame():callParserFunction('#external_value', {'modelno'})
   }
end

function p.ToolInstanceTable(frame)
   local out = '{| class="wikitable" style="margin: 0;"\n! Asset Tag || Model Number || Status \n|-\n'
   for idx, asset_tag in ipairs(mw.text.split(frame.args[1], ';'))
   do
      data = getToolInfo(asset_tag)
      out = out .. '|' .. table.concat({'[https://inventory.claremontmakerspace.org/hardware/bytag?assetTag='..asset_tag..' '..asset_tag..']', data.modelno, data.status}, '||') .. '\n|-\n'
   end

   return out .. '|}'
end

return p