From 00b24d93c8f732c92e29cd9d55b7835b49f2b532 Mon Sep 17 00:00:00 2001 From: Neerti Date: Thu, 20 Feb 2020 21:48:58 -0500 Subject: [PATCH] Hopefully finalizes code work. --- code/controllers/subsystems/sqlite.dm | 26 +++++++++---------- .../managed_browsers/feedback_viewer.dm | 22 ++++++++-------- code/unit_tests/sqlite_tests.dm | 2 +- polaris.dme | 7 +++++ 4 files changed, 32 insertions(+), 25 deletions(-) diff --git a/code/controllers/subsystems/sqlite.dm b/code/controllers/subsystems/sqlite.dm index 28c595b33a..8ecb1e9744 100644 --- a/code/controllers/subsystems/sqlite.dm +++ b/code/controllers/subsystems/sqlite.dm @@ -43,14 +43,14 @@ SUBSYSTEM_DEF(sqlite) */ var/database/query/init_schema = new( {" - CREATE TABLE IF NOT EXISTS feedback + CREATE TABLE IF NOT EXISTS [SQLITE_FEEDBACK_COLUMN_DATETIME] ( - `id` INTEGER NOT NULL UNIQUE, - `author` TEXT NOT NULL, - `topic` TEXT NOT NULL, - `content` TEXT NOT NULL, - `datetime` TEXT NOT NULL, - PRIMARY KEY(`id`) + `[SQLITE_FEEDBACK_COLUMN_ID]` INTEGER NOT NULL UNIQUE, + `[SQLITE_FEEDBACK_COLUMN_AUTHOR]` TEXT NOT NULL, + `[SQLITE_FEEDBACK_COLUMN_TOPIC]` TEXT NOT NULL, + `[SQLITE_FEEDBACK_COLUMN_CONTENT]` TEXT NOT NULL, + `[SQLITE_FEEDBACK_COLUMN_DATETIME]` TEXT NOT NULL, + PRIMARY KEY(`[SQLITE_FEEDBACK_COLUMN_ID]`) ); "} ) @@ -85,10 +85,10 @@ SUBSYSTEM_DEF(sqlite) var/sqlite_topic = sql_sanitize_text(topic) var/database/query/query = new( - "INSERT INTO feedback (\ - author, \ - topic, \ - content, \ + "INSERT INTO [SQLITE_TABLE_FEEDBACK] (\ + [SQLITE_FEEDBACK_COLUMN_AUTHOR], \ + [SQLITE_FEEDBACK_COLUMN_TOPIC], \ + [SQLITE_FEEDBACK_COLUMN_CONTENT], \ [SQLITE_FEEDBACK_COLUMN_DATETIME]) \ \ VALUES (\ @@ -127,8 +127,8 @@ SUBSYSTEM_DEF(sqlite) // First query is to get the most recent time the player has submitted feedback. var/database/query/query = new({" SELECT [SQLITE_FEEDBACK_COLUMN_DATETIME] - FROM feedback - WHERE author == ? OR author == ? + FROM [SQLITE_TABLE_FEEDBACK] + WHERE [SQLITE_FEEDBACK_COLUMN_AUTHOR] == ? OR [SQLITE_FEEDBACK_COLUMN_AUTHOR] == ? ORDER BY [SQLITE_FEEDBACK_COLUMN_DATETIME] DESC LIMIT 1; "}, diff --git a/code/datums/managed_browsers/feedback_viewer.dm b/code/datums/managed_browsers/feedback_viewer.dm index cf3da93744..9128efb90e 100644 --- a/code/datums/managed_browsers/feedback_viewer.dm +++ b/code/datums/managed_browsers/feedback_viewer.dm @@ -39,9 +39,9 @@ if(exact) // Useful for ID searches, so searching for 'id 10' doesn't also get 'id 101'. query = new({" SELECT * - FROM feedback + FROM [SQLITE_TABLE_FEEDBACK] WHERE [row_name] == ? - ORDER BY id + ORDER BY [SQLITE_FEEDBACK_COLUMN_ID] DESC LIMIT 50; "}, thing_to_find @@ -52,9 +52,9 @@ thing_to_find = "%[thing_to_find]%" query = new({" SELECT * - FROM feedback + FROM [SQLITE_TABLE_FEEDBACK] WHERE [row_name] LIKE ? - ORDER BY id + ORDER BY [SQLITE_FEEDBACK_COLUMN_ID] DESC LIMIT 50; "}, thing_to_find @@ -69,8 +69,8 @@ if(!last_query) // If no query was done before, just show the most recent feedbacks. var/database/query/query = new({" SELECT * - FROM feedback - ORDER BY id + FROM [SQLITE_TABLE_FEEDBACK] + ORDER BY [SQLITE_FEEDBACK_COLUMN_ID] DESC LIMIT 50; "} ) @@ -134,29 +134,29 @@ if(href_list["filter_id"]) var/id_to_search = input(my_client, "Write feedback ID here.", "Filter by ID", null) as null|num if(id_to_search) - last_query = feedback_filter("id", id_to_search, TRUE) + last_query = feedback_filter(SQLITE_FEEDBACK_COLUMN_ID, id_to_search, TRUE) if(href_list["filter_author"]) var/author_to_search = input(my_client, "Write desired key or hash here. Partial keys/hashes are allowed.", "Filter by Author", null) as null|text if(author_to_search) - last_query = feedback_filter("author", author_to_search) + last_query = feedback_filter(SQLITE_FEEDBACK_COLUMN_AUTHOR, author_to_search) if(href_list["filter_topic"]) var/topic_to_search = input(my_client, "Write desired topic here. Partial topics are allowed. \ \nThe current topics in the config are [english_list(config.sqlite_feedback_topics)].", "Filter by Topic", null) as null|text if(topic_to_search) - last_query = feedback_filter("topic", topic_to_search) + last_query = feedback_filter(SQLITE_FEEDBACK_COLUMN_TOPIC, topic_to_search) if(href_list["filter_content"]) var/content_to_search = input(my_client, "Write desired content to find here. Partial matches are allowed.", "Filter by Content", null) as null|message if(content_to_search) - last_query = feedback_filter("content", content_to_search) + last_query = feedback_filter(SQLITE_FEEDBACK_COLUMN_CONTENT, content_to_search) if(href_list["filter_datetime"]) var/datetime_to_search = input(my_client, "Write desired datetime. Partial matches are allowed.\n\ Format is 'YYYY-MM-DD HH:MM:SS'.", "Filter by Datetime", null) as null|text if(datetime_to_search) - last_query = feedback_filter("datetime", datetime_to_search) + last_query = feedback_filter(SQLITE_FEEDBACK_COLUMN_DATETIME, datetime_to_search) // Refresh. display() \ No newline at end of file diff --git a/code/unit_tests/sqlite_tests.dm b/code/unit_tests/sqlite_tests.dm index 13add92c0e..8263f58064 100644 --- a/code/unit_tests/sqlite_tests.dm +++ b/code/unit_tests/sqlite_tests.dm @@ -20,7 +20,7 @@ // Act. SSsqlite.insert_feedback(author = test_author, topic = test_topic, content = test_content, sqlite_object = stub_sqlite_db) - var/database/query/Q = new("SELECT * FROM feedback") + var/database/query/Q = new("SELECT * FROM [SQLITE_TABLE_FEEDBACK]") Q.Execute(stub_sqlite_db) SSsqlite.sqlite_check_for_errors(Q, "Sqlite Insert Unit Test") Q.NextRow() diff --git a/polaris.dme b/polaris.dme index 6093dbc761..6ea84b6cb2 100644 --- a/polaris.dme +++ b/polaris.dme @@ -24,6 +24,7 @@ #include "code\__defines\_compile_options.dm" #include "code\__defines\_lists.dm" #include "code\__defines\_planes+layers.dm" +#include "code\__defines\_protect.dm" #include "code\__defines\_tick.dm" #include "code\__defines\admin.dm" #include "code\__defines\appearance.dm" @@ -56,6 +57,7 @@ #include "code\__defines\research.dm" #include "code\__defines\sound.dm" #include "code\__defines\species_languages.dm" +#include "code\__defines\sqlite_defines.dm" #include "code\__defines\stat_tracking.dm" #include "code\__defines\subsystems.dm" #include "code\__defines\supply.dm" @@ -213,6 +215,7 @@ #include "code\controllers\subsystems\planets.dm" #include "code\controllers\subsystems\radiation.dm" #include "code\controllers\subsystems\shuttles.dm" +#include "code\controllers\subsystems\sqlite.dm" #include "code\controllers\subsystems\sun.dm" #include "code\controllers\subsystems\time_track.dm" #include "code\controllers\subsystems\timer.dm" @@ -276,6 +279,9 @@ #include "code\datums\looping_sounds\machinery_sounds.dm" #include "code\datums\looping_sounds\sequence.dm" #include "code\datums\looping_sounds\weather_sounds.dm" +#include "code\datums\managed_browsers\_managed_browser.dm" +#include "code\datums\managed_browsers\feedback_form.dm" +#include "code\datums\managed_browsers\feedback_viewer.dm" #include "code\datums\observation\_debug.dm" #include "code\datums\observation\_defines.dm" #include "code\datums\observation\destroyed.dm" @@ -2802,6 +2808,7 @@ #include "code\unit_tests\map_tests.dm" #include "code\unit_tests\mob_tests.dm" #include "code\unit_tests\research_tests.dm" +#include "code\unit_tests\sqlite_tests.dm" #include "code\unit_tests\unit_test.dm" #include "code\unit_tests\zas_tests.dm" #include "code\unit_tests\integrated_circuits\arithmetic.dm"