From 8cff9b9d5a49e4c1a9364fd55f4887700ef2a4ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=20=EA=A6=AB=EA=A6=B6=20=EA=A6=8F=EA=A7=80?= =?UTF-8?q?=EA=A6=A6=EA=A6=BF=20=EA=A6=A7=20=EA=A6=AE=20=EA=A6=91=20?= =?UTF-8?q?=EA=A6=A9=20=EA=A6=AD=EA=A7=80?= Date: Wed, 2 Oct 2019 14:35:07 +0800 Subject: There are only 2 formats for ticket history return --- rtclient/ticket.h | 11 +++-------- 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 + 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 diff --git a/ticket.c b/ticket.c index 795e750..31a208f 100644 --- a/ticket.c +++ b/ticket.c @@ -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) -- cgit v1.2.3