12 implement twilio sms #37
4
src/lib/server/twilio/client.ts
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
import { TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN } from '$env/static/private';
|
||||
import twilio from 'twilio';
|
||||
|
||||
export const TwilioClient = twilio(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN);
|
||||
|
|
@ -1 +1 @@
|
|||
export * from './twilio.config';
|
||||
export * from './client';
|
||||
|
|
|
|||
|
|
@ -1,30 +0,0 @@
|
|||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
import { env } from '$env/dynamic/private';
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
import { PhoneRegex } from '$lib/regex';
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
import { logger } from '$lib/server/logger';
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
import { z } from 'zod';
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
export interface TwilioConfiguration {
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
twilio_account_sid: string;
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
twilio_auth_token: string;
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
twilio_phone_number: string;
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
}
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
export const TwilioConfig = (): TwilioConfiguration => {
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
const { success, data, error } = z
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
.object({
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
TWILIO_ACCOUNT_SID: z.string().min(1),
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
TWILIO_AUTH_TOKEN: z.string().min(1),
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
TWILIO_PHONE_NUMBER: z.string().regex(PhoneRegex),
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
})
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
.safeParse(env);
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
if (!success) {
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
logger.error(error.message);
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
}
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
return {
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
twilio_account_sid: data!.TWILIO_ACCOUNT_SID,
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
twilio_auth_token: data!.TWILIO_AUTH_TOKEN,
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
twilio_phone_number: data!.TWILIO_PHONE_NUMBER,
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
};
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
};
|
||||
|
Add a script instead + add it to Add a script instead + add it to `bun dev`
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
import { TWILIO_PHONE_NUMBER } from '$env/static/private';
|
||||
import { PhoneRegex } from '$lib/regex';
|
||||
import { logger } from '$lib/server/logger';
|
||||
import { TwilioConfig } from '$lib/server/twilio';
|
||||
import { TwilioClient } from '$lib/server/twilio';
|
||||
import { fail, type Actions } from '@sveltejs/kit';
|
||||
import twilio from 'twilio';
|
||||
import zod from 'zod';
|
||||
|
||||
export const actions = {
|
||||
|
|
@ -31,17 +31,11 @@ export const actions = {
|
|||
return fail(400, { error: 'invalid_message' });
|
||||
}
|
||||
|
||||
const twilioConfig = TwilioConfig();
|
||||
const twilioClient = twilio(
|
||||
twilioConfig.twilio_account_sid,
|
||||
twilioConfig.twilio_auth_token
|
||||
);
|
||||
|
||||
try {
|
||||
const result = await twilioClient.messages.create({
|
||||
const result = await TwilioClient.messages.create({
|
||||
to: phone,
|
||||
body: message,
|
||||
from: twilioConfig.twilio_phone_number,
|
||||
from: TWILIO_PHONE_NUMBER,
|
||||
});
|
||||
logger.debug(result);
|
||||
} catch (e) {
|
||||
|
|
|
|||
Add a script instead + add it to
bun dev