diff options
Diffstat (limited to 'sicepat.c')
-rw-r--r-- | sicepat.c | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/sicepat.c b/sicepat.c new file mode 100644 index 0000000..549bdfc --- /dev/null +++ b/sicepat.c @@ -0,0 +1,85 @@ +#include <stdlib.h> +#include <string.h> +#include "private.h" + +#define BASE "http://api.sicepat.com/customer/" +#define ORIGINS "origin" +#define DESTINATIONS "destination" + +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_origins() +{ + struct shipping *shipping = shipping_list[PIKUL_SICEPAT]; + shipping->url = malloc(strlen(BASE) + strlen(ORIGINS) + 1); + sprintf(shipping->url, "%s%s", BASE, ORIGINS); + static const char *trail[] = { + "sicepat", + "results", + NULL + }; + shipping->trail = trail; + static const char *attributes[] = { + "origin_code", + NULL, + "origin_name", + NULL + }; + return attributes; +} + +const char **sicepat_destinations() +{ + struct shipping *shipping = shipping_list[PIKUL_SICEPAT]; + shipping->url = malloc(strlen(BASE) + strlen(DESTINATIONS) + 1); + sprintf(shipping->url, "%s%s", BASE, DESTINATIONS); + static const char *trail[] = { + "sicepat", + "results", + NULL + }; + shipping->trail = trail; + static const char *attributes[] = { + "destination_code", + "subdistrict", + "city", + "province" + }; + return attributes; +} + +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; +} |