#include #include #include #include #include "include/parser.h" #include "include/handler.h" using namespace std; void show_usage() { cout << "usage:\n" "these env vars have to be set: FRONTEND_API_KEY, DB_URL" "tickets create <description>\n" "tickets list [-status <status>]\n" "tickets detail <id>" << endl; } #define show_usage_and_die() show_usage(); return 1; int parse_args(Dao *dao, int argc, char *argv[]) { if (argc == 1) { // not enough args show_usage_and_die(); } if (strcmp(argv[1], "create") == 0) { // creating a ticket if (argc != 4) { show_usage_and_die(); } return handle_create(dao, argv[2], argv[3]); // title and description } if (strcmp(argv[1], "list") == 0) { // listing tickets (optional filter by status) if (argc != 2 || argc != 4) { show_usage_and_die(); } if (argc == 4) { if (strcmp(argv[2], "-status") == 0) { return handle_list(dao, argv[3]); // the status text } } // now we know that argc == 2 // -> handle list (get all tickets) return handle_list(dao); } if (strcmp(argv[1], "detail") == 0) { if (argc != 3) { show_usage_and_die(); } int ticket_id = atoi(argv[2]); return handle_detail(dao, ticket_id); // ticket id } return 0; }