dsql-admin/dsql-app/.local_dist/server/pages/api/sync-table-data.js
Benjamin Toby 35fec57590 Updates
2025-01-28 19:43:16 +01:00

1 line
3.6 KiB
JavaScript

"use strict";(()=>{var e={};e.id=538,e.ids=[538],e.modules={27825:e=>{e.exports=require("lodash")},75600:e=>{e.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},72583:e=>{e.exports=require("sanitize-html")},9973:e=>{e.exports=require("serverless-mysql")},79428:e=>{e.exports=require("buffer")},55511:e=>{e.exports=require("crypto")},29021:e=>{e.exports=require("fs")},33873:e=>{e.exports=require("path")},69653:(e,a,r)=>{r.r(a),r.d(a,{config:()=>_,default:()=>E,routeModule:()=>h});var t={};r.r(t),r.d(t,{default:()=>f});var s=r(89947),d=r(2706),o=r(96762),i=r(67619),l=r(69842),n=r(27825),u=r.n(n),b=r(48786),c=r(33170);async function p({tbls:e,user:a,query:r}){let t;if(!r?.delegated)return{isPriviledged:!0,rootUserId:a.id};try{for(let r=0;r<e.length;r++){let s=e[r],d=await (0,b.A)(`SELECT * FROM delegated_user_tables WHERE delegated_user_id='${a.id}' AND \`database\`='${s.db}' AND \`table\`='${s.table}'`);if(!d?.[0]?.root_user_id)throw Error("Unauthorized!");let o=d[0];t||(t=o.root_user_id)}return{isPriviledged:!0,rootUserId:t}}catch(e){return{isPriviledged:!1,rootUserId:t,error:e.message}}}var m=r(4820);async function f(e,a){if("POST"!==e.method)return a.json({msg:"Failed!"});let r=await (0,l.A)(e,a,!0);if(!r)return a.json({success:!1,msg:"Unauthorized"});let{paradigm:t,src:s,dst:d}=e.body;try{let o=await p({tbls:[{db:s.db,table:s.table},{db:d.db,table:d.table}],user:r,query:e.query});if(!o.rootUserId||!o.isPriviledged)throw Error(o.error||"Unauthorized!");let i=(0,m.A)({userId:o.rootUserId});if(!i)throw Error("User Schema Data not Found!");let l=`${process.env.DSQL_USER_DB_PREFIX}${o.rootUserId}_${d.db}`,n=`${process.env.DSQL_USER_DB_PREFIX}${o.rootUserId}_${s.db}`,f=i.find(e=>e.dbFullName==l),E=i.find(e=>e.dbFullName==n),_=f?.tables.find(e=>e.tableName==d.table),h=E?.tables.find(e=>e.tableName==s.table);if(!_||!h)throw Error("Operation Failed! Tables Schemas not present.");if(!u().isEqual(h.fields,_.fields))throw Error("Tables incompatible");switch(t){case"Push":let y=await (0,b.A)(`SELECT * FROM ${n}.${s.table}`),$=await (0,c.A)({dbName:d.db,paradigm:"import",payload:y,tableName:d.table,userId:o.rootUserId,payloadType:"object"});return await g({dbName:d.db,tableName:d.table,data:y,userId:o.rootUserId}),a.json({success:!0,payload:$});case"Pull":let I=await (0,b.A)(`SELECT * FROM ${l}.${d.table}`),w=await (0,c.A)({dbName:s.db,paradigm:"import",payload:I,tableName:s.table,userId:o.rootUserId,payloadType:"object"});return await g({dbName:s.db,tableName:s.table,data:I,userId:o.rootUserId}),a.json({success:!0,payload:w})}a.json({success:!1})}catch(e){console.log(e.message),(0,i.A)({component:"/api/sync-table-data",message:e.message,user:r}),a.json({success:!1,msg:e.message})}}async function g({dbName:e,tableName:a,data:r,userId:t}){let s=`${process.env.DSQL_USER_DB_PREFIX}${t}_${e.replace(/ /g,"")}`,d=r.map(e=>e.id),o=`DELETE FROM ${s}.${a}`;d?.[0]&&(o+=` WHERE id NOT IN (${d.join(",")})`),await (0,b.A)(o)}let E=(0,o.M)(t,"default"),_=(0,o.M)(t,"config"),h=new s.PagesAPIRouteModule({definition:{kind:d.A.PAGES_API,page:"/api/sync-table-data",pathname:"/api/sync-table-data",bundlePath:"",filename:""},userland:t})},4820:(e,a,r)=>{r.d(a,{A:()=>l});var t=r(67619),s=r(29021),d=r.n(s),o=r(33873),i=r.n(o);function l({userId:e}){try{let a=i().resolve(process.cwd(),`${process.env.DSQL_USER_DB_SCHEMA_PATH}/user-${e}/main.json`);return JSON.parse(d().readFileSync(a,"utf-8"))}catch(e){return(0,t.A)({component:"grabUserSchemaData",message:e.message}),null}}}};var a=require("../../webpack-api-runtime.js");a.C(e);var r=e=>a(a.s=e),t=a.X(0,[7337],()=>r(69653));module.exports=t})();