Untitled

 avatar
unknown
plain_text
a year ago
1.7 kB
5
Indexable
const calculateDaysLeft = (platform, endDate) => {
  const todayDate = new Date(todayDateFormatted());
  const lastDayDate = new Date(endDate);
  const timeDifference = lastDayDate - todayDate;
  return Math.ceil(timeDifference / (1000 * 60 * 60 * 24));
};

const processDomainMessages = (sendableDomainArray) => {
  const messages = {
    5: 'Reminder: (5) Day left till platform shutdown',
    3: 'Reminder: (3) Day left till platform shutdown',
    1: 'Reminder: (1) Day left till platform shutdown',
    '-1': 'Reminder: (1) Days ago platform shut down',
    '-2': 'Reminder: (2) Days ago platform shut down',
  };

  return sendableDomainArray
    .filter(item => messages[calculateDaysLeft(item.domain, item.endDate)])
    .map(item => ({ 'domain': item.domain, 'message': messages[calculateDaysLeft(item.domain, item.endDate)] }));
};

const updatePaymentMessages = async () => {
  try {
    const domains = await controllers.readDomainsFile(filePath);
    const sendableDomains = domains
      .filter(item => item.paidAt && item.paidAt.trim() !== "")
      .map(item => ({ 'domain': item.domain, 'endDate': item.paidAt.split('|')[1] }));

    const pipelineResult = processDomainMessages(sendableDomains);

    // Update existing domains array directly
    domains.forEach(item => {
      const sendableItem = pipelineResult.find(sendable => sendable.domain === item.domain);
      if (sendableItem) {
        item.message = sendableItem.message;
      }
    });

    console.info('Updated payment records');
    await controllers.writeDomainsFile(filePath, domains);
  } catch (error) {
    console.error('Error updating payment records:', error.message);
  }
};
Editor is loading...
Leave a Comment