62 lines
2.2 KiB
TypeScript
62 lines
2.2 KiB
TypeScript
// Follow this setup guide to integrate the Deno language server with your editor:
|
|
// https://deno.land/manual/getting_started/setup_your_environment
|
|
// This enables autocomplete, go to definition, etc.
|
|
|
|
// Setup type definitions for built-in Supabase Runtime APIs
|
|
import "jsr:@supabase/functions-js/edge-runtime.d.ts"
|
|
import { corsHeaders } from '../_shared/cors.ts'
|
|
import { createClient } from 'https://esm.sh/@supabase/supabase-js@2'
|
|
|
|
|
|
console.log("Hello from Functions!")
|
|
|
|
Deno.serve(async (req) => {
|
|
const { name } = await req.json()
|
|
const data = {
|
|
message: `Hello ${name}!`,
|
|
}
|
|
|
|
try {
|
|
const twilioAccountSid = Deno.env.get('TWILIO_ACCOUNT_SID')
|
|
const twilioAuthToken = Deno.env.get('TWILIO_AUTH_TOKEN')
|
|
const twilioPhoneNumber = Deno.env.get('TWILIO_PHONE_NUMBER')
|
|
|
|
if (!twilioAccountSid || !twilioAuthToken || !twilioPhoneNumber) {
|
|
throw new Error('Missing Twilio credentials')
|
|
}
|
|
console.log("env", twilioAccountSid, twilioAuthToken)
|
|
|
|
const twilioUrl = `https://api.twilio.com/2010-04-01/Accounts/${twilioAccountSid}/Messages.json?PageSize=20`
|
|
const response = await fetch(twilioUrl, {
|
|
method: 'GET',
|
|
headers: {
|
|
'Content-Type': 'application/x-www-form-urlencoded',
|
|
Authorization: `Basic ${btoa(`${twilioAccountSid}:${twilioAuthToken}`)}`,
|
|
}
|
|
})
|
|
|
|
const result = await response.json()
|
|
return new Response(JSON.stringify(result), {
|
|
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,
|
|
})
|
|
}
|
|
})
|
|
|
|
/* To invoke locally:
|
|
|
|
1. Run `supabase start` (see: https://supabase.com/docs/reference/cli/supabase-start)
|
|
2. Make an HTTP request:
|
|
|
|
curl -i --location --request POST 'http://127.0.0.1:54321/functions/v1/get-messages' \
|
|
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6ImFub24iLCJleHAiOjE5ODM4MTI5OTZ9.CRXP1A7WOeoJeXxjNni43kdQwgnWNReilDMblYTn_I0' \
|
|
--header 'Content-Type: application/json' \
|
|
--data '{"name":"Functions"}'
|
|
|
|
*/
|