← back to Designerwallcoverings
scripts/brands-page/push-brands.cjs
19 lines
const fs=require('fs');
const env=fs.readFileSync(process.env.HOME+'/Projects/secrets-manager/.env','utf8');
const get=k=>{const m=env.match(new RegExp('^'+k+'=(.*)$','m'));return m?m[1].trim():'';};
const TOKEN=get('SHOPIFY_DW_ADMIN_TOKEN_CONTENT');
const host='designer-laboratory-sandbox.myshopify.com';
const ID=208010608691;
const body=fs.readFileSync('/tmp/page-brands-new.html','utf8');
// HARD leak gate before any write
if(/wallquest|chesapeake|brewster|nextwall|seabrook|nicolette/i.test(body)){console.error('ABORT: leak in body');process.exit(1);}
(async()=>{
const r=await fetch(`https://${host}/admin/api/2024-10/pages/${ID}.json`,{
method:'PUT',headers:{'X-Shopify-Access-Token':TOKEN,'Content-Type':'application/json'},
body:JSON.stringify({page:{id:ID,body_html:body}})
});
const j=await r.json();
if(j.page){console.log('PUSHED ok | id',j.page.id,'| handle',j.page.handle,'| updated',j.page.updated_at,'| bytes',j.page.body_html.length);}
else{console.log('ERR',r.status,JSON.stringify(j).slice(0,300));}
})().catch(e=>console.log('FAIL',e.message));