summaryrefslogtreecommitdiff
path: root/sicepat.c
blob: 9dd3d197e7b506252c1b843f718f9d944b544827 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <stdlib.h>
#include <string.h>
#include "private.h"

#define BASE "http://api.sicepat.com/customer/"

const char **sicepat_init(char *provisions[])
{
	struct shipping *shipping = shipping_list[PIKUL_SICEPAT];
	shipping->base = malloc(strlen(BASE) + 1);
	strcpy(shipping->base, BASE);
	static const char *status_trail[] = {
		"sicepat",
		"status",
		"code",
		NULL
	};
	shipping->status_trail = status_trail;
	static const char *fields[] = { "api-key", NULL };
	return fields;
}

const char **sicepat_services(const char *origin, const char *destination, double weight)
{
	struct shipping *shipping = shipping_list[PIKUL_SICEPAT];
	shipping->url = malloc(strlen(shipping->base) + strlen("tariff?origin=") + strlen(origin)
			+ strlen("&destination=") + strlen(destination) + strlen("&weight=") + 9);
	sprintf(shipping->url, "%stariff?origin=%s&destination=%s&weight=%f", shipping->base, origin,
			destination, weight);
	static const char *trail[] = {
		"sicepat",
		"results",
		NULL
	};
	shipping->trail = trail;
       	static const char *attributes[] = {
		"service",
		"description",
		"etd",
		"tariff"
	};
	return attributes;
}