File: /var/www/quadcode.com/build/server/chunks/_server.ts-a1c33e06.js
import { d as d$1 } from './index-d9e8b680.js';
import { a as j, L as La } from './index3-8414fc92.js';
import { C, A as A$1 } from './WLogger-ddafd77a.js';
import { t } from './shared-server-c92518c6.js';
import { C as C$1, f as f$1 } from './ActiveCampaign-ca30327e.js';
import './index2-db879dd9.js';
import 'crypto';
import 'winston';
const N=e=>{if(C.log("info","[Recaptcha]: START",C$1({token:e})),!t?.PRIVATE_RECAPTCHA_SECRET){C.log("error","[Recaptcha]: END",{error:"PRIVATE_RECAPTCHA_SECRET: undefined"});return}const o={secret:t.PRIVATE_RECAPTCHA_SECRET,response:e};return fetch("https://www.google.com/recaptcha/api/siteverify",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(Object.entries(o)).toString()}).then(t=>t.json()).then(t=>({...t,error:u[t["error-codes"]?.[0]]})).catch(t=>t)},u={"missing-input-secret":"The secret parameter is missing.","invalid-input-secret":"The secret parameter is invalid or malformed.","missing-input-response":"The response parameter is missing.","invalid-input-response":"The response parameter is invalid or malformed.","bad-request":"The request is invalid or malformed.","timeout-or-duplicate ":"The response is no longer valid: either is too old or has been used previously."},g=e=>{const o={};return Object.values(e).length?(e.email===void 0||e.email===""?o.email=`*${La.get("Required field")}`:e.email.match(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)||(o.email=`*${La.get("Not valid email")}`),(e.name===void 0||e.name==="")&&(o.name=`*${La.get("Required field")}`),e.phone===void 0||e.phone===""?o.phone=`*${La.get("Required field")}`:e.phone.match(/^[\d\+][\d\(\)\ -]{4,14}\d$/)||(o.phone=`*${La.get("Not valid phone number")}`),(e.agreement===void 0||!e.agreement)&&(o.agreement=`*${La.get("Required field")}`)):(o.email=`*${La.get("Required field")}`,o.name=`*${La.get("Required field")}`,o.phone=`*${La.get("Required field")}`,o.agreement=`*${La.get("Required field")}`),o},T=e=>e===""||e===void 0?"":e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/`/g,"`"),s={LANDING_URL:"UF_CRM_1708364992",GCLID:"UF_CRM_1708366868784",LANG:"UF_CRM_1708365178",LANG_BY_BROWSER:"UF_CRM_1728917539511",BUSINESS_IDENTIFICATION:"UF_CRM_1709012311521",INITIAL_INVESTMENT:"UF_CRM_1708365367",REGION:"UF_CRM_1708366122",COUNTRY_CODE:"UF_CRM_1708366441792",UTM_CONTENT:"UF_CRM_1712249375",UTM_TERMS:"UF_CRM_1712249249",UTM_MEDIUM:"UF_CRM_1712248114",UTM_CAMPAIGN:"UF_CRM_1712248092",UTM_SOURCE:"UF_CRM_1712248129",ROISTAT_ID:"UF_CRM_1744804235"},f=[79,81,83,85,87,89],p=[47,49,51,53,55,57],A=[69,71,73,75,77],U=[{key:"landing_url",keyNew:s.LANDING_URL},{key:"gclid",keyNew:s.GCLID},{key:"language",keyNew:s.LANG},{key:"lang_by_browser",keyNew:s.LANG_BY_BROWSER},{key:"business_identification",keyNew:s.BUSINESS_IDENTIFICATION},{key:"price",keyNew:s.INITIAL_INVESTMENT},{key:"region",keyNew:s.REGION},{key:"country_code",keyNew:s.COUNTRY_CODE},{key:"utm_content",keyNew:s.UTM_CONTENT},{key:"utm_term",keyNew:s.UTM_TERMS},{key:"utm_medium",keyNew:s.UTM_MEDIUM},{key:"utm_campaign",keyNew:s.UTM_CAMPAIGN},{key:"utm_source",keyNew:s.UTM_SOURCE},{key:"roistatId",keyNew:s.ROISTAT_ID}],h=e=>{const t={TITLE:`New lead from ${e?.landing_url} from ${e.email}`,NAME:T(e.name),COMMENTS:T(e?.text)??null,PHONE:{VALUE:e.phone,VALUE_TYPE:"WORK"},EMAIL:{VALUE:e.email,VALUE_TYPE:"WORK"},UTM_CONTENT:T(e?.utm_content||"")??null,UTM_TERM:T(e?.utm_term||"")??null,UTM_MEDIUM:T(e?.utm_medium||"")??null,UTM_CAMPAIGN:T(e?.utm_campaign||"")??null,UTM_SOURCE:T(e?.utm_source||"")??null};return ["first_name","name","last_name","text","phone","email"].forEach(r=>{delete e[r];}),U.forEach(r=>{if(r.key in e){switch(r.key){case"business_identification":t[r.keyNew]=f[Number(e[r.key])];break;case"price":t[r.keyNew]=p[Number(e[r.key])];break;case"region":t[r.keyNew]=A[Number(e[r.key])];break;default:t[r.keyNew]=e[r.key];break}delete e[r.key];}}),Object.keys(e).length&&(t.SOURCE_DESCRIPTION=JSON.stringify(e)),t},d=e=>{const o={...e};if(C.log("info","[BITRIX24]: START",C$1(o)),!t?.PRIVATE_BITRIX24_HOST||!t?.PRIVATE_BITRIX24_USER_ID||!t?.PRIVATE_BITRIX24_TOKEN){C.log("error","[BITRIX24]: END",{error:"PRIVATE_BITRIX24_TOKEN or PRIVATE_BITRIX24_USER_ID or PRIVATE_BITRIX24_HOST: undefined"});return}const t$1=h(o),a=new URL(`${t.PRIVATE_BITRIX24_HOST}/rest/${t.PRIVATE_BITRIX24_USER_ID}/${t.PRIVATE_BITRIX24_TOKEN}/crm.lead.add.json`);return Object.keys(t$1).forEach(function(r){t$1[r]?.VALUE?a.searchParams.append(`fields[${r}][0][VALUE]`,t$1[r]?.VALUE):t$1[r]?.VALUE_TYPE?a.searchParams.append(`fields[${r}][0][VALUE_TYPE]`,t$1[r]?.VALUE_TYPE):a.searchParams.append(`fields[${r}]`,t$1[r]);}),fetch(a.href,{method:"GET"}).then(r=>r.json()).then(r=>("error"in r?C.log("error","[BITRIX24]: ADD LEAD END",{error:r}):C.log("info","[BITRIX24]: ADD LEAD END",{res:r}),r)).catch(r=>(C.log("error","[BITRIX24]: ADD LEAD END",{...r}),r))},D=async e=>{const{request:o}=e,t=await o.json();console.log(o),t.lang_by_browser=j.get(),C.log("info","[Limiter]: START",C$1(t));const a=await A$1.isLimited(e);if(a)return C.log("error","[Limiter]: END",{error:"429 Too Many Requests",isLimited:a}),d$1({error:`${La.get("Too Many Requests. Try again later")}`},{status:429});C.log("info","[Limiter]: END",{isLimited:a}),C.log("info","[Validation]: START",C$1(t));const r=g(t);if(Object.values(r).length)return C.log("error","[Validation]: END",{...r}),d$1({...r},{status:403});C.log("info","[Validation]: END",C$1(t));const E=await N(t.token);return E&&!E.success?(C.log("error","[Recaptcha]: END",{error:E.error,...C$1(t)}),d$1({token:E.error},{status:403})):(C.log("info","[Recaptcha]: END",C$1(t)),await d(t),await f$1(t),d$1({status:"ok"},{status:200}))};
export { D as POST };
//# sourceMappingURL=_server.ts-a1c33e06.js.map