summaryrefslogtreecommitdiff
path: root/webapp/app/api/twilio
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/app/api/twilio')
-rw-r--r--webapp/app/api/twilio/numbers/route.ts31
-rw-r--r--webapp/app/api/twilio/route.ts6
-rw-r--r--webapp/app/api/twilio/webhook-local/route.ts3
3 files changed, 40 insertions, 0 deletions
diff --git a/webapp/app/api/twilio/numbers/route.ts b/webapp/app/api/twilio/numbers/route.ts
new file mode 100644
index 0000000..53c13c8
--- /dev/null
+++ b/webapp/app/api/twilio/numbers/route.ts
@@ -0,0 +1,31 @@
+import twilioClient from "@/lib/twilio";
+
+export async function GET() {
+ if (!twilioClient) {
+ return Response.json(
+ { error: "Twilio client not initialized" },
+ { status: 500 }
+ );
+ }
+
+ const incomingPhoneNumbers = await twilioClient.incomingPhoneNumbers.list({
+ limit: 20,
+ });
+ return Response.json(incomingPhoneNumbers);
+}
+
+export async function POST(req: Request) {
+ if (!twilioClient) {
+ return Response.json(
+ { error: "Twilio client not initialized" },
+ { status: 500 }
+ );
+ }
+
+ const { phoneNumberSid, voiceUrl } = await req.json();
+ const incomingPhoneNumber = await twilioClient
+ .incomingPhoneNumbers(phoneNumberSid)
+ .update({ voiceUrl });
+
+ return Response.json(incomingPhoneNumber);
+}
diff --git a/webapp/app/api/twilio/route.ts b/webapp/app/api/twilio/route.ts
new file mode 100644
index 0000000..6313295
--- /dev/null
+++ b/webapp/app/api/twilio/route.ts
@@ -0,0 +1,6 @@
+export async function GET() {
+ const credentialsSet = Boolean(
+ process.env.TWILIO_ACCOUNT_SID && process.env.TWILIO_AUTH_TOKEN
+ );
+ return Response.json({ credentialsSet });
+}
diff --git a/webapp/app/api/twilio/webhook-local/route.ts b/webapp/app/api/twilio/webhook-local/route.ts
new file mode 100644
index 0000000..2dc5420
--- /dev/null
+++ b/webapp/app/api/twilio/webhook-local/route.ts
@@ -0,0 +1,3 @@
+export async function GET() {
+ return Response.json({ webhookUrl: process.env.TWILIO_WEBHOOK_URL });
+}