Get stripe subscription by uid

This commit is contained in:
Vins 2024-04-19 15:11:21 +02:00
parent 8254d33b35
commit d5ab1a2b2f
2 changed files with 21 additions and 49 deletions

View File

@ -42,7 +42,25 @@ export default class StripeController extends ApiController {
} }
} }
@Get("/api/v1/admin/stripe/:uid", [authHandler, ruleHandler]) @Get("/api/v1/admin/stripe/:uid")
protected async getStripeSubscriptionByUid(req: Request, response: Response) {
try {
const uid = req.params["uid"];
if (!uid) {
this.httpBadRequest(response, "No uid provided");
return;
}
const stripe_subscription = await this.stripeService.getStripeSubscriptionByUid(uid);
this.httpSuccess(response, stripe_subscription);
} catch (error) {
this.httpInternalError(response, error);
return;
}
}
@Get("/api/v1/admin/stripe/:uid/client-portal", [authHandler, ruleHandler])
protected async getClientPortalSession(req: Request, response: Response) { protected async getClientPortalSession(req: Request, response: Response) {
try { try {
const uid = req.params["uid"]; const uid = req.params["uid"];

View File

@ -38,54 +38,8 @@ export default class StripeService {
} }
public async createCheckoutSessionUpdate(uid: string, subscription: Subscription) { public async getStripeSubscriptionByUid(subscriptionId: string) {
return await this.client.subscriptions.retrieve(subscriptionId);
// return this.client.checkout.sessions.create({
// mode: "payment",
// payment_method_types: ["card", "paypal"],
// billing_address_collection: "auto",
// success_url: this.variables.APP_HOST + "/subscription/success",
// cancel_url: this.variables.APP_HOST + "/subscription/error",
// metadata: {
// subscription: JSON.stringify(subscription),
// },
// });
// const priceId =
// subscription.type === "STANDARD"
// ? this.variables.STRIPE_STANDARD_SUBSCRIPTION_PRICE_ID
// : this.variables.STRIPE_UNLIMITED_SUBSCRIPTION_PRICE_ID;
// return this.client.checkout.sessions.create({
// mode: "subscription",
// payment_method_types: ["card", "paypal"],
// billing_address_collection: "auto",
// line_items: [
// {
// price: priceId,
// quantity: subscription.type === "STANDARD" ? subscription.nb_seats : 1,
// },
// ],
// success_url: this.variables.APP_HOST + "/subscription/success",
// cancel_url: this.variables.APP_HOST + "/subscription/error",
// metadata: {
// subscription: JSON.stringify(subscription),
// },
// });
// const subscriptions = await this.client.subscriptions.retrieve(uid);
// const itemId = subscriptions.items.data[0]?.id;
// return await this.client.subscriptions.update(uid, {
// items: [
// {
// id: itemId,
// price: priceId,
// quantity: subscription.nb_seats,
// },
// ],
// });
} }
public async createClientPortalSession(subscriptionId: string) { public async createClientPortalSession(subscriptionId: string) {