Module:ToolInventoryData

From Claremont MakerSpace
Revision as of 20:49, 7 July 2020 by Adam.goldsmith (talk | contribs) (Add ToolInstanceTable)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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"\n! Asset Tag || Model Number || Status \n|-\n'
   for idx, asset_tag in ipairs(mw.text.split('CMS00001;CMS00002;CMS00021', ';'))
   do
      data = getToolInfo(asset_tag)
      out = out .. '|' .. table.concat({asset_tag, data.modelno, data.status}, '||') .. '\n|-\n'
   end

   return out .. '|}'
end

return p