@arcane-utils/ingestion
Version:
Ingestion utilities for Arcane
5 lines • 2.75 kB
JavaScript
var R=Object.create;var l=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,H=Object.prototype.hasOwnProperty;var D=(t,e)=>{for(var o in e)l(t,o,{get:e[o],enumerable:!0})},T=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of w(e))!H.call(t,i)&&i!==o&&l(t,i,{get:()=>e[i],enumerable:!(r=b(e,i))||r.enumerable});return t};var g=(t,e,o)=>(o=t!=null?R(h(t)):{},T(e||!t||!t.__esModule?l(o,"default",{value:t,enumerable:!0}):o,t)),C=t=>T(l({},"__esModule",{value:!0}),t);var N={};D(N,{HISTORICAL_TABLE_SCHEMA:()=>p,getHistoricalTableName:()=>m,shouldCallProductEvolutionCalculator:()=>_,storeExecutionDetails:()=>y});module.exports=C(N);var c=require("lodash"),u=g(require("moment"),1),_=t=>{let e=(0,u.default)();if((0,c.isNil)(t.product_evolution_info)||(0,c.isNil)(t.product_evolution_info.identifier_key)||t.product_evolution_info.identifier_key.length===0)return!1;if((0,c.isNil)(t.product_evolution_info.last_calculation)||(0,c.isNil)(t.product_evolution_info.last_calculation.date))return!0;let o=(0,u.default)(t.product_evolution_info.last_calculation.date);return!e.isSame(o,"day")};var d=require("@arcane-utils/bigquery"),m=t=>`historical_${t}`,p=[{name:"timestamp",type:"TIMESTAMP"},{name:"type",type:"STRING"},{name:"invoker",type:"STRING"},{name:"headers",type:"STRING"},{name:"additional_info",type:"STRING"}],L=async(t,e)=>{if(!process.env.HISTORICAL_DATASET)throw new Error("HISTORICAL_DATASET environment variable is not defined");await e.dataset(process.env.HISTORICAL_DATASET).createTable(t,{schema:p})},y=async(t,e,o,r,i,S,I,n)=>{let s=m(e),v=`${process.env.GCP_PROJECT}.${process.env.HISTORICAL_DATASET}.${s}`,A={timestamp:new Date().toISOString(),type:"fetch",invoker:"",headers:(r??[]).map(a=>a.key).join(","),additional_info:JSON.stringify({monitoringId:o,jobRows:i,jobId:S,fileHash:I})},f={query:`
INSERT INTO \`${v}\` (timestamp, type, invoker, headers, additional_info)
VALUES (@timestamp, @type, @invoker, @headers, @additional_info)
`,location:"EU",params:{...A}};try{let[a]=await t.createQueryJob(f);await(0,d.getJobResult)(a.id,"storeExecutionDetails",t,n),n.info(`Row inserted into ${s} successfully.`)}catch(a){if(a.message.includes("Not found")){n.info("Historical Table not found. Creating it..."),await L(s,t),n.info(`Table ${s} created. Retrying insert...`);let[E]=await t.createQueryJob(f);await(0,d.getJobResult)(E.id,"storeExecutionDetails",t,n),n.info(`Row inserted into ${s} after table creation.`)}else console.error("DML insert failed:",a)}};0&&(module.exports={HISTORICAL_TABLE_SCHEMA,getHistoricalTableName,shouldCallProductEvolutionCalculator,storeExecutionDetails});
//# sourceMappingURL=index.cjs.map