#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "destlib.h"

int is_airport_code(char *str)
{
    if (strlen(str) != 3) return 0;
    if (str[0] < 'A' || str[0] > 'Z') return 0;
    if (str[1] < 'A' || str[1] > 'Z') return 0;
    if (str[2] < 'A' || str[2] > 'Z') return 0;
    return 1;
}

int main(int argc, char **argv)
{
    struct dest *dests;
    if (argc != 3)
    {
        int i;
        error("%d args.\n", argc);
        for (i = 0; i < argc; i++)
        {
            error("Arg %d: %s\n", i, argv[i]);
        }
        quit("SYNTAX: getdests departure_airport_code arrival_airport_code");
    }

    if (!is_airport_code(argv[1])) printf("Invalid airport code: %s\n", argv[1]);
    if (!is_airport_code(argv[2])) printf("Invalid airport code: %s\n", argv[2]);

    dests = get_dests(argv[2]);

    #define CGI_NAME "getdestscgi"
    if (strlen(argv[0]) >= strlen(CGI_NAME) &&
        !strcmp(argv[0] + strlen(argv[0]) - strlen(CGI_NAME), CGI_NAME))
    {
        printf("Content-Type: text/plain\n\n");
    }

    while (dests->code[0] != '\0')
    {
        printf("%.3s\n", dests->code);
        dests++;
    }
    return 0;
}
