show unread mail count in topbar
[browser-rts.git] / src / repository / mail.ts
index bf480c03fdf15b5ec332090f9f130db2f5949836..0fe530bb0994143094788447b223508d903c03bb 100644 (file)
@@ -56,6 +56,19 @@ export class MailRepository extends Repository<Message> {
         return res.pop();
     }
 
+    async countUnread(to: string): Promise<number> {
+      const res = await this.db.raw<{unread: number}>(`select count(id) as 
+        unread from mail 
+        where to_account = ? and read_at = 0`, to);
+
+      try {
+        return parseInt(res[0].unread.toString()) || 0;
+      }
+      catch(e) {
+        return 0;
+      }
+    }
+
     async listReceivedMessages(to: string): Promise<MessageWithNames[]> {
         return this.db.raw<MessageWithNames[]>(`select m.*, a.username 
         from mail m 
@@ -63,4 +76,4 @@ export class MailRepository extends Repository<Message> {
         where m.to_account = ? 
         order by sent_at desc`, to);
     }
-}
\ No newline at end of file
+}