2024-05-07 15:29:27 -03:00
|
|
|
import { Request } from "express";
|
|
|
|
|
import { supabase_service } from "../supabase";
|
2024-11-07 20:57:33 +01:00
|
|
|
import { logger } from "../../../src/lib/logger";
|
2024-05-07 15:29:27 -03:00
|
|
|
|
|
|
|
|
export async function createIdempotencyKey(
|
|
|
|
|
req: Request,
|
|
|
|
|
): Promise<string> {
|
|
|
|
|
const idempotencyKey = req.headers['x-idempotency-key'] as string;
|
|
|
|
|
if (!idempotencyKey) {
|
|
|
|
|
throw new Error("No idempotency key provided in the request headers.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const { data, error } = await supabase_service
|
|
|
|
|
.from("idempotency_keys")
|
|
|
|
|
.insert({ key: idempotencyKey });
|
|
|
|
|
|
|
|
|
|
if (error) {
|
2024-11-07 20:57:33 +01:00
|
|
|
logger.error(`Failed to create idempotency key: ${error}`);
|
2024-05-07 15:29:27 -03:00
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return idempotencyKey;
|
|
|
|
|
}
|