2024-06-26 18:23:28 -03:00
|
|
|
import { supabase_service } from "../services/supabase";
|
2024-08-30 14:52:59 -03:00
|
|
|
import { Logger } from "./logger";
|
|
|
|
|
import * as Sentry from "@sentry/node";
|
2024-06-26 18:23:28 -03:00
|
|
|
|
2024-09-10 08:51:58 +02:00
|
|
|
/**
|
|
|
|
|
* Get a single firecrawl_job by ID
|
|
|
|
|
* @param jobId ID of Job
|
|
|
|
|
* @returns {any | null} Job
|
|
|
|
|
*/
|
2024-06-26 18:23:28 -03:00
|
|
|
export const supabaseGetJobById = async (jobId: string) => {
|
|
|
|
|
const { data, error } = await supabase_service
|
2024-08-30 14:52:59 -03:00
|
|
|
.from("firecrawl_jobs")
|
|
|
|
|
.select("*")
|
|
|
|
|
.eq("job_id", jobId)
|
2024-06-26 18:23:28 -03:00
|
|
|
.single();
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!data) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return data;
|
2024-08-30 14:52:59 -03:00
|
|
|
};
|
2024-08-16 23:39:39 +02:00
|
|
|
|
2024-09-10 08:51:58 +02:00
|
|
|
/**
|
|
|
|
|
* Get multiple firecrawl_jobs by ID. Use this if you're not requesting a lot (50+) of jobs at once.
|
|
|
|
|
* @param jobIds IDs of Jobs
|
|
|
|
|
* @returns {any[]} Jobs
|
|
|
|
|
*/
|
2024-08-16 23:39:39 +02:00
|
|
|
export const supabaseGetJobsById = async (jobIds: string[]) => {
|
2024-09-10 09:20:18 +02:00
|
|
|
const { data, error } = await supabase_service
|
|
|
|
|
.from("firecrawl_jobs")
|
|
|
|
|
.select()
|
|
|
|
|
.in("job_id", jobIds);
|
2024-08-16 23:39:39 +02:00
|
|
|
|
|
|
|
|
if (error) {
|
2024-09-10 09:20:18 +02:00
|
|
|
Logger.error(`Error in supabaseGetJobsById: ${error}`);
|
2024-08-30 14:52:59 -03:00
|
|
|
Sentry.captureException(error);
|
2024-08-16 23:39:39 +02:00
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!data) {
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return data;
|
2024-08-30 14:52:59 -03:00
|
|
|
};
|
2024-08-31 14:23:55 -03:00
|
|
|
|
2024-09-10 08:51:58 +02:00
|
|
|
/**
|
|
|
|
|
* Get multiple firecrawl_jobs by crawl ID. Use this if you need a lot of jobs at once.
|
|
|
|
|
* @param crawlId ID of crawl
|
|
|
|
|
* @returns {any[]} Jobs
|
|
|
|
|
*/
|
|
|
|
|
export const supabaseGetJobsByCrawlId = async (crawlId: string) => {
|
|
|
|
|
const { data, error } = await supabase_service
|
|
|
|
|
.from("firecrawl_jobs")
|
|
|
|
|
.select()
|
|
|
|
|
.eq("crawl_id", crawlId)
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
Logger.error(`Error in supabaseGetJobsByCrawlId: ${error}`);
|
|
|
|
|
Sentry.captureException(error);
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!data) {
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return data;
|
|
|
|
|
};
|
|
|
|
|
|
2024-08-31 14:23:55 -03:00
|
|
|
|
|
|
|
|
export const supabaseGetJobByIdOnlyData = async (jobId: string) => {
|
|
|
|
|
const { data, error } = await supabase_service
|
|
|
|
|
.from("firecrawl_jobs")
|
2024-09-01 12:55:02 -03:00
|
|
|
.select("docs, team_id")
|
2024-08-31 14:23:55 -03:00
|
|
|
.eq("job_id", jobId)
|
|
|
|
|
.single();
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!data) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return data;
|
|
|
|
|
};
|