import ky from "ky/umd";
import Stripe from "stripe";
import { StatusCodes } from "http-status-codes";

const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);

export default async (req, res) => {
  try {
    const authorization = req.headers.authorization; // authorization header from request
    const { stripeCustomerId } = await ky("http://accounts:3000/user", { headers: { authorization } }).json();
    const stripeCustomer = await stripe.customers.retrieve(stripeCustomerId, { expand: ["subscriptions"] });
    const { subscriptions } = stripeCustomer;

    // todo: find a better way to get current subscription
    if (subscriptions.total_count) {
      return res.json(subscriptions.data[0]);
    }

    res.status(StatusCodes.NO_CONTENT).end();
  } catch ({ message }) {
    res.status(StatusCodes.BAD_REQUEST).json({ error: { message } });
  }
};
