remove current phone number from session

This commit is contained in:
m5r
2022-06-11 02:45:07 +02:00
parent 3ddd0d73ea
commit 836b1d8d1b
9 changed files with 47 additions and 48 deletions

View File

@ -1,7 +1,7 @@
import type { LoaderFunction } from "@remix-run/node";
import { json } from "superjson-remix";
import { parsePhoneNumber } from "awesome-phonenumber";
import { type Message, Prisma } from "@prisma/client";
import { type Message, type PhoneNumber, Prisma } from "@prisma/client";
import db from "~/utils/db.server";
import { requireLoggedIn } from "~/utils/auth.server";
@ -15,6 +15,7 @@ type ConversationType = {
export type ConversationLoaderData = {
conversation: ConversationType;
currentPhoneNumber: Pick<PhoneNumber, "id" | "number">;
};
const loader: LoaderFunction = async ({ request, params }) => {
@ -24,10 +25,26 @@ const loader: LoaderFunction = async ({ request, params }) => {
}
const twilioAccountSid = twilio.accountSid;
const currentPhoneNumber = await db.phoneNumber.findUnique({
where: {
twilioAccountSid_isCurrent: {
twilioAccountSid,
isCurrent: true,
},
},
select: {
id: true,
number: true,
},
});
if (!currentPhoneNumber) {
return redirect("/messages");
}
const recipient = decodeURIComponent(params.recipient ?? "");
const conversation = await getConversation(recipient);
return json<ConversationLoaderData>({ conversation });
return json<ConversationLoaderData>({ conversation, currentPhoneNumber });
async function getConversation(recipient: string): Promise<ConversationType> {
const phoneNumber = await db.phoneNumber.findUnique({

View File

@ -19,12 +19,10 @@ type Conversation = {
};
const loader: LoaderFunction = async ({ request }) => {
const sessionData = await requireLoggedIn(request);
const phoneNumber =
sessionData.phoneNumber &&
(await db.phoneNumber.findUnique({
where: { id: sessionData.phoneNumber.id },
}));
const { twilio } = await requireLoggedIn(request);
const phoneNumber = await db.phoneNumber.findUnique({
where: { twilioAccountSid_isCurrent: { twilioAccountSid: twilio?.accountSid ?? "", isCurrent: true } },
});
return json<MessagesLoaderData>({
hasPhoneNumber: Boolean(phoneNumber),
isFetchingMessages: phoneNumber?.isFetchingMessages ?? null,