This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const express = require("express"); | |
const Sentry = require("@sentry/node"); | |
const prisma = require("./prisma"); // Adjust to the correct path for your Prisma instance | |
const { verifyFlutterwavePayment, fetchSubscriptions } = require("./functions/payment"); // Payment utility functions | |
const { FLUTTERWAVE_WEBHOOK_SECRET_DEV, FLUTTERWAVE_WEBHOOK_SECRET_PROD } = process.env; // Environment variables for webhook secrets | |
const { triggerUpdateNoBtn } = require("./functions/emails"); // Email notification utility | |
const logger = require("./utils/logger"); // Custom logger for structured logging | |
const { format } = require("timeago.js"); // Library for formatting dates relative to current time | |
const router = express.Router(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<script> | |
import {onMount} from "svelte"; | |
/** | |
* @type {EditorJS | null} | |
*/ | |
let editor = $state(null); | |
/** @type {HTMLElement | null} */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Compares two objects and returns the differences, or null if they're the same | |
* @param {Object} original - Original form data | |
* @param {Object} current - Current form data | |
* @returns {Object|null} Object containing only the changed fields, or null if no changes | |
*/ | |
function getObjectDiff(original, current) { | |
const changes = {}; | |
for (const [key, value] of Object.entries(current)) { |