summaryrefslogtreecommitdiff
path: root/ticket.c
diff options
context:
space:
mode:
authorꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id>2019-09-19 16:43:18 +0800
committerꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id>2019-09-19 16:43:18 +0800
commit4898094229ecee8061896280afffbe74bae717e8 (patch)
tree55e8afe517123877846e8e9ff8edfa21e99be307 /ticket.c
parenta88e6d47c5e51d09415e450ece221fb7665f34f6 (diff)
Post content builder inline function
Diffstat (limited to 'ticket.c')
-rw-r--r--ticket.c89
1 files changed, 18 insertions, 71 deletions
diff --git a/ticket.c b/ticket.c
index 1d42c9a..0493656 100644
--- a/ticket.c
+++ b/ticket.c
@@ -1,5 +1,5 @@
#include <stdlib.h>
-#include "request.h"
+#include "post.h"
#include "rtclient/ticket.h"
typedef struct rtclient_ticketlist rtclient_ticketlist;
@@ -19,76 +19,23 @@ void rtclient_ticket_new(const char *queue
, const char *due
, const char *text)
{
- size_t length = strlen("id: ticket/new\n");
- if (queue && strcmp(queue, ""))
- length += strlen("Queue: \n") + strlen(queue);
- if (requestor && strcmp(requestor, ""))
- length += strlen("Requestor: \n") + strlen(requestor);
- if (subject && strcmp(subject, ""))
- length += strlen("Subject: \n") + strlen(subject);
- if (cc && strcmp(cc, ""))
- length += strlen("Cc: \n") + strlen(cc);
- if (admincc && strcmp(admincc, ""))
- length += strlen("AdminCc: \n") + strlen(admincc);
- if (owner && strcmp(owner, ""))
- length += strlen("Owner: \n") + strlen(owner);
- if (status && strcmp(status, ""))
- length += strlen("Status: \n") + strlen(status);
- if (priority && strcmp(priority, ""))
- length += strlen("Priority: \n") + strlen(priority);
- if (initialpriority && strcmp(initialpriority, ""))
- length += strlen("InitialPriority: \n") + strlen(initialpriority);
- if (finalpriority && strcmp(finalpriority, ""))
- length += strlen("FinalPriority: \n") + strlen(finalpriority);
- if (timeestimated && strcmp(timeestimated, ""))
- length += strlen("TimeEstimated: \n") + strlen(timeestimated);
- if (starts && strcmp(starts, ""))
- length += strlen("Starts: \n") + strlen(starts);
- if (due && strcmp(due, ""))
- length += strlen("Due: \n") + strlen(due);
- if (text && strcmp(text, ""))
- length += strlen("Text: \n") + strlen(text);
-
- char content[length + 1];
- strcpy(content, "id: ticket/new\n");
- if (queue && strcmp(queue, ""))
- sprintf(content, "%sQueue: %s\n", content, queue);
- if (requestor && strcmp(requestor, ""))
- sprintf(content, "%sRequestor: %s\n", content, requestor);
- if (subject && strcmp(subject, ""))
- sprintf(content, "%sSubject: %s\n", content, subject);
- if (cc && strcmp(cc, ""))
- sprintf(content, "%sCc: %s\n", content, cc);
- if (admincc && strcmp(admincc, ""))
- sprintf(content, "%sAdminCc: %s\n", content, admincc);
- if (owner && strcmp(owner, ""))
- sprintf(content, "%sOwner: %s\n", content, owner);
- if (status && strcmp(status, ""))
- sprintf(content, "%sStatus: %s\n", content, status);
- if (priority && strcmp(priority, ""))
- sprintf(content, "%sPriority: %s\n", content, priority);
- if (initialpriority && strcmp(initialpriority, ""))
- sprintf(content, "%sInitialPriority: %s\n", content, initialpriority);
- if (finalpriority && strcmp(finalpriority, ""))
- sprintf(content, "%sFinalPriority: %s\n", content, finalpriority);
- if (timeestimated && strcmp(timeestimated, ""))
- sprintf(content, "%sTimeEstimated: %s\n", content, timeestimated);
- if (starts && strcmp(starts, ""))
- sprintf(content, "%sStarts: %s\n", content, starts);
- if (due && strcmp(due, ""))
- sprintf(content, "%sDue: %s\n", content, due);
- if (text && strcmp(text, ""))
- sprintf(content, "%sText: %s\n", content, text);
-
- struct curl_httppost *post, *last = NULL;
- curl_formadd(&post, &last
- , CURLFORM_COPYNAME, "content"
- , CURLFORM_PTRCONTENTS, content
- , CURLFORM_END);
- last = NULL;
- request("/REST/1.0/ticket/new", "", NULL, NULL, post);
- curl_formfree(post);
- post = NULL;
+ post("/REST/1.0/ticket/new", (const char *[]){
+ "ticket/new", "id"
+ , queue, "Queue"
+ , requestor, "Requestor"
+ , subject, "Subject"
+ , cc, "Cc"
+ , admincc, "AdminCc"
+ , owner, "Owner"
+ , status, "Status"
+ , priority, "Priority"
+ , initialpriority, "InitialPriority"
+ , finalpriority, "FinalPriority"
+ , timeestimated, "TimeEstimated"
+ , starts, "Starts"
+ , due, "Due"
+ , text, "Text"
+ }, 28);
}
static size_t search_callback(void *contents, size_t size, size_t nmemb