Skip to main content

max / goingson

2.3 KB · 59 lines History Blame Raw
1 -- Per-account email signature (plain text, appended to outbound emails)
2 ALTER TABLE email_accounts ADD COLUMN email_signature TEXT;
3
4 -- Update sync triggers to include email_signature (17 cols now)
5 DROP TRIGGER IF EXISTS sync_trg_email_accounts_insert;
6 DROP TRIGGER IF EXISTS sync_trg_email_accounts_update;
7
8 CREATE TRIGGER IF NOT EXISTS sync_trg_email_accounts_insert
9 AFTER INSERT ON email_accounts
10 WHEN (SELECT value FROM sync_state WHERE key = 'applying_remote') != '1'
11 BEGIN
12 INSERT INTO sync_changelog (table_name, op, row_id, data)
13 VALUES ('email_accounts', 'INSERT', NEW.id, json_object(
14 'id', NEW.id,
15 'user_id', NEW.user_id,
16 'account_name', NEW.account_name,
17 'email_address', NEW.email_address,
18 'imap_server', NEW.imap_server,
19 'imap_port', NEW.imap_port,
20 'smtp_server', NEW.smtp_server,
21 'smtp_port', NEW.smtp_port,
22 'username', NEW.username,
23 'use_tls', NEW.use_tls,
24 'created_at', NEW.created_at,
25 'archive_folder_name', NEW.archive_folder_name,
26 'auth_type', NEW.auth_type,
27 'jmap_session_url', NEW.jmap_session_url,
28 'jmap_account_id', NEW.jmap_account_id,
29 'sync_interval_minutes', NEW.sync_interval_minutes,
30 'email_signature', NEW.email_signature
31 ));
32 END;
33
34 CREATE TRIGGER IF NOT EXISTS sync_trg_email_accounts_update
35 AFTER UPDATE ON email_accounts
36 WHEN (SELECT value FROM sync_state WHERE key = 'applying_remote') != '1'
37 BEGIN
38 INSERT INTO sync_changelog (table_name, op, row_id, data)
39 VALUES ('email_accounts', 'UPDATE', NEW.id, json_object(
40 'id', NEW.id,
41 'user_id', NEW.user_id,
42 'account_name', NEW.account_name,
43 'email_address', NEW.email_address,
44 'imap_server', NEW.imap_server,
45 'imap_port', NEW.imap_port,
46 'smtp_server', NEW.smtp_server,
47 'smtp_port', NEW.smtp_port,
48 'username', NEW.username,
49 'use_tls', NEW.use_tls,
50 'created_at', NEW.created_at,
51 'archive_folder_name', NEW.archive_folder_name,
52 'auth_type', NEW.auth_type,
53 'jmap_session_url', NEW.jmap_session_url,
54 'jmap_account_id', NEW.jmap_account_id,
55 'sync_interval_minutes', NEW.sync_interval_minutes,
56 'email_signature', NEW.email_signature
57 ));
58 END;
59