From 919fd8cd7a0a4daaa07fc0fbbe692bf8c231c9f9 Mon Sep 17 00:00:00 2001 From: alashkova Date: Thu, 9 Jan 2025 11:00:39 +0300 Subject: [PATCH] =?UTF-8?q?SUPPORT-8821.=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20json=5Fwriter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 1 + src/utils/json_writer.c | 48 +++++++++++++++++++++++++++++++++++++++++ src/utils/json_writer.h | 13 +++++++++++ 3 files changed, 62 insertions(+) create mode 100644 src/utils/json_writer.c create mode 100644 src/utils/json_writer.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 56bfb6c..3a7e087 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -121,6 +121,7 @@ ADD_EXECUTABLE (${PROJECT_NAME} ${UTILS_DIR}/gconf_file.c ${UTILS_DIR}/glib_utils.c ${UTILS_DIR}/json_parser.c + ${UTILS_DIR}/json_writer.c ${UTILS_DIR}/jwt.c ${UTILS_DIR}/library.c ${UTILS_DIR}/logger.c diff --git a/src/utils/json_writer.c b/src/utils/json_writer.c new file mode 100644 index 0000000..e7581d0 --- /dev/null +++ b/src/utils/json_writer.c @@ -0,0 +1,48 @@ +#include "json_writer.h" + +#include "logger.h" + +char * +json_write_to_str(JsonBuilder *builder) +{ + char *out; + + LOG_TRACE("json_write_to_str enter"); + + JsonNode *jnode = json_builder_get_root(builder); + if (jnode == NULL) { + LOG_ERROR("json_builder_get_root failed"); + LOG_ERROR("json_write_to_str exit with error"); + return NULL; + } + + out = json_to_string(jnode, FALSE); + + json_node_unref(jnode); + + LOG_TRACE("json_write_to_str exit"); + return out; +} + +int +json_write_member_string(JsonBuilder *builder, const char *member_name, const char *value) +{ + LOG_TRACE("json_write_member_string enter"); + + if (json_builder_set_member_name(builder, member_name) == NULL) { + LOG_ERROR("json_builder_set_member_name failed"); + goto error; + } + + if (json_builder_add_string_value(builder, value) == NULL) { + LOG_ERROR("json_builder_add_string_value failed"); + goto error; + } + + LOG_TRACE("json_write_member_string exit"); + return 0; + +error: + LOG_ERROR("json_write_member_string exit with error"); + return -1; +} \ No newline at end of file diff --git a/src/utils/json_writer.h b/src/utils/json_writer.h new file mode 100644 index 0000000..29b7b4a --- /dev/null +++ b/src/utils/json_writer.h @@ -0,0 +1,13 @@ +#ifndef JSON_WRITER_H_INCLUDED +#define JSON_WRITER_H_INCLUDED + + +#include + + +char* json_write_to_str(JsonBuilder *builder); + +int json_write_member_string(JsonBuilder *builder, const char *member_name, const char *value); + + +#endif // JSON_WRITER_H_INCLUDED \ No newline at end of file