Reduce duplicate code in data_manager 61/277061/1
authorInHong Han <inhong1.han@samsung.com>
Thu, 30 Jun 2022 02:06:36 +0000 (11:06 +0900)
committerInHong Han <inhong1.han@samsung.com>
Thu, 30 Jun 2022 05:37:49 +0000 (14:37 +0900)
Change-Id: I91f33d3c2db2e72ff9f7061b1ab72d49f7ee4199

server/stickerd_data_manager.c

index ac976f2..79b65b5 100644 (file)
@@ -1386,13 +1386,32 @@ static void _set_id_builder(char *id, GVariantBuilder *id_builder)
     g_variant_builder_add(id_builder, "(i)", atoi(id));
 }
 
+static int _set_reply_body(GList *list, GVariant **reply_body)
+{
+    int ret  = STICKERD_SERVER_ERROR_NONE;
+    GVariantBuilder *builder = NULL;
+
+    builder = g_variant_builder_new(G_VARIANT_TYPE("a(i)"));
+    g_list_foreach(list, (GFunc) _set_id_builder, builder);
+
+    *reply_body = g_variant_new("(a(i))", builder);
+    if (*reply_body == NULL) {
+        LOGE("Failed to create reply_body");
+        ret = STICKERD_SERVER_ERROR_OPERATION_FAILED;
+    }
+
+    if (builder)
+        g_variant_builder_unref(builder);
+
+    return ret;
+}
+
 int stickerd_get_all_sticker_info(GVariant *parameters, GVariant **reply_body)
 {
     int ret;
     int offset, count;
     char *app_id = NULL;
     GList *id_list = NULL;
-    GVariantBuilder *id_builder = NULL;
 
     g_variant_get(parameters, "(&sii)", &app_id, &offset, &count);
 
@@ -1404,21 +1423,10 @@ int stickerd_get_all_sticker_info(GVariant *parameters, GVariant **reply_body)
         return STICKERD_SERVER_ERROR_OPERATION_FAILED;
     }
 
-    id_builder = g_variant_builder_new(G_VARIANT_TYPE("a(i)"));
-    g_list_foreach(id_list, (GFunc) _set_id_builder, id_builder);
-
-    *reply_body = g_variant_new("(a(i))", id_builder);
-    if (*reply_body == NULL) {
-        LOGE("Failed to create reply_body");
-        ret = STICKERD_SERVER_ERROR_OPERATION_FAILED;
-    }
-
+    ret = _set_reply_body(id_list, reply_body);
     if (id_list)
         g_list_free_full(id_list, free);
 
-    if (id_builder)
-        g_variant_builder_unref(id_builder);
-
     return ret;
 }
 
@@ -1428,7 +1436,6 @@ int stickerd_get_sticker_info_by_app_id(GVariant *parameters, GVariant **reply_b
     GList *id_list = NULL;
     char *app_id = NULL;
     int offset, count;
-    GVariantBuilder *id_builder = NULL;
 
     g_variant_get(parameters, "(&sii)", &app_id, &offset, &count);
 
@@ -1440,21 +1447,10 @@ int stickerd_get_sticker_info_by_app_id(GVariant *parameters, GVariant **reply_b
         return STICKERD_SERVER_ERROR_OPERATION_FAILED;
     }
 
-    id_builder = g_variant_builder_new(G_VARIANT_TYPE("a(i)"));
-    g_list_foreach(id_list, (GFunc) _set_id_builder, id_builder);
-
-    *reply_body = g_variant_new("(a(i))", id_builder);
-    if (*reply_body == NULL) {
-        LOGE("Failed to create reply_body");
-        ret = STICKERD_SERVER_ERROR_OPERATION_FAILED;
-    }
-
+    ret = _set_reply_body(id_list, reply_body);
     if (id_list)
         g_list_free_full(id_list, free);
 
-    if (id_builder)
-        g_variant_builder_unref(id_builder);
-
     return ret;
 }
 
@@ -1464,7 +1460,6 @@ int stickerd_get_sticker_info_by_type(GVariant *parameters, GVariant **reply_bod
     GList *id_list = NULL;
     char *app_id = NULL;
     int type, offset, count;
-    GVariantBuilder *id_builder = NULL;
 
     g_variant_get(parameters, "(&siii)", &app_id, &type, &offset, &count);
 
@@ -1476,21 +1471,10 @@ int stickerd_get_sticker_info_by_type(GVariant *parameters, GVariant **reply_bod
         return STICKERD_SERVER_ERROR_OPERATION_FAILED;
     }
 
-    id_builder = g_variant_builder_new(G_VARIANT_TYPE("a(i)"));
-    g_list_foreach(id_list, (GFunc) _set_id_builder, id_builder);
-
-    *reply_body = g_variant_new("(a(i))", id_builder);
-    if (*reply_body == NULL) {
-        LOGE("Failed to create reply_body");
-        ret = STICKERD_SERVER_ERROR_OPERATION_FAILED;
-    }
-
+    ret = _set_reply_body(id_list, reply_body);
     if (id_list)
         g_list_free_full(id_list, free);
 
-    if (id_builder)
-        g_variant_builder_unref(id_builder);
-
     return ret;
 }
 
@@ -1501,7 +1485,6 @@ int stickerd_get_sticker_info_by_group(GVariant *parameters, GVariant **reply_bo
     char *app_id = NULL;
     char *group = NULL;
     int offset, count;
-    GVariantBuilder *id_builder = NULL;
 
     g_variant_get(parameters, "(&s&sii)", &app_id, &group, &offset, &count);
 
@@ -1513,21 +1496,10 @@ int stickerd_get_sticker_info_by_group(GVariant *parameters, GVariant **reply_bo
         return STICKERD_SERVER_ERROR_OPERATION_FAILED;
     }
 
-    id_builder = g_variant_builder_new(G_VARIANT_TYPE("a(i)"));
-    g_list_foreach(id_list, (GFunc) _set_id_builder, id_builder);
-
-    *reply_body = g_variant_new("(a(i))", id_builder);
-    if (*reply_body == NULL) {
-        LOGE("Failed to create reply_body");
-        ret = STICKERD_SERVER_ERROR_OPERATION_FAILED;
-    }
-
+    ret = _set_reply_body(id_list, reply_body);
     if (id_list)
         g_list_free_full(id_list, free);
 
-    if (id_builder)
-        g_variant_builder_unref(id_builder);
-
     return ret;
 }
 
@@ -1538,7 +1510,6 @@ int stickerd_get_sticker_info_by_keyword(GVariant *parameters, GVariant **reply_
     char *app_id = NULL;
     char *keyword = NULL;
     int offset, count;
-    GVariantBuilder *id_builder = NULL;
 
     g_variant_get(parameters, "(&s&sii)", &app_id, &keyword, &offset, &count);
 
@@ -1550,21 +1521,10 @@ int stickerd_get_sticker_info_by_keyword(GVariant *parameters, GVariant **reply_
         return STICKERD_SERVER_ERROR_OPERATION_FAILED;
     }
 
-    id_builder = g_variant_builder_new(G_VARIANT_TYPE("a(i)"));
-    g_list_foreach(id_list, (GFunc) _set_id_builder, id_builder);
-
-    *reply_body = g_variant_new("(a(i))", id_builder);
-    if (*reply_body == NULL) {
-        LOGE("Failed to create reply_body");
-        ret = STICKERD_SERVER_ERROR_OPERATION_FAILED;
-    }
-
+    ret = _set_reply_body(id_list, reply_body);
     if (id_list)
         g_list_free_full(id_list, free);
 
-    if (id_builder)
-        g_variant_builder_unref(id_builder);
-
     return ret;
 }
 
@@ -1574,7 +1534,6 @@ int stickerd_get_sticker_info_by_display_type(GVariant *parameters, GVariant **r
     GList *id_list = NULL;
     char *app_id = NULL;
     int type, offset, count;
-    GVariantBuilder *id_builder = NULL;
 
     g_variant_get(parameters, "(&siii)", &app_id, &type, &offset, &count);
 
@@ -1586,21 +1545,10 @@ int stickerd_get_sticker_info_by_display_type(GVariant *parameters, GVariant **r
         return STICKERD_SERVER_ERROR_OPERATION_FAILED;
     }
 
-    id_builder = g_variant_builder_new(G_VARIANT_TYPE("a(i)"));
-    g_list_foreach(id_list, (GFunc) _set_id_builder, id_builder);
-
-    *reply_body = g_variant_new("(a(i))", id_builder);
-    if (*reply_body == NULL) {
-        LOGE("Failed to create reply_body");
-        ret = STICKERD_SERVER_ERROR_OPERATION_FAILED;
-    }
-
+    ret = _set_reply_body(id_list, reply_body);
     if (id_list)
         g_list_free_full(id_list, free);
 
-    if (id_builder)
-        g_variant_builder_unref(id_builder);
-
     return ret;
 }
 
@@ -1705,7 +1653,6 @@ int stickerd_get_recent_sticker_info(GVariant *parameters, GVariant **reply_body
     int ret;
     int count;
     GList *id_list = NULL;
-    GVariantBuilder *id_builder = NULL;
 
     g_variant_get(parameters, "(i)", &count);
 
@@ -1717,21 +1664,10 @@ int stickerd_get_recent_sticker_info(GVariant *parameters, GVariant **reply_body
         return STICKERD_SERVER_ERROR_OPERATION_FAILED;
     }
 
-    id_builder = g_variant_builder_new(G_VARIANT_TYPE("a(i)"));
-    g_list_foreach(id_list, (GFunc) _set_id_builder, id_builder);
-
-    *reply_body = g_variant_new("(a(i))", id_builder);
-    if (*reply_body == NULL) {
-        LOGE("Failed to create reply_body");
-        ret = STICKERD_SERVER_ERROR_OPERATION_FAILED;
-    }
-
+    ret = _set_reply_body(id_list, reply_body);
     if (id_list)
         g_list_free_full(id_list, free);
 
-    if (id_builder)
-        g_variant_builder_unref(id_builder);
-
     return ret;
 }