aboutsummaryrefslogtreecommitdiff
path: root/src/Routes/SettingsSave.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/Routes/SettingsSave.c')
-rw-r--r--src/Routes/SettingsSave.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/Routes/SettingsSave.c b/src/Routes/SettingsSave.c
new file mode 100644
index 0000000..d286507
--- /dev/null
+++ b/src/Routes/SettingsSave.c
@@ -0,0 +1,28 @@
+#include "SettingsSave.h"
+#include <stdlib.h>
+#include <string.h>
+
+int settings_save_handler(UrlParams *params) {
+ const char *theme = "";
+ const char *query = "";
+
+ if (params) {
+ for (int i = 0; i < params->count; i++) {
+ if (strcmp(params->params[i].key, "theme") == 0) {
+ theme = params->params[i].value;
+ } else if (strcmp(params->params[i].key, "q") == 0) {
+ query = params->params[i].value;
+ }
+ }
+ }
+
+ if (strlen(theme) > 0) {
+ set_cookie("theme", theme, "Fri, 31 Dec 2038 23:59:59 GMT", "/", false, false);
+ }
+
+ char redirect_url[512];
+ snprintf(redirect_url, sizeof(redirect_url), "/settings?q=%s", query);
+ send_redirect(redirect_url);
+
+ return 0;
+}