diff options
-rw-r--r-- | rtclient/ticket.h | 11 | ||||
-rw-r--r-- | ticket.c | 38 |
2 files changed, 11 insertions, 38 deletions
diff --git a/rtclient/ticket.h b/rtclient/ticket.h index c778170..88251e1 100644 --- a/rtclient/ticket.h +++ b/rtclient/ticket.h @@ -1,17 +1,13 @@ #ifndef RTCLIENT_TICKET_H #define RTCLIENT_TICKET_H +#include <stdbool.h> + struct rtclient_ticket { unsigned int id; char *subject; }; -enum rtclient_ticket_format { - RTCLIENT_TICKET_FORMAT_S = 0 - , RTCLIENT_TICKET_FORMAT_I - , RTCLIENT_TICKET_FORMAT_L -}; - enum rtclient_ticket_history_type { RTCLIENT_TICKET_HISTORY_TYPE_UNKNOWN = 0 , RTCLIENT_TICKET_HISTORY_TYPE_CREATE @@ -77,8 +73,7 @@ extern "C" { , const char *due , const char *text); void rtclient_ticket_history(struct rtclient_ticket_history_list **listptr - , unsigned int id - , enum rtclient_ticket_format result_format); + , unsigned int id, bool long_format); void rtclient_ticket_history_free (struct rtclient_ticket_history *history); void rtclient_ticket_history_list_free @@ -40,18 +40,7 @@ void rtclient_ticket_new(const char *queue }, 28); } -static size_t history_i_handler(void *contents, size_t size, size_t nmemb - , void *writedata) -{ - size_t realsize = size * nmemb; - char response[realsize + 1]; - memcpy(response, contents, realsize); - response[realsize] = '\0'; - - return realsize; -} - -static size_t history_s_handler(void *contents, size_t size, size_t nmemb +static size_t history_handler(void *contents, size_t size, size_t nmemb , void *writedata) { size_t realsize = size * nmemb; @@ -294,27 +283,16 @@ static size_t history_l_handler(void *contents, size_t size, size_t nmemb } void rtclient_ticket_history(rtclient_ticket_history_list **listptr - , unsigned int id - , enum rtclient_ticket_format result_format) + , unsigned int id, bool long_format) { *listptr = malloc(sizeof(rtclient_ticket_history_list)); (*listptr)->length = 0; - size_t (*handler)(void *, size_t, size_t, void *) = history_s_handler; - char format = 's'; - switch (result_format) { - case RTCLIENT_TICKET_FORMAT_I: - handler = history_i_handler; - format = 'i'; - break; - case RTCLIENT_TICKET_FORMAT_L: - handler = history_l_handler; - format = 'l'; - break; - default: - break; - } - request(handler, (void *)listptr, NULL, "%s%u%s%c", "REST/1.0/ticket/", id - , "/history?format=", format); + if (long_format) + request(history_l_handler, (void *)listptr, NULL, "%s%u%s" + , "REST/1.0/ticket/", id, "/history?format=l"); + else + request(history_handler, (void *)listptr, NULL, "%s%u%s" + , "REST/1.0/ticket/", id, "/history"); } void rtclient_ticket_history_free(struct rtclient_ticket_history *history) |