69 lines
2.4 KiB
TypeScript
69 lines
2.4 KiB
TypeScript
|
|
import { serve } from 'https://deno.land/std@0.168.0/http/server.ts'
|
|
import { corsHeaders } from '../_shared/cors.ts'
|
|
import { createClient } from 'https://esm.sh/@supabase/supabase-js@2'
|
|
|
|
serve(async (req) => {
|
|
// Handle CORS
|
|
if (req.method === 'OPTIONS') {
|
|
return new Response('ok', { headers: corsHeaders })
|
|
}
|
|
if (req.method === 'GET') {
|
|
return new Response('ok', { headers: corsHeaders })
|
|
}
|
|
|
|
|
|
try {
|
|
const { action, selectedService, selectedCountry } = await req.json()
|
|
|
|
const smsActivateApiKey = Deno.env.get('SMS_ACTIVATE_API_KEY')
|
|
|
|
if (!smsActivateApiKey) {
|
|
throw new Error('Missing platform credentials')
|
|
}
|
|
if(action != "getActiveActivations" && action != "getNumber"){
|
|
throw new Error('Invalid action')
|
|
}
|
|
if(action === "getNumber" && (!selectedService || !selectedCountry)){
|
|
throw new Error('Missing required fields')
|
|
}
|
|
|
|
let apiResponse;
|
|
const myHeaders = new Headers();
|
|
// myHeaders.append("Cookie", "__cf_bm=ZwMogfNq713s0IM1QbuvaGuJQK0rxRP8AVLa.yU0qYQ-1741017601-1.0.1.1-5KsvD93DDrImkQ.Inrh49z9A_TC_O44Tss_PIAnyp.x6Qfip.qoVL1pWB.MYalVT0oDPalmlcTnleNWGxVPUnGWkqig9lCl6WC.cZPhAxVg");
|
|
|
|
const requestOptions = {
|
|
method: "GET",
|
|
headers: myHeaders,
|
|
redirect: "follow"
|
|
};
|
|
switch (action) {
|
|
case "getActiveActivations":
|
|
await fetch(`https://api.sms-activate.ae/stubs/handler_api.php?api_key=${smsActivateApiKey}&action=getActiveActivations`, requestOptions)
|
|
.then((response) => response.text())
|
|
.then((result) => apiResponse = result)
|
|
.catch((error) => console.error(error));
|
|
break;
|
|
|
|
case "getNumber":
|
|
const apiUrl = `https://api.sms-activate.ae/stubs/handler_api.php?api_key=${smsActivateApiKey}&action=getNumber&service=${selectedService}&operator=any&country=${selectedCountry}&maxPrice=0.2250`;
|
|
await fetch(apiUrl, requestOptions)
|
|
.then((response) => response.text())
|
|
.then((result) => (apiResponse = result))
|
|
.catch((error) => console.error(error));
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return new Response(apiResponse, {
|
|
headers: { ...corsHeaders, 'Content-Type': 'application/json' },
|
|
status: 200,
|
|
})
|
|
} catch (error) {
|
|
return new Response(JSON.stringify({ error: error.message }), {
|
|
headers: { ...corsHeaders, 'Content-Type': 'application/json' },
|
|
status: 400,
|
|
})
|
|
}
|
|
})
|