bug fix + use id instead of username for lookup
This commit is contained in:
parent
01a8579158
commit
35bece5f49
|
@ -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}>
|
||||||
|
|
|
@ -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]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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 };
|
||||||
|
|
|
@ -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, {
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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")
|
||||||
|
|
|
@ -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 });
|
||||||
|
|
|
@ -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({
|
||||||
|
|
|
@ -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({
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -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();
|
||||||
|
|
||||||
|
|
Ŝarĝante…
Reference in New Issue