[EDG-4347] Load script to init sms database (#1015) Co-authored-by: Radosław Wicik <60609724+rwicik@users.noreply.github.com>
12 files changed, 75 insertions(+), 67 deletions(-) A image/user/db/sms_001.sql A image/user/db/sms_002.sql A image/user/db/sms_003.sql D image/user/sms.db M module-db/Databases/SmsDB.cpp M module-db/Databases/SmsDB.hpp M module-db/Tables/SMSTable.cpp M module-db/Tables/SMSTable.hpp M module-db/Tables/SMSTemplateTable.cpp M module-db/Tables/SMSTemplateTable.hpp M module-db/Tables/ThreadsTable.cpp M module-db/Tables/ThreadsTable.hpp
A image/user/db/sms_001.sql => image/user/db/sms_001.sql +40 -0
@@ 0,0 1,40 @@ CREATE TABLE IF NOT EXISTS sms ( _id INTEGER PRIMARY KEY, thread_id INTEGER, contact_id INTEGER, date INTEGER, date_send INTEGER, error_code INTEGER, body TEXT NOT_NULL, type INTEGER, FOREIGN KEY (thread_id) REFERENCES threads (_id) ON DELETE CASCADE ); CREATE TABLE IF NOT EXISTS templates ( _id INTEGER PRIMARY KEY, text TEXT, lastUsageTimestamp INTEGER ); CREATE TABLE IF NOT EXISTS threads ( _id INTEGER PRIMARY KEY, date INTEGER, msg_count INTEGER, read INTEGER, contact_id INTEGER, number_id INTEGER, snippet TEXT NOT NULL, last_dir INTEGER ); CREATE TABLE IF NOT EXISTS threads_count ( _id INTEGER PRIMARY KEY, count INTEGER ); CREATE TRIGGER IF NOT EXISTS on_thread_insert AFTER INSERT ON threads BEGIN UPDATE threads_count SET count=count+1 WHERE _id=1; END; CREATE TRIGGER IF NOT EXISTS on_thread_remove AFTER DELETE ON threads BEGIN UPDATE threads_count SET count=count-1 WHERE _id=1; END;
A image/user/db/sms_002.sql => image/user/db/sms_002.sql +1 -0
A image/user/db/sms_003.sql => image/user/db/sms_003.sql +31 -0
@@ 0,0 1,31 @@ BEGIN TRANSACTION; INSERT OR REPLACE INTO "sms" ("_id","thread_id","contact_id","date","date_send","error_code","body","type") VALUES (1,1,1,1547465101,1,1,'najstarsze odb fsjdklafjskldjf',4); INSERT OR REPLACE INTO "sms" ("_id","thread_id","contact_id","date","date_send","error_code","body","type") VALUES (2,1,1,1547468701,2,2,'wys',8); INSERT OR REPLACE INTO "sms" ("_id","thread_id","contact_id","date","date_send","error_code","body","type") VALUES (4,1,1,1547472320,4,1,'najnowsze odb i całkiem 1 1 1 1 długie. długie długie długie, wcale nie krótkie. od nowej lini (\n); i_teraz_zbyt_długa_linia_żeby_się_zmieścić',4); INSERT OR REPLACE INTO "sms" ("_id","thread_id","contact_id","date","date_send","error_code","body","type") VALUES (5,1,1,1547482320,3,2,'(dziwne znaczki: „”ẃ½€≠§³¢)',8); INSERT OR REPLACE INTO "sms" ("_id","thread_id","contact_id","date","date_send","error_code","body","type") VALUES (6,1,1,1547492320,3,2,'nieudane wysyłanie :(',2); INSERT OR REPLACE INTO "sms" ("_id","thread_id","contact_id","date","date_send","error_code","body","type") VALUES (7,2,2,1547492320,3,0,'Ciężko powiedzieć o czym ta wiadomość jest, ale jest dość długa.',2); INSERT OR REPLACE INTO "sms" ("_id","thread_id","contact_id","date","date_send","error_code","body","type") VALUES (8,2,2,1547492320,4,0,'heh?',4); INSERT OR REPLACE INTO "sms" ("_id","thread_id","contact_id","date","date_send","error_code","body","type") VALUES (9,3,3,1547492320,1,0,'ping',2); INSERT OR REPLACE INTO "sms" ("_id","thread_id","contact_id","date","date_send","error_code","body","type") VALUES (10,3,3,1547492320,2,0,'pong',4); INSERT OR REPLACE INTO "sms" ("_id","thread_id","contact_id","date","date_send","error_code","body","type") VALUES (11,4,4,1547492320,2,0,'ping',4); INSERT OR REPLACE INTO "sms" ("_id","thread_id","contact_id","date","date_send","error_code","body","type") VALUES (12,5,5,1547492320,2,0,'ping',2); INSERT OR REPLACE INTO "sms" ("_id","thread_id","contact_id","date","date_send","error_code","body","type") VALUES (13,6,6,1547492320,2,0,'ping',8); INSERT OR REPLACE INTO "sms" ("_id","thread_id","contact_id","date","date_send","error_code","body","type") VALUES (14,1,1,1547472301,3,2,'prawie najnowsze odb.',4); INSERT OR REPLACE INTO "templates" ("_id","text","lastUsageTimestamp") VALUES (1,'Thanks for reaching out. I can''t talk right now, I''ll call you later',4); INSERT OR REPLACE INTO "templates" ("_id","text","lastUsageTimestamp") VALUES (2,'I''ll call you later',3); INSERT OR REPLACE INTO "templates" ("_id","text","lastUsageTimestamp") VALUES (3,'I''ll be there in 15 minutes',2); INSERT OR REPLACE INTO "templates" ("_id","text","lastUsageTimestamp") VALUES (4,'Some test tmplate number, which is too long to be displayed.',1); INSERT OR REPLACE INTO "templates" ("_id","text","lastUsageTimestamp") VALUES (5,'No.',0); INSERT OR REPLACE INTO "templates" ("_id","text","lastUsageTimestamp") VALUES (6,'Zadzwonię później, walczę z ostrym cieniem mgły ;)',NULL); INSERT OR REPLACE INTO "threads_count" ("_id","count") VALUES (1,2); INSERT OR REPLACE INTO "threads" ("_id","date","msg_count","read","contact_id","number_id","snippet","last_dir") VALUES (1,1574335694,6,1,1,1,'Wiadomość testowa.',1); INSERT OR REPLACE INTO "threads" ("_id","date","msg_count","read","contact_id","number_id","snippet","last_dir") VALUES (2,2,2,0,2,2,'How are You? ',2); INSERT OR REPLACE INTO "threads" ("_id","date","msg_count","read","contact_id","number_id","snippet","last_dir") VALUES (3,3,2,1,3,3,'Lorem ipsum dolor sit amet, consectetur adipiscing',4); INSERT OR REPLACE INTO "threads" ("_id","date","msg_count","read","contact_id","number_id","snippet","last_dir") VALUES (4,4,1,0,4,4,'Lorem ipsum dolor sit amet, consectetur adipiscing',8); INSERT OR REPLACE INTO "threads" ("_id","date","msg_count","read","contact_id","number_id","snippet","last_dir") VALUES (5,5,1,1,5,5,'Lorem ipsum dolor sit amet, consectetur adipiscing',16); INSERT OR REPLACE INTO "threads" ("_id","date","msg_count","read","contact_id","number_id","snippet","last_dir") VALUES (6,5,1,0,6,6,'cos tam',8); INSERT OR REPLACE INTO "threads" ("_id","date","msg_count","read","contact_id","number_id","snippet","last_dir") VALUES (7,1,1,1,7,7,'cdcd',4); COMMIT;
D image/user/sms.db => image/user/sms.db +0 -0
M module-db/Databases/SmsDB.cpp => module-db/Databases/SmsDB.cpp +0 -12
@@ 7,16 7,4 @@ const char *SmsDB::dbName = USER_PATH("sms.db"); SmsDB::SmsDB() : Database(dbName), sms(this), threads(this), templates(this) { if (sms.create() == false) return; if (threads.create() == false) return; if (templates.create() == false) return; isInitialized_ = true; } SmsDB::~SmsDB() {}
M module-db/Databases/SmsDB.hpp => module-db/Databases/SmsDB.hpp +1 -1
@@ 12,7 12,7 @@ class SmsDB : public Database { public: SmsDB(); ~SmsDB(); ~SmsDB() = default; SMSTable sms; ThreadsTable threads;
M module-db/Tables/SMSTable.cpp => module-db/Tables/SMSTable.cpp +1 -1
@@ 9,7 9,7 @@ SMSTable::SMSTable(Database *db) : Table(db) bool SMSTable::create() { return db->execute(createTableQuery); return true; } bool SMSTable::add(SMSTableRow entry)
M module-db/Tables/SMSTable.hpp => module-db/Tables/SMSTable.hpp +0 -12
@@ 57,16 57,4 @@ class SMSTable : public Table<SMSTableRow, SMSTableFields> SMSTableRow getDraftByThreadId(uint32_t threadId); std::pair<uint32_t, std::vector<SMSTableRow>> getManyByType(SMSType type, uint32_t offset, uint32_t limit); private: const char *createTableQuery = "CREATE TABLE IF NOT EXISTS sms(" "_id INTEGER PRIMARY KEY," "thread_id INTEGER," "contact_id INTEGER," "date INTEGER," "date_send INTEGER," "error_code INTEGER," "body TEXT NOT_NULL," "type INTEGER," "FOREIGN KEY(thread_id) REFERENCES threads(_id) ON DELETE CASCADE );"; };
M module-db/Tables/SMSTemplateTable.cpp => module-db/Tables/SMSTemplateTable.cpp +1 -1
@@ 16,7 16,7 @@ SMSTemplateTable::~SMSTemplateTable() bool SMSTemplateTable::create() { return db->execute(createTableQuery); return true; } bool SMSTemplateTable::add(SMSTemplateTableRow entry)
M module-db/Tables/SMSTemplateTable.hpp => module-db/Tables/SMSTemplateTable.hpp +0 -6
@@ 41,10 41,4 @@ class SMSTemplateTable : public Table<SMSTemplateTableRow, SMSTemplateTableField uint32_t count() override final; uint32_t count(EntryState state); uint32_t countByFieldId(const char *field, uint32_t id) override final; private: const char *createTableQuery = "CREATE TABLE IF NOT EXISTS templates(" "_id INTEGER PRIMARY KEY," "text TEXT," "lastUsageTimestamp INTEGER)"; };
M module-db/Tables/ThreadsTable.cpp => module-db/Tables/ThreadsTable.cpp +0 -12
@@ 9,18 9,6 @@ ThreadsTable::ThreadsTable(Database *db) : Table(db) bool ThreadsTable::create() { // Create necessary tables if (!db->execute(createTableQuery)) return false; if (!db->execute(createTableThreadsCounterQuery)) return false; if (!db->execute(threadsCounterInsertionQuery)) return false; if (!db->execute(threadInsertTriggerQuery)) return false; if (!db->execute(threadRemoveTriggerQuery)) return false; return true; }
M module-db/Tables/ThreadsTable.hpp => module-db/Tables/ThreadsTable.hpp +0 -22
@@ 55,26 55,4 @@ class ThreadsTable : public Table<ThreadsTableRow, ThreadsTableFields> /// returns: { maximum_query_depth, vector {requested amount of data which match} } std::pair<uint32_t, std::vector<ThreadsTableRow>> getBySMSQuery(std::string text, uint32_t offset, uint32_t limit); private: const char *createTableQuery = "CREATE TABLE IF NOT EXISTS threads(" "_id INTEGER PRIMARY KEY," "date INTEGER," "msg_count INTEGER," "read INTEGER," "contact_id INTEGER," "number_id INTEGER," "snippet TEXT NOT NULL," "last_dir INTEGER" ");"; const char *createTableThreadsCounterQuery = "CREATE TABLE IF NOT EXISTS threads_count " "(_id INTEGER PRIMARY KEY," "count INTEGER );"; const char *threadsCounterInsertionQuery = "INSERT OR IGNORE INTO threads_count ( _id, count ) VALUES (1,0);"; const char *threadInsertTriggerQuery = "CREATE TRIGGER IF NOT EXISTS on_thread_insert AFTER INSERT ON threads " "BEGIN UPDATE threads_count SET count=count+1 WHERE _id=1; END"; const char *threadRemoveTriggerQuery = "CREATE TRIGGER IF NOT EXISTS on_thread_remove AFTER DELETE ON threads " "BEGIN UPDATE threads_count SET count=count-1 WHERE _id=1; END"; };