Refactor readEmails script
[SonOfLokstallBot.git] / readEmailsAndSendMessages.php
index 2280fe7..e574aba 100644 (file)
@@ -1,44 +1,12 @@
 <?php declare(strict_types=1);
 
-require 'common.php';
+require_once('common.php');
 
-use function Common\{getTelegram, getInbox, getMessagesFromInbox, splitBill};
+function ggetMessagesFromInbox($unread) {
+    return getMessagesFromInbox(getInbox('Multiple Inboxes/Needs Action'), getRules(), $unread);
+};
 
-array_map(
-    function($message) {
-        return getTelegram()->sendMessage(
-            [
-                'chat_id' => CHAT_ID,
-                'text'=> $message
-            ]
-        );
-    },
-    array_merge(
-        array_map(
-            function($message) {
-                return sprintf(
-                    '[REMINDER: %d DAYS] ' . $message['telegramMessage'],
-                    REMIND_THRESHOLD,
-                    splitBill($message['amount']),
-                    $message['due']->format('jS \of M')
-                );
-            },
-            array_filter(
-                getMessagesFromInbox(getInbox('Multiple Inboxes/Needs Action'), require 'rules.php', false),
-                function($message) {
-                    return $message['due']->diff(new DateTimeImmutable)->d == REMIND_THRESHOLD;
-                }
-            )
-        ),
-        array_map(
-            function($message) {
-                return sprintf(
-                    $message['telegramMessage'],
-                    splitBill($message['amount']),
-                    $message['due']->format('jS \of M')
-                );
-            },
-            getMessagesFromInbox(getInbox('Multiple Inboxes/Needs Action'), require 'rules.php')
-        )
-    )
+map(sendToGroupChat)(
+    ∪(∘(map(generateReminderText), filter(messageNeedsReminder), 'ggetMessagesFromInbox')(FALSE),
+      ∘(map(generateNewBillText), 'ggetMessagesFromInbox')(TRUE))
 );