summaryrefslogtreecommitdiff
path: root/anteraja.c
diff options
context:
space:
mode:
Diffstat (limited to 'anteraja.c')
-rw-r--r--anteraja.c31
1 files changed, 17 insertions, 14 deletions
diff --git a/anteraja.c b/anteraja.c
index a2e4562..3706f2e 100644
--- a/anteraja.c
+++ b/anteraja.c
@@ -57,33 +57,35 @@ static char *prefix = NULL;
const char **anteraja_init(char *provisions[])
{
enum { ACCESS_KEY_ID, SECRET_ACCESS_KEY, BASE_PATH, PREFIX };
- shipping.base = malloc(strlen(provisions[BASE_PATH]) + 1);
- strcpy(shipping.base, provisions[BASE_PATH]);
+ struct shipping *shipping = shipping_list[PIKUL_ANTERAJA];
+ shipping->base = malloc(strlen(provisions[BASE_PATH]) + 1);
+ strcpy(shipping->base, provisions[BASE_PATH]);
if (provisions[PREFIX]) {
prefix = malloc(strlen(provisions[PREFIX]) + 1);
strcpy(prefix, provisions[PREFIX]);
}
- shipping.headers = curl_slist_append(shipping.headers, "Content-Type:application/json");
+ shipping->headers = curl_slist_append(shipping->headers, "Content-Type:application/json");
static const char *status_trail[] = { "status", NULL };
- shipping.status_trail = status_trail;
+ shipping->status_trail = status_trail;
static const char *fields[] = { "access-key-id", "secret-access-key", NULL };
return fields;
}
const char **anteraja_services(const char *origin, const char *destination, double weight)
{
- shipping.url = malloc(strlen(shipping.base) + strlen(SERVICES_PATH) + 1);
- sprintf(shipping.url, "%s%s", shipping.base, SERVICES_PATH);
- shipping.post = malloc(strlen(SERVICES_POST) + strlen(origin) + strlen(destination)
+ struct shipping *shipping = shipping_list[PIKUL_ANTERAJA];
+ shipping->url = malloc(strlen(shipping->base) + strlen(SERVICES_PATH) + 1);
+ sprintf(shipping->url, "%s%s", shipping->base, SERVICES_PATH);
+ shipping->post = malloc(strlen(SERVICES_POST) + strlen(origin) + strlen(destination)
+ SERVICES_WEIGHT - 2 * strlen("%s") - strlen("%d") + 1);
- sprintf(shipping.post, SERVICES_POST, origin, destination,
+ sprintf(shipping->post, SERVICES_POST, origin, destination,
weight < 1.0 ? 1000 : (int)weight * 1000);
static const char *trail[] = {
"content",
"services",
NULL
};
- shipping.trail = trail;
+ shipping->trail = trail;
static const char *attributes[] = {
"product_code",
"product_name",
@@ -99,8 +101,9 @@ void anteraja_order(const char *order_number, const char *service, const char *s
const char *destination, const char *receiver_address, const char *receiver_postal,
int nitems, char **items[], double subtotal)
{
- shipping.url = malloc(strlen(shipping.base) + strlen(ORDER_PATH) + 1);
- sprintf(shipping.url, "%s%s", shipping.base, ORDER_PATH);
+ struct shipping *shipping = shipping_list[PIKUL_ANTERAJA];
+ shipping->url = malloc(strlen(shipping->base) + strlen(ORDER_PATH) + 1);
+ sprintf(shipping->url, "%s%s", shipping->base, ORDER_PATH);
enum { SKU, QUANTITY, DESCRIPTION, PRICE, WEIGHT };
char *json = NULL;
double total_weight = .0;
@@ -132,13 +135,13 @@ void anteraja_order(const char *order_number, const char *service, const char *s
else
json[strlen(json)] = '\0';
}
- shipping.post = malloc(strlen(ORDER_POST) + strlen(prefix) + strlen(order_number) + strlen(service)
+ shipping->post = malloc(strlen(ORDER_POST) + strlen(prefix) + strlen(order_number) + strlen(service)
+ ORDER_WEIGHT + strlen(sender_name) + strlen(sender_phone) + strlen(origin)
+ strlen(sender_address) + strlen(sender_postal) + strlen(receiver_name)
+ strlen(receiver_phone) + strlen(destination) + strlen(receiver_address)
+ strlen(receiver_postal) + strlen(json) + ORDER_INSURANCE + ORDER_SUBTOTAL
- 15 * strlen("%s") - 2 * strlen("%d") + 1);
- sprintf(shipping.post, ORDER_POST, prefix, order_number, service,
+ sprintf(shipping->post, ORDER_POST, prefix, order_number, service,
total_weight < 1000.0 ? 1000 : (int)total_weight, sender_name, sender_phone,
origin, sender_address, sender_postal, receiver_name, receiver_phone, destination,
receiver_address, receiver_postal, json, total_weight < 1000.0 ? "true" : "false",
@@ -148,7 +151,7 @@ void anteraja_order(const char *order_number, const char *service, const char *s
"waybill_no",
NULL
};
- shipping.trail = trail;
+ shipping->trail = trail;
}
void anteraja_cleanup()