From 953ed14c5c94496748c16ff6c942721a7f6e92fc Mon Sep 17 00:00:00 2001 From: Joni Kokko Date: Wed, 10 Dec 2008 14:41:50 +0200 Subject: [PATCH] created function which brings theme_id from database with name and date --- database/php/irreco_webdb_database.php | 23 ++++++++++++++++++ database/php/irreco_webdb_server.php | 17 +++++++++++++ irreco/src/webdb/irreco_webdb_client.c | 44 ++++++++++++++++++++++++++++++++++ irreco/src/webdb/irreco_webdb_client.h | 4 ++++ 4 files changed, 88 insertions(+) diff --git a/database/php/irreco_webdb_database.php b/database/php/irreco_webdb_database.php index 0718252d..b0ad63ee 100644 --- a/database/php/irreco_webdb_database.php +++ b/database/php/irreco_webdb_database.php @@ -752,6 +752,29 @@ class IrrecoWebdbDatabase } /** + * Get theme_id by name and date. + * + * Returns theme_id or 0 if theme does not exists. + * @param string name Name for theme. + * @param string date theme creation date. + * @return int + */ + function getThemeIdByNameAndDate($name, $date) + { + $result = $this->query( + 'SELECT id AS id FROM theme '. + 'WHERE name = '.$this->db->quote($name, 'text').' '. + 'AND uploaded = '.$this->db->quote($date, 'text').' '. + 'AND downloadable = 1 '); + $rows = $result->fetchAll(); + $id = 0; + if ($rows != NULL) { + $id = intval($rows[0]->id); + } + return $id; + } + + /** * Add button to Theme * *returns button_id or 0 diff --git a/database/php/irreco_webdb_server.php b/database/php/irreco_webdb_server.php index 443eea53..57794030 100644 --- a/database/php/irreco_webdb_server.php +++ b/database/php/irreco_webdb_server.php @@ -676,6 +676,23 @@ class IrrecoWebdbServer } /** + * Get theme_id by name and date. + * + * Returns theme_id or 0 if theme does not exists. + * @param string name Name for theme. + * @param string date theme creation date. + * @return int + */ + function getThemeIdByNameAndDate($name, $date) + { + IrrecoLog::$server->log('XML-RPC getThemeIdByNameAndDate'); + $id = $this->database->getThemeIdByNameAndDate($name, $date); + + IrrecoLog::$server->log("Theme_id: ". $id); + return $id; + } + + /** * Add button to Theme * * Returns button_id diff --git a/irreco/src/webdb/irreco_webdb_client.c b/irreco/src/webdb/irreco_webdb_client.c index 757823ee..8f869ad8 100644 --- a/irreco/src/webdb/irreco_webdb_client.c +++ b/irreco/src/webdb/irreco_webdb_client.c @@ -1365,6 +1365,50 @@ gchar *irreco_webdb_client_get_theme_date_by_id(IrrecoWebdbClient *self, g_object_unref (response); IRRECO_RETURN_PTR(date); } + +gint irreco_webdb_client_get_theme_id_by_name_and_date(IrrecoWebdbClient *self, + const gchar *name, + const gchar *date) +{ + SoupXmlrpcMessage *msg; + SoupXmlrpcResponse *response; + SoupXmlrpcValue *value; + gint id = 0; + + IRRECO_ENTER + + msg = soup_xmlrpc_message_new (IRRECO_WEBDB_URL); + soup_xmlrpc_message_start_call (msg, "getThemeIdByNameAndDate"); + soup_xmlrpc_message_start_param (msg); + soup_xmlrpc_message_write_string(msg, name); + soup_xmlrpc_message_write_string(msg, date); + soup_xmlrpc_message_end_param (msg); + soup_xmlrpc_message_end_call (msg); + + irreco_webdb_client_reset_env(self); + + response = (SoupXmlrpcResponse*)do_xmlrpc(msg, + SOUP_XMLRPC_VALUE_TYPE_INT, + self); + + /* Check response exists */ + if(!response) { + IRRECO_DEBUG(" No response, failed at do_xmlrpc\n"); + goto end; + } + + value = soup_xmlrpc_response_get_value(response); + + /* Try to get integer out of value */ + if(!soup_xmlrpc_value_get_int(value, (glong *) &id)) { + id = 0; + } + + end: + g_object_unref (response); + IRRECO_RETURN_INT(id); +} + gint irreco_webdb_client_add_bg_to_theme(IrrecoWebdbClient *self, const gchar *name, const gchar *image_hash, diff --git a/irreco/src/webdb/irreco_webdb_client.h b/irreco/src/webdb/irreco_webdb_client.h index 7520984a..a41f0659 100644 --- a/irreco/src/webdb/irreco_webdb_client.h +++ b/irreco/src/webdb/irreco_webdb_client.h @@ -172,6 +172,10 @@ gboolean irreco_webdb_client_get_theme_versions_by_name(IrrecoWebdbClient *self, gchar *irreco_webdb_client_get_theme_date_by_id(IrrecoWebdbClient *self, gint theme_id); +gint irreco_webdb_client_get_theme_id_by_name_and_date(IrrecoWebdbClient *self, + const gchar *name, + const gchar *date); + gint irreco_webdb_client_add_bg_to_theme(IrrecoWebdbClient *self, const gchar *name, const gchar *image_hash, -- 2.11.4.GIT