Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/ci-test-unit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ jobs:
CACHING_DATABASE_URL: "https://test.supabase.com"
DATA_DATABASE_URL: "https://test.supabase.com"

ENABLE_CRON_JOBS: "false"

permissions:
# Required to checkout the code
contents: read
Expand Down
2 changes: 2 additions & 0 deletions src/controllers/MarketplaceController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import type {
import { inject, injectable } from "tsyringe";
import { FractionService } from "../services/database/entities/FractionEntityService.js";
import { MarketplaceOrdersService } from "../services/database/entities/MarketplaceOrdersEntityService.js";
import { InvalidOrder } from "../lib/marketplace/errors.js";

@injectable()
@Route("v2/marketplace")
Expand Down Expand Up @@ -114,6 +115,7 @@ export class MarketplaceController extends Controller {
success: false,
message: "Error processing order",
error: error instanceof Error ? error.message : String(error),
...(error instanceof InvalidOrder ? { result: error.errors } : {}),
};
}
}
Expand Down
12 changes: 9 additions & 3 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import * as Sentry from "@sentry/node";
import SignatureRequestProcessorCron from "./cron/SignatureRequestProcessing.js";
import OrderInvalidationCronjob from "./cron/OrderInvalidation.js";
import { container } from "tsyringe";
import { ENABLE_CRON_JOBS } from "./utils/constants.js";

// @ts-expect-error BigInt is not supported by JSON
BigInt.prototype.toJSON = function () {
Expand Down Expand Up @@ -47,9 +48,14 @@ RegisterRoutes(app);
Sentry.setupExpressErrorHandler(app);

// Start Safe signature request processing cron job
SignatureRequestProcessorCron.start();
const cronJob = container.resolve(OrderInvalidationCronjob);
cronJob.start();
if (ENABLE_CRON_JOBS) {
console.log("🚀 Starting cron jobs");
SignatureRequestProcessorCron.start();
const cronJob = container.resolve(OrderInvalidationCronjob);
cronJob.start();
} else {
console.log("🚨 Cron jobs are disabled");
}

app.listen(PORT, () => {
console.log(
Expand Down
3 changes: 3 additions & 0 deletions src/utils/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,6 @@ export const drpcApiPkey = getRequiredEnvVar("DRPC_API_KEY");
export const cachingDatabaseUrl = getRequiredEnvVar("CACHING_DATABASE_URL");
export const dataDatabaseUrl = getRequiredEnvVar("DATA_DATABASE_URL");
export const filecoinApiKey = getRequiredEnvVar("FILECOIN_API_KEY");

const ENABLE_CRON_JOBS_ENV = getRequiredEnvVar("ENABLE_CRON_JOBS");
export const ENABLE_CRON_JOBS = ENABLE_CRON_JOBS_ENV === "true";