diff --git a/src/commands.c b/src/commands.c index 3518613e4d8b10017eb59ebad1fc43a7a62deaf0..a58f3d8be2c4806da6a49f4607bf2c3c8ce27ec6 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]) +{ +} +