Files
firecrawl/apps/api/src/services/webhook.ts
T

57 lines
1.8 KiB
TypeScript
Raw Normal View History

2024-07-25 09:48:06 -03:00
import { Logger } from "../../src/lib/logger";
2024-04-15 17:01:47 -04:00
import { supabase_service } from "./supabase";
2024-06-12 15:38:41 -03:00
export const callWebhook = async (teamId: string, jobId: string,data: any) => {
2024-04-20 19:37:45 -07:00
try {
2024-07-07 15:11:45 +02:00
const selfHostedUrl = process.env.SELF_HOSTED_WEBHOOK_URL?.replace("{{JOB_ID}}", jobId);
2024-06-10 17:03:10 -07:00
const useDbAuthentication = process.env.USE_DB_AUTHENTICATION === 'true';
2024-06-05 10:38:05 -07:00
let webhookUrl = selfHostedUrl;
2024-06-10 17:03:10 -07:00
// Only fetch the webhook URL from the database if the self-hosted webhook URL is not set
// and the USE_DB_AUTHENTICATION environment variable is set to true
if (!selfHostedUrl && useDbAuthentication) {
2024-06-05 10:38:05 -07:00
const { data: webhooksData, error } = await supabase_service
.from("webhooks")
.select("url")
.eq("team_id", teamId)
.limit(1);
if (error) {
2024-07-25 09:48:06 -03:00
Logger.error(`Error fetching webhook URL for team ID: ${teamId}, error: ${error.message}`);
2024-06-05 10:38:05 -07:00
return null;
}
if (!webhooksData || webhooksData.length === 0) {
return null;
}
webhookUrl = webhooksData[0].url;
}
2024-06-05 10:38:05 -07:00
let dataToSend = [];
if (data.result.links && data.result.links.length !== 0) {
for (let i = 0; i < data.result.links.length; i++) {
dataToSend.push({
content: data.result.links[i].content.content,
markdown: data.result.links[i].content.markdown,
metadata: data.result.links[i].content.metadata,
});
}
2024-04-15 17:01:47 -04:00
}
2024-06-05 10:38:05 -07:00
await fetch(webhookUrl, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
success: data.success,
2024-06-12 15:38:41 -03:00
jobId: jobId,
2024-06-05 10:38:05 -07:00
data: dataToSend,
error: data.error || undefined,
}),
2024-04-20 19:37:45 -07:00
});
} catch (error) {
2024-07-25 10:00:50 -03:00
Logger.debug(`Error sending webhook for team ID: ${teamId}, error: ${error.message}`);
2024-04-20 19:37:45 -07:00
}
};