Edit: /tmp/tsx-0/17887-57b53d2e56cc48ccfb5d59340f08f51e6664f4df (6414B)
{"code":"__filename=\"/opt/canhelp/apps/api/src/routes/google.ts\";(()=>{\n\"use strict\";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var google_exports={};__export(google_exports,{default:()=>google_default});module.exports=__toCommonJS(google_exports);var import_hono=require(\"hono\");var import_drizzle_orm=require(\"drizzle-orm\");var import_auth=require(\"../middleware/auth.js\");var import_db=require(\"../db.js\");var import_db2=require(\"@canhelp/db\");var import_google_oauth=require(\"../lib/google-oauth.js\");const app=new import_hono.Hono;const WEB_URL=process.env.WEB_URL||\"http://localhost:3000\";app.get(\"/calendar/status\",import_auth.requireAuth,async c=>{const user=c.get(\"user\");const status=await(0,import_google_oauth.getCalendarStatus)(user.id);return c.json(status)});app.get(\"/calendar/connect\",import_auth.requireAuth,async c=>{const user=c.get(\"user\");const[dbUser]=await import_db.db.select({planId:import_db2.users.planId}).from(import_db2.users).where((0,import_drizzle_orm.eq)(import_db2.users.id,user.id));if(dbUser?.planId){const[plan]=await import_db.db.select({hasGoogleCalendar:import_db2.plans.hasGoogleCalendar}).from(import_db2.plans).where((0,import_drizzle_orm.eq)(import_db2.plans.id,dbUser.planId));if(!plan?.hasGoogleCalendar){return c.json({error:\"Google Calendar requires a Pro or Ultimate plan\",code:\"PLAN_UPGRADE_REQUIRED\"},403)}}else{return c.json({error:\"Google Calendar requires a Pro or Ultimate plan\",code:\"PLAN_UPGRADE_REQUIRED\"},403)}if(!process.env.GOOGLE_CLIENT_ID||!process.env.GOOGLE_CLIENT_SECRET){return c.json({error:\"Google OAuth is not configured on this server\"},503)}const url=(0,import_google_oauth.getCalendarAuthUrl)(user.id);return c.redirect(url)});app.get(\"/calendar/callback\",async c=>{const code=c.req.query(\"code\");const userId=c.req.query(\"state\");const error=c.req.query(\"error\");if(error||!code||!userId){return c.redirect(`${WEB_URL}/schedule?gcal=error`)}try{const{tokens,googleUserId,email}=await(0,import_google_oauth.exchangeCode)(code);if(!tokens.access_token){return c.redirect(`${WEB_URL}/schedule?gcal=error`)}await(0,import_google_oauth.storeCalendarToken)(userId,tokens,googleUserId,email);(0,import_google_oauth.runFirstImport)(userId).catch(err=>console.error(\"[gcal] first import error:\",err));return c.redirect(`${WEB_URL}/schedule?gcal=connected`)}catch(err){console.error(\"[gcal] callback error:\",err);return c.redirect(`${WEB_URL}/schedule?gcal=error`)}});app.delete(\"/calendar/disconnect\",import_auth.requireAuth,async c=>{const user=c.get(\"user\");await(0,import_google_oauth.disconnectCalendar)(user.id);return c.json({ok:true})});app.post(\"/calendar/import\",import_auth.requireAuth,async c=>{const user=c.get(\"user\");const status=await(0,import_google_oauth.getCalendarStatus)(user.id);if(!status.connected){return c.json({error:\"Google Calendar not connected\"},400)}try{const today=new Date().toISOString().slice(0,10);const threeMonths=new Date;threeMonths.setMonth(threeMonths.getMonth()+3);const to=threeMonths.toISOString().slice(0,10);const count=await(0,import_google_oauth.importBusyTimes)(user.id,today,to);return c.json({ok:true,imported:count})}catch(err){console.error(\"[gcal] import error:\",err);return c.json({error:\"Import failed\"},500)}});var google_default=app;\n})()\n","warnings":[],"map":{"version":3,"mappings":";qqBAAA,wHASA,gBAAqB,gBACrB,uBAAmB,uBACnB,gBAAgD,iCAChD,cAAmB,oBACnB,IAAAA,WAA6B,uBAC7B,wBAQO,kCAEP,MAAM,IAAM,IAAI,iBAEhB,MAAM,QAAU,QAAQ,IAAI,SAAW,wBAKvC,IAAI,IAAI,mBAAoB,wBAAa,MAAO,GAAM,CACpD,MAAM,KAAO,EAAE,IAAI,MAAM,EACzB,MAAM,OAAS,QAAM,uCAAkB,KAAK,EAAE,EAC9C,OAAO,EAAE,KAAK,MAAM,CACtB,CAAC,EAKD,IAAI,IAAI,oBAAqB,wBAAa,MAAO,GAAM,CACrD,MAAM,KAAO,EAAE,IAAI,MAAM,EAGzB,KAAM,CAAC,MAAM,EAAI,MAAM,aAAG,OAAO,CAAE,OAAQ,iBAAM,MAAO,CAAC,EAAE,KAAK,gBAAK,EAAE,SAAM,uBAAG,iBAAM,GAAI,KAAK,EAAE,CAAC,EAClG,GAAI,QAAQ,OAAQ,CAClB,KAAM,CAAC,IAAI,EAAI,MAAM,aAAG,OAAO,CAAE,kBAAmB,iBAAM,iBAAkB,CAAC,EAAE,KAAK,gBAAK,EAAE,SAAM,uBAAG,iBAAM,GAAI,OAAO,MAAM,CAAC,EAC5H,GAAI,CAAC,MAAM,kBAAmB,CAC5B,OAAO,EAAE,KAAK,CAAE,MAAO,kDAAmD,KAAM,uBAAwB,EAAG,GAAG,CAChH,CACF,KAAO,CACL,OAAO,EAAE,KAAK,CAAE,MAAO,kDAAmD,KAAM,uBAAwB,EAAG,GAAG,CAChH,CAEA,GAAI,CAAC,QAAQ,IAAI,kBAAoB,CAAC,QAAQ,IAAI,qBAAsB,CACtE,OAAO,EAAE,KAAK,CAAE,MAAO,+CAAgD,EAAG,GAAG,CAC/E,CAEA,MAAM,OAAM,wCAAmB,KAAK,EAAE,EACtC,OAAO,EAAE,SAAS,GAAG,CACvB,CAAC,EAKD,IAAI,IAAI,qBAAsB,MAAO,GAAM,CACzC,MAAM,KAAO,EAAE,IAAI,MAAM,MAAM,EAC/B,MAAM,OAAS,EAAE,IAAI,MAAM,OAAO,EAClC,MAAM,MAAQ,EAAE,IAAI,MAAM,OAAO,EAEjC,GAAI,OAAS,CAAC,MAAQ,CAAC,OAAQ,CAC7B,OAAO,EAAE,SAAS,GAAG,OAAO,sBAAsB,CACpD,CAEA,GAAI,CACF,KAAM,CAAE,OAAQ,aAAc,KAAM,EAAI,QAAM,kCAAa,IAAI,EAE/D,GAAI,CAAC,OAAO,aAAc,CACxB,OAAO,EAAE,SAAS,GAAG,OAAO,sBAAsB,CACpD,CAEA,QAAM,wCAAmB,OAAQ,OAAQ,aAAc,KAAK,KAG5D,oCAAe,MAAM,EAAE,MAAO,KAAQ,QAAQ,MAAM,6BAA8B,GAAG,CAAC,EAEtF,OAAO,EAAE,SAAS,GAAG,OAAO,0BAA0B,CACxD,OAAS,IAAK,CACZ,QAAQ,MAAM,yBAA0B,GAAG,EAC3C,OAAO,EAAE,SAAS,GAAG,OAAO,sBAAsB,CACpD,CACF,CAAC,EAKD,IAAI,OAAO,uBAAwB,wBAAa,MAAO,GAAM,CAC3D,MAAM,KAAO,EAAE,IAAI,MAAM,EACzB,QAAM,wCAAmB,KAAK,EAAE,EAChC,OAAO,EAAE,KAAK,CAAE,GAAI,IAAK,CAAC,CAC5B,CAAC,EAMD,IAAI,KAAK,mBAAoB,wBAAa,MAAO,GAAM,CACrD,MAAM,KAAO,EAAE,IAAI,MAAM,EAEzB,MAAM,OAAS,QAAM,uCAAkB,KAAK,EAAE,EAC9C,GAAI,CAAC,OAAO,UAAW,CACrB,OAAO,EAAE,KAAK,CAAE,MAAO,+BAAgC,EAAG,GAAG,CAC/D,CAEA,GAAI,CACF,MAAM,MAAQ,IAAI,KAAK,EAAE,YAAY,EAAE,MAAM,EAAG,EAAE,EAClD,MAAM,YAAc,IAAI,KACxB,YAAY,SAAS,YAAY,SAAS,EAAI,CAAC,EAC/C,MAAM,GAAK,YAAY,YAAY,EAAE,MAAM,EAAG,EAAE,EAEhD,MAAM,MAAQ,QAAM,qCAAgB,KAAK,GAAI,MAAO,EAAE,EACtD,OAAO,EAAE,KAAK,CAAE,GAAI,KAAM,SAAU,KAAM,CAAC,CAC7C,OAAS,IAAK,CACZ,QAAQ,MAAM,uBAAwB,GAAG,EACzC,OAAO,EAAE,KAAK,CAAE,MAAO,eAAgB,EAAG,GAAG,CAC/C,CACF,CAAC,EAED,IAAO,eAAQ","names":["import_db"],"ignoreList":[],"sources":["/opt/canhelp/apps/api/src/routes/google.ts"],"sourcesContent":[null]}}