list twilio phone numbers

This commit is contained in:
m5r
2022-05-15 01:29:51 +02:00
parent a435cb5b75
commit 022670543f
10 changed files with 458 additions and 20 deletions

View File

@ -9,7 +9,7 @@ import authenticator from "./authenticator.server";
import { AuthenticationError } from "./errors";
import { commitSession, destroySession, getSession } from "./session.server";
export type SessionOrganization = Pick<Organization, "id" | "twilioAccountSid"> & { role: MembershipRole };
export type SessionOrganization = Pick<Organization, "id" | "twilioSubAccountSid" | "twilioAccountSid"> & { role: MembershipRole };
export type SessionUser = Omit<User, "hashedPassword"> & {
organizations: SessionOrganization[];
};
@ -39,7 +39,7 @@ export async function login({ form }: FormStrategyVerifyParams): Promise<Session
memberships: {
select: {
organization: {
select: { id: true, twilioAccountSid: true },
select: { id: true, twilioSubAccountSid: true, twilioAccountSid: true },
},
role: true,
},
@ -151,7 +151,7 @@ export async function refreshSessionData(request: Request) {
memberships: {
select: {
organization: {
select: { id: true, twilioAccountSid: true },
select: { id: true, twilioSubAccountSid: true, twilioAccountSid: true },
},
role: true,
},

View File

@ -0,0 +1,16 @@
import twilio from "twilio";
import type { Organization } from "@prisma/client";
import serverConfig from "~/config/config.server";
type MinimalOrganization = Pick<Organization, "twilioSubAccountSid" | "twilioAccountSid">;
export default function getTwilioClient(organization: MinimalOrganization): twilio.Twilio {
if (!organization || !organization.twilioSubAccountSid || !organization.twilioAccountSid) {
throw new Error("unreachable");
}
return twilio(organization.twilioSubAccountSid, serverConfig.twilio.authToken, {
accountSid: organization.twilioAccountSid,
});
}