summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id>2019-09-19 17:31:05 +0800
committerꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id>2019-09-19 17:31:05 +0800
commitc1493914ab809c5fd851f23d6539a7d351bd32fc (patch)
tree8c092db13b8491fbe4c3e4e764b2020a92cf394c
parent4898094229ecee8061896280afffbe74bae717e8 (diff)
New user function uses the post content builder too
-rw-r--r--user.c120
1 files changed, 23 insertions, 97 deletions
diff --git a/user.c b/user.c
index bf08fa4..1edfe74 100644
--- a/user.c
+++ b/user.c
@@ -1,5 +1,5 @@
#include <stdlib.h>
-#include "request.h"
+#include "post.h"
#include "rtclient/user.h"
typedef struct rtclient_user rtclient_user;
@@ -29,102 +29,28 @@ void rtclient_user_new(const char *name
, bool disabled
, bool privileged)
{
- size_t length = 0;
- if (name && strcmp(name, ""))
- length += strlen("Name: \n") + strlen(name);
- if (password && strcmp(password, ""))
- length += strlen("Password: \n") + strlen(password);
- if (emailaddress && strcmp(emailaddress, ""))
- length += strlen("EmailAddress: \n") + strlen(emailaddress);
- if (realname && strcmp(realname, ""))
- length += strlen("RealName: \n") + strlen(realname);
- if (nickname && strcmp(nickname, ""))
- length += strlen("NickName: \n") + strlen(nickname);
- if (organization && strcmp(organization, ""))
- length += strlen("Organization: \n") + strlen(organization);
- if (address1 && strcmp(address1, ""))
- length += strlen("Address1: \n") + strlen(address1);
- if (address2 && strcmp(address2, ""))
- length += strlen("Address2: \n") + strlen(address2);
- if (city && strcmp(city, ""))
- length += strlen("City: \n") + strlen(city);
- if (state && strcmp(state, ""))
- length += strlen("State: \n") + strlen(state);
- if (zip && strcmp(zip, ""))
- length += strlen("Zip: \n") + strlen(zip);
- if (country && strcmp(country, ""))
- length += strlen("Country: \n") + strlen(country);
- if (homephone && strcmp(homephone, ""))
- length += strlen("HomePhone: \n") + strlen(homephone);
- if (workphone && strcmp(workphone, ""))
- length += strlen("WorkPhone: \n") + strlen(workphone);
- if (mobilephone && strcmp(mobilephone, ""))
- length += strlen("MobilePhone: \n") + strlen(mobilephone);
- if (pagerphone && strcmp(pagerphone, ""))
- length += strlen("PagerPhone: \n") + strlen(pagerphone);
- if (contactinfo && strcmp(contactinfo, ""))
- length += strlen("ContactInfo: \n") + strlen(contactinfo);
- if (comments && strcmp(comments, ""))
- length += strlen("Comments: \n") + strlen(comments);
- if (signature && strcmp(signature, ""))
- length += strlen("Signature: \n") + strlen(signature);
- if (gecos && strcmp(gecos, ""))
- length += strlen("Gecos: \n") + strlen(gecos);
-
- char content[length + strlen("Privileged: \nDisabled: \n") + 3];
- memset(content, 0, strlen(content));
- if (name && strcmp(name, ""))
- sprintf(content, "%sName: %s\n", content, name);
- if (password && strcmp(password, ""))
- sprintf(content, "%sPassword: %s\n", content, password);
- if (emailaddress && strcmp(emailaddress, ""))
- sprintf(content, "%sEmailAddress: %s\n", content, emailaddress);
- if (realname && strcmp(realname, ""))
- sprintf(content, "%sRealName: %s\n", content, realname);
- if (nickname && strcmp(nickname, ""))
- sprintf(content, "%sNickName: %s\n", content, nickname);
- if (organization && strcmp(organization, ""))
- sprintf(content, "%sOrganization: %s\n", content, organization);
- if (address1 && strcmp(address1, ""))
- sprintf(content, "%sAddress1: %s\n", content, address1);
- if (address2 && strcmp(address2, ""))
- sprintf(content, "%sAddress2: %s\n", content, address2);
- if (city && strcmp(city, ""))
- sprintf(content, "%sCity: %s\n", content, city);
- if (state && strcmp(state, ""))
- sprintf(content, "%sState: %s\n", content, state);
- if (zip && strcmp(zip, ""))
- sprintf(content, "%sZip: %s\n", content, zip);
- if (country && strcmp(country, ""))
- sprintf(content, "%sCountry: %s\n", content, country);
- if (homephone && strcmp(homephone, ""))
- sprintf(content, "%sHomePhone: %s\n", content, homephone);
- if (workphone && strcmp(workphone, ""))
- sprintf(content, "%sWorkPhone: %s\n", content, workphone);
- if (mobilephone && strcmp(mobilephone, ""))
- sprintf(content, "%sMobilePhone: %s\n", content, mobilephone);
- if (pagerphone && strcmp(pagerphone, ""))
- sprintf(content, "%sPagerPhone: %s\n", content, pagerphone);
- if (contactinfo && strcmp(contactinfo, ""))
- sprintf(content, "%sContactInfo: %s\n", content, contactinfo);
- if (comments && strcmp(comments, ""))
- sprintf(content, "%sComments: %s\n", content, comments);
- if (signature && strcmp(signature, ""))
- sprintf(content, "%sSignature: %s\n", content, signature);
- if (gecos && strcmp(gecos, ""))
- sprintf(content, "%sGecos: %s\n", content, gecos);
- sprintf(content, "%sPrivileged: %d\nDisabled: %d\n", content, privileged
- , disabled);
-
- struct curl_httppost *post, *last = NULL;
- curl_formadd(&post, &last
- , CURLFORM_COPYNAME, "content"
- , CURLFORM_PTRCONTENTS, content
- , CURLFORM_END);
- last = NULL;
- request("/REST/1.0/user/new", "", NULL, NULL, post);
- curl_formfree(post);
- post = NULL;
+ post("/REST/1.0/user/new", (const char *[]){
+ name, "Name"
+ , password, "Password"
+ , emailaddress, "EmailAddress"
+ , realname, "RealName"
+ , nickname, "NickName"
+ , organization, "Organization"
+ , address1, "Address1"
+ , address2, "Address2"
+ , city, "City"
+ , state, "State"
+ , zip, "Zip"
+ , country, "Country"
+ , homephone, "HomePhone"
+ , workphone, "WorkPhone"
+ , mobilephone, "MobilePhone"
+ , pagerphone, "PagerPhone"
+ , contactinfo, "ContactInfo"
+ , comments, "Comments"
+ , signature, "Signature"
+ , gecos, "Gecos"
+ }, 40);
}
static size_t show_callback(void *contents, size_t size, size_t nmemb