Skip to content

Commit

Permalink
feat: create get_funkit_stripe_checkout_status endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
EjembiEmmanuel committed Oct 6, 2024
1 parent dd416d1 commit 1119b17
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 1 deletion.
4 changes: 3 additions & 1 deletion apps/data-backend/src/router.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import transactionsRoute from "./routes/indexer/transactions";
import allTransactionsRoute from "./routes/indexer/all-transactions";
import createFunkitStripeCheckout from "./routes/funkit/create_funkit_stripe_checkout";
import getFunkitStripeCheckoutQuote from "./routes/funkit/get_funkit_stripe_checkout_quote";
import getFunkitStripeCheckoutStatus from "./routes/funkit/get_funkit_stripe_checkout_status";

function declareRoutes(fastify: FastifyInstance) {
fastify.register(buyCoinRoute);
Expand All @@ -19,9 +20,10 @@ function declareRoutes(fastify: FastifyInstance) {
fastify.register(holdingsRoute);
fastify.register(tokenStatsRoute);
fastify.register(transactionsRoute);
fastify.register(allTransactionsRoute);
fastify.register(createFunkitStripeCheckout);
fastify.register(getFunkitStripeCheckoutQuote);
fastify.register(allTransactionsRoute);
fastify.register(getFunkitStripeCheckoutStatus);
}

export default declareRoutes;
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import { getCheckoutByDepositAddress } from "@funkit/api-base";
import type { FastifyInstance, RouteOptions } from "fastify";

const FUNKIT_API_KEY = process.env.FUNKIT_API_KEY || "";

async function getFunkitStripeCheckoutStatus(
fastify: FastifyInstance,
_options: RouteOptions
) {
fastify.get(
"/get-funkit-stripe-checkout-status",

async (request, reply) => {
const { funkitDepositAddress } = request.query as {
funkitDepositAddress: string;
};

if (!funkitDepositAddress) {
return reply
.status(400)
.send({ message: "funkitDepositAddress is required." });
}

try {
const checkoutItem = await getCheckoutByDepositAddress({
depositAddress: funkitDepositAddress as `0x${string}`,
apiKey: FUNKIT_API_KEY
});
if (!checkoutItem || !checkoutItem?.depositAddr) {
return reply
.status(500)
.send({ message: "Failed to get a funkit checkout." });
}
return reply.send({
state: checkoutItem.state
});
} catch (error: any) {
if (error?.message?.includes("InvalidParameterError")) {
return reply
.status(500)
.send({ message: "Failed to get a funkit checkout." });
}
return reply.status(500).send({ message: "Internal server error" });
}
}
);
}

export default getFunkitStripeCheckoutStatus;

0 comments on commit 1119b17

Please sign in to comment.