Nishil Faldu
Nishil Faldu
CCConvex Community
Created by Nishil Faldu on 7/13/2024 in #support-community
.order vs manual sorting using _creationTime
so I am getting the expected results using manual sorting using _creationTime and not using .order("desc")? any clue why?
2 replies
CCConvex Community
Created by Nishil Faldu on 4/1/2024 in #support-community
Lost Typings on the client side (Next + Convex Project)
No description
17 replies
CCConvex Community
Created by Nishil Faldu on 3/20/2024 in #support-community
Action, Internal, Query and Mutation
export const storeStripeCustomerId = action({
args: {},
handler: async ctx => {
const stripe = new Stripe(
process.env.STRIPE_SECRET_KEY! ?? "",
{
apiVersion: "2023-10-16",
typescript: true,
}
);

const user = await ctx.runQuery(internal.users.getUserInternalQuery);
if (!user) {
throw new Error("User not found");
}
console.log("bla bla bla run now");
console.log(user, "user");

if(!user.stripeId) {
const customer = await stripe.customers.create({
email: user.email,
name: user.firstName + " " + user.lastName,
});

console.log("let me create one");

// await ctx.db.patch(user._id, {
// stripeId: customer.id,
// });
const stripeId : string
= await ctx.runMutation(internal.users.storeStripeId, { userId: user._id, stripeId: customer.id });

return stripeId;
}

return user.stripeId;
},
});
export const storeStripeCustomerId = action({
args: {},
handler: async ctx => {
const stripe = new Stripe(
process.env.STRIPE_SECRET_KEY! ?? "",
{
apiVersion: "2023-10-16",
typescript: true,
}
);

const user = await ctx.runQuery(internal.users.getUserInternalQuery);
if (!user) {
throw new Error("User not found");
}
console.log("bla bla bla run now");
console.log(user, "user");

if(!user.stripeId) {
const customer = await stripe.customers.create({
email: user.email,
name: user.firstName + " " + user.lastName,
});

console.log("let me create one");

// await ctx.db.patch(user._id, {
// stripeId: customer.id,
// });
const stripeId : string
= await ctx.runMutation(internal.users.storeStripeId, { userId: user._id, stripeId: customer.id });

return stripeId;
}

return user.stripeId;
},
});
the hook (for some reason), given below runs twice and in the process it generates 2 stripe customers which should ideally be impossible considering I check for if(!user.stripeId) this which surprisingly is true both the times which means stripeId is "". Surprisingly when I check the logs on convex dashboard, the log statement runMutation prints first and before the log statement of storeStripeCustomerId. Would really appreciate someone's help here as I am very confused!
4 replies