summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id>2021-07-16 23:02:24 +0800
committerꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id>2021-07-16 23:02:24 +0800
commit4482f46ee073110c7c52d73bc8a8006437eba6f2 (patch)
tree01dc7dcd827b96e873d7ee13eae22ab8fdd12eae
parent6960f565208af11828920f262d201e9db7a9aba4 (diff)
use_insurance turns out to be required
This one follows the example given for the boolean JSON value, which is written as true or false. The response is error 500, internal server error. Despite the example, it says max length is 1 in the middle part of the doc, so maybe it should be written as 1 or 0. Will be tried next.
-rw-r--r--anteraja.c10
-rw-r--r--pikul.c6
-rw-r--r--pikul.h2
-rw-r--r--pikul.i2
4 files changed, 11 insertions, 9 deletions
diff --git a/anteraja.c b/anteraja.c
index 8b78815..65f7206 100644
--- a/anteraja.c
+++ b/anteraja.c
@@ -31,9 +31,11 @@
\"items\":[\
%s\
],\
+\"use_insurance\":%s,\
\"declared_value\":%d\
}"
#define ORDER_WEIGHT 5
+#define ORDER_INSURANCE strlen("false")
#define ORDER_SUBTOTAL 9
#define ORDER_ITEM \
@@ -95,7 +97,7 @@ size_t anteraja_services_handle(const char *contents, size_t size, size_t nmemb,
void anteraja_order(const char *trx_id, const char *service, const char *sender_name,
const char *sender_phone, const char *origin, const char *sender_address,
const char *receiver_name, const char *receiver_phone, const char *destination,
- const char *receiver_address, int nitems, char **items[], double subtotal,
+ const char *receiver_address, int nitems, char **items[], _Bool insurance, double subtotal,
char **url, char **post)
{
*url = malloc(strlen(shipping.base) + strlen(ORDER_PATH) + 1);
@@ -129,11 +131,11 @@ void anteraja_order(const char *trx_id, const char *service, const char *sender_
*post = malloc(strlen(ORDER_POST) + strlen(prefix) + strlen(trx_id) + strlen(service)
+ ORDER_WEIGHT + strlen(sender_name) + strlen(sender_phone) + strlen(origin)
+ strlen(sender_address) + strlen(receiver_name) + strlen(receiver_phone)
- + strlen(destination) + strlen(receiver_address) + strlen(json) + ORDER_SUBTOTAL
- - 12 * strlen("%s") - 2 * strlen("%d") + 1);
+ + strlen(destination) + strlen(receiver_address) + strlen(json) + ORDER_INSURANCE
+ + ORDER_SUBTOTAL - 13 * strlen("%s") - 2 * strlen("%d") + 1);
sprintf(*post, ORDER_POST, prefix, trx_id, service, (int)total_weight, sender_name, sender_phone,
origin, sender_address, receiver_name, receiver_phone, destination,
- receiver_address, json, (int)subtotal);
+ receiver_address, json, insurance ? "true" : "false", (int)subtotal);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, *post);
}
diff --git a/pikul.c b/pikul.c
index d299cbe..a08b101 100644
--- a/pikul.c
+++ b/pikul.c
@@ -15,7 +15,7 @@ extern void anteraja_services(const char *, const char *, double, char **, char
extern size_t anteraja_services_handle(const char *, size_t, size_t, struct pikul_services **);
extern void anteraja_order(const char *, const char *, const char *, const char *, const char *,
const char *, const char *, const char *, const char *, const char *, int,
- char **[], double, char **, char **);
+ char **[], _Bool, double, char **, char **);
extern size_t anteraja_order_handle(const char *, size_t size, size_t nmemb, char **);
extern void anteraja_cleanup();
@@ -115,7 +115,7 @@ double pikul_cost(const char *origin, const char *destination, double weight, co
char *pikul_order(const char *trx_id, const char *service, const char *sender_name,
const char *sender_phone, const char *origin, const char *sender_address,
const char *receiver_name, const char *receiver_phone, const char *destination,
- const char *receiver_address, int nitems, char **items[], double subtotal)
+ const char *receiver_address, int nitems, char **items[], _Bool insurance, double subtotal)
{
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &waybill);
char *url;
@@ -125,7 +125,7 @@ char *pikul_order(const char *trx_id, const char *service, const char *sender_na
case PIKUL_ANTERAJA:
anteraja_order(trx_id, service, sender_name, sender_phone, origin, sender_address,
receiver_name, receiver_phone, destination, receiver_address,
- nitems, items, subtotal, &url, &post);
+ nitems, items, insurance, subtotal, &url, &post);
handler = anteraja_order_handle;
break;
default:
diff --git a/pikul.h b/pikul.h
index 0bb4e23..e2c6331 100644
--- a/pikul.h
+++ b/pikul.h
@@ -28,7 +28,7 @@ double pikul_cost(const char *origin, const char *destination, double weight, co
char *pikul_order(const char *trx_id, const char *service, const char *sender_name,
const char *sender_phone, const char *origin, const char *sender_address,
const char *receiver_name, const char *receiver_phone, const char *destination,
- const char *receiver_address, int nitems, char **items[], double subtotal);
+ const char *receiver_address, int nitems, char **items[], _Bool insurance, double subtotal);
void pikul_cleanup();
#ifdef __cplusplus
diff --git a/pikul.i b/pikul.i
index 6a0882b..05b45c9 100644
--- a/pikul.i
+++ b/pikul.i
@@ -24,5 +24,5 @@ double pikul_cost(const char *origin, const char *destination, double weight, co
char *pikul_order(const char *trx_id, const char *service, const char *sender_name,
const char *sender_phone, const char *origin, const char *sender_address,
const char *receiver_name, const char *receiver_phone, const char *destination,
- const char *receiver_address, int nitems, char **items[], double subtotal);
+ const char *receiver_address, int nitems, char **items[], _Bool insurance, double subtotal);
void pikul_cleanup();