From 96f30bdae883482a9e9f41244df6653375ddd275 Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Fri, 10 Apr 2020 16:35:00 +0200
Subject: [PATCH] Sticker set command

---
 src/commands.c | 35 +++++++++++++++++++++++++----------
 1 file changed, 25 insertions(+), 10 deletions(-)

diff --git a/src/commands.c b/src/commands.c
index 3518613e..a58f3d8b 100644
--- a/src/commands.c
+++ b/src/commands.c
@@ -1126,13 +1126,28 @@ command_sticker_get(struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS
     return true;
 }
 
-// bool
-// command_sticker_set(struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS_MAX])
-// {
-// }
-//
-// bool
-// command_sticker_delete(struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS_MAX])
-// {
-// }
-//
+bool
+command_sticker_set(struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS_MAX])
+{
+    if (argv[0] == NULL || argv[1] == NULL || argv[2] == NULL || argv[3] == NULL || argv[4] != NULL) {
+        fprintf(stderr, " ! command_sticker_get: Invalid argument, need only 3 arguments\n");
+        return false;
+    }
+
+    int uri = atoi(argv[1]);    /* FIXME: Use strtol. */
+    int value = atoi(argv[4]);  /* FIXME: Use strtol. */
+
+    if (!database_sticker_set(srv->db, argv[0], argv[2], uri, value)) {
+        fprintf(stderr, " . command_sticker_get: Failed to get sticker '%s' to value %d for object "
+                "%s(%d)\n", argv[2], value, argv[0], uri);
+        return false;
+    }
+
+    return true;
+}
+
+bool
+command_sticker_delete(struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS_MAX])
+{
+}
+
-- 
GitLab