← back to Tk 11331 Exec

verify_d2.mjs

21 lines

import fs from 'fs'; import {gql,sleep} from './lib.mjs';
const OFF=parseInt(process.argv[2]||'0'), N=parseInt(process.argv[3]||'431');
const all=JSON.parse(fs.readFileSync('data/d2_set.json','utf8')).slice(OFF,OFF+N);
const map=new Map(all.map(p=>[p.gid,p]));
const ids=all.map(p=>p.gid);
const Q=`query($ids:[ID!]!){nodes(ids:$ids){... on Product{id
  mn:metafield(namespace:"global",key:"v_prods_quantity_order_min"){value}
  uo:metafield(namespace:"global",key:"unit_of_measure"){value}}}}`;
let good=0,bad=0;const badlist=[];
for(let i=0;i<ids.length;i+=40){
  const d=await gql(Q,{ids:ids.slice(i,i+40)});
  for(const n of d.nodes){if(!n)continue;const p=map.get(n.id);
    const okmin=!p.need_min||n.mn?.value==='5';
    const okuom=!p.need_uom||n.uo?.value==='Sold Per Yard';
    if(okmin&&okuom)good++;else{bad++;badlist.push({id:n.id,min:n.mn?.value,uom:n.uo?.value});}
  }
  await sleep(120);
}
console.log(`D2 VERIFY (Admin API): checked=${good+bad} compliant=${good} NON-compliant=${bad}`);
if(bad)console.log('BAD:',badlist.slice(0,20));