bug fix + use id instead of username for lookup

This commit is contained in:
Daniel 2023-07-19 12:14:52 -04:00
parent 01a8579158
commit 35bece5f49
13 changed files with 24 additions and 29 deletions

View File

@ -24,6 +24,8 @@ export default function UserModal({
}: Props) { }: Props) {
const [user, setUser] = useState<AccountSettings>(activeUser); const [user, setUser] = useState<AccountSettings>(activeUser);
console.log(activeUser);
return ( return (
<div className={className}> <div className={className}>
<Tab.Group defaultIndex={defaultIndex}> <Tab.Group defaultIndex={defaultIndex}>

View File

@ -17,7 +17,7 @@ export default function useInitialData() {
setCollections(); setCollections();
setTags(); setTags();
// setLinks(); // setLinks();
setAccount(data.user.username as string); setAccount(data.user.id);
} }
}, [status]); }, [status]);
} }

View File

@ -42,7 +42,7 @@ export default async function postCollection(
color: collection.color, color: collection.color,
members: { members: {
create: collection.members.map((e) => ({ create: collection.members.map((e) => ({
user: { connect: { username: e.user.username.toLowerCase() } }, user: { connect: { id: e.user.id } },
canCreate: e.canCreate, canCreate: e.canCreate,
canUpdate: e.canUpdate, canUpdate: e.canUpdate,
canDelete: e.canDelete, canDelete: e.canDelete,

View File

@ -43,7 +43,7 @@ export default async function updateCollection(
isPublic: collection.isPublic, isPublic: collection.isPublic,
members: { members: {
create: collection.members.map((e) => ({ create: collection.members.map((e) => ({
user: { connect: { username: e.user.username.toLowerCase() } }, user: { connect: { id: e.user.id } },
canCreate: e.canCreate, canCreate: e.canCreate,
canUpdate: e.canUpdate, canUpdate: e.canUpdate,
canDelete: e.canDelete, canDelete: e.canDelete,

View File

@ -29,16 +29,16 @@ export default async function getUser({
return { response: "This profile is private.", status: 401 }; return { response: "This profile is private.", status: 401 };
} }
const { password, ...unsensitiveInfo } = user; const { password, ...lessSensitiveInfo } = user;
const data = isSelf const data = isSelf
? // If user is requesting its own data ? // If user is requesting its own data
unsensitiveInfo lessSensitiveInfo
: { : {
// If user is requesting someone elses data // If user is requesting someone elses data
id: unsensitiveInfo.id, id: lessSensitiveInfo.id,
name: unsensitiveInfo.name, name: lessSensitiveInfo.name,
username: unsensitiveInfo.username, username: lessSensitiveInfo.username,
}; };
return { response: data || null, status: 200 }; return { response: data || null, status: 200 };

View File

@ -4,7 +4,6 @@ import checkSubscription from "./checkSubscription";
export default async function paymentCheckout( export default async function paymentCheckout(
stripeSecretKey: string, stripeSecretKey: string,
email: string, email: string,
action: "register" | "login",
priceId: string priceId: string
) { ) {
const stripe = new Stripe(stripeSecretKey, { const stripe = new Stripe(stripeSecretKey, {

View File

@ -110,7 +110,6 @@ export const authOptions: AuthOptions = {
PRICE_ID && PRICE_ID &&
(trigger || subscriptionIsTimesUp || !token.isSubscriber) (trigger || subscriptionIsTimesUp || !token.isSubscriber)
) { ) {
console.log("EXECUTED!!!");
const subscription = await checkSubscription( const subscription = await checkSubscription(
STRIPE_SECRET_KEY, STRIPE_SECRET_KEY,
token.email as string, token.email as string,

View File

@ -8,10 +8,10 @@ export default async function Index(req: NextApiRequest, res: NextApiResponse) {
const session = await getServerSession(req, res, authOptions); const session = await getServerSession(req, res, authOptions);
const userId = session?.user.id; const userId = session?.user.id;
const userName = session?.user.username?.toLowerCase(); const username = session?.user.username?.toLowerCase();
const queryId = Number(req.query.id); const queryId = Number(req.query.id);
if (!userId || !userName) if (!userId || !username)
return res return res
.setHeader("Content-Type", "text/plain") .setHeader("Content-Type", "text/plain")
.status(401) .status(401)
@ -37,7 +37,7 @@ export default async function Index(req: NextApiRequest, res: NextApiResponse) {
if ( if (
targetUser?.isPrivate && targetUser?.isPrivate &&
!targetUser.whitelistedUsers.includes(userName) !targetUser.whitelistedUsers.includes(username)
) { ) {
return res return res
.setHeader("Content-Type", "text/plain") .setHeader("Content-Type", "text/plain")

View File

@ -8,7 +8,7 @@ export default async function users(req: NextApiRequest, res: NextApiResponse) {
const PRICE_ID = process.env.PRICE_ID; const PRICE_ID = process.env.PRICE_ID;
const session = await getServerSession(req, res, authOptions); const session = await getServerSession(req, res, authOptions);
if (!session?.user?.username) if (!session?.user?.id)
return res.status(401).json({ response: "You must be logged in." }); return res.status(401).json({ response: "You must be logged in." });
else if (!STRIPE_SECRET_KEY || !PRICE_ID) { else if (!STRIPE_SECRET_KEY || !PRICE_ID) {
return res.status(400).json({ response: "Payment is disabled." }); return res.status(400).json({ response: "Payment is disabled." });
@ -18,7 +18,6 @@ export default async function users(req: NextApiRequest, res: NextApiResponse) {
const users = await paymentCheckout( const users = await paymentCheckout(
STRIPE_SECRET_KEY, STRIPE_SECRET_KEY,
session?.user.email, session?.user.email,
"register",
PRICE_ID PRICE_ID
); );
return res.status(users.status).json({ response: users.response }); return res.status(users.status).json({ response: users.response });

View File

@ -12,7 +12,7 @@ export default async function collections(
) { ) {
const session = await getServerSession(req, res, authOptions); const session = await getServerSession(req, res, authOptions);
if (!session?.user?.username) { if (!session?.user?.id) {
return res.status(401).json({ response: "You must be logged in." }); return res.status(401).json({ response: "You must be logged in." });
} else if (session?.user?.isSubscriber === false) } else if (session?.user?.isSubscriber === false)
res.status(401).json({ res.status(401).json({

View File

@ -9,7 +9,7 @@ import updateLink from "@/lib/api/controllers/links/updateLink";
export default async function links(req: NextApiRequest, res: NextApiResponse) { export default async function links(req: NextApiRequest, res: NextApiResponse) {
const session = await getServerSession(req, res, authOptions); const session = await getServerSession(req, res, authOptions);
if (!session?.user?.username) { if (!session?.user?.id) {
return res.status(401).json({ response: "You must be logged in." }); return res.status(401).json({ response: "You must be logged in." });
} else if (session?.user?.isSubscriber === false) } else if (session?.user?.isSubscriber === false)
res.status(401).json({ res.status(401).json({

View File

@ -7,7 +7,7 @@ import updateUser from "@/lib/api/controllers/users/updateUser";
export default async function users(req: NextApiRequest, res: NextApiResponse) { export default async function users(req: NextApiRequest, res: NextApiResponse) {
const session = await getServerSession(req, res, authOptions); const session = await getServerSession(req, res, authOptions);
if (!session?.user.username) { if (!session?.user.id) {
return res.status(401).json({ response: "You must be logged in." }); return res.status(401).json({ response: "You must be logged in." });
} else if (session?.user?.isSubscriber === false) } else if (session?.user?.isSubscriber === false)
res.status(401).json({ res.status(401).json({
@ -17,7 +17,10 @@ export default async function users(req: NextApiRequest, res: NextApiResponse) {
const lookupUsername = (req.query.username as string) || undefined; const lookupUsername = (req.query.username as string) || undefined;
const lookupId = Number(req.query.id) || undefined; const lookupId = Number(req.query.id) || undefined;
const isSelf = session.user.username === lookupUsername ? true : false; const isSelf =
session.user.username === lookupUsername || session.user.id === lookupId
? true
: false;
if (req.method === "GET") { if (req.method === "GET") {
const users = await getUsers({ const users = await getUsers({
@ -34,10 +37,3 @@ export default async function users(req: NextApiRequest, res: NextApiResponse) {
return res.status(updated.status).json({ response: updated.response }); return res.status(updated.status).json({ response: updated.response });
} }
} }
// {
// lookupUsername,
// lookupId,
// },
// isSelf,
// session.user.username

View File

@ -8,14 +8,14 @@ type ResponseObject = {
type AccountStore = { type AccountStore = {
account: AccountSettings; account: AccountSettings;
setAccount: (username: string) => void; setAccount: (id: number) => void;
updateAccount: (user: AccountSettings) => Promise<ResponseObject>; updateAccount: (user: AccountSettings) => Promise<ResponseObject>;
}; };
const useAccountStore = create<AccountStore>()((set) => ({ const useAccountStore = create<AccountStore>()((set) => ({
account: {} as AccountSettings, account: {} as AccountSettings,
setAccount: async (username) => { setAccount: async (id) => {
const response = await fetch(`/api/routes/users?username=${username}`); const response = await fetch(`/api/routes/users?id=${id}`);
const data = await response.json(); const data = await response.json();