import ouidb_raw from '~/assets/ouidb.json';

export default defineEventHandler(async (event) => {
  const query:any = getQuery(event);
  const query_mac:string=query.mac;
  
  let errorLog:any[]=[];
  let db_total=0;
  let strippedMAC:string="";
  let returnRows:any;
  try{
      let ouidb:any=ouidb_raw;
      if (ouidb!=undefined){
        const ouiPrefixes=ouidb.map((oui:any)=> oui.prefix as string);
        db_total=ouiPrefixes.length;
        if (query['stats']==true){
          returnRows=[];
        }

        if (query_mac==undefined || query_mac==''){
          errorLog.push("No MAC queried");
          returnRows=[];
        }
        else
        {
          strippedMAC=query_mac.replace(/([:\-\.])+/gi,"").toUpperCase();
          strippedMAC=strippedMAC.slice(0,6);
          let tempRows=[];
          for (let key=0;key<ouiPrefixes.length && tempRows.length<100;key++)
          {
            if (ouidb[key].prefix.startsWith(strippedMAC)){
              tempRows.push(ouidb[key])
            }
          }
          returnRows=tempRows;
        }
      }
      else{
        throw Error("No value in ouidb variable")
      }
      

  }
  catch(err:any){
    errorLog.push(err.message)
  }
  finally{
    return {
      original_string:query.mac,
      formatted_string:strippedMAC,
      results:returnRows,
      db_total:db_total,
      errorLog:errorLog
    }
  }
})
