features/jira/routes.php

Summary

Maintainability
A
2 hrs
Test Coverage
<?php

$app->get('/events/:id/tickets', function($id) use ($app) {
    header("Content-Type: application/json");
    $tickets = Jira::get_jira_tickets_for_event($id);
    if ($tickets["status"] == Jira::ERROR) {
        $app->response->status(404);
        return;
    } else {
        $tickets = Jira::merge_jira_tickets($tickets["values"]);
        echo json_encode($tickets);
    }

});
$app->post('/events/:id/tickets', function($id) use ($app) {
    header("Content-Type: application/json");
    $curl = new CurlClient();
    $jira = new JiraClient($curl);
    $tickets = explode(',', $app->request()->post('tickets'));
    $tickets = array_map('trim', $tickets);
    $tickets = array_keys($jira->getJiraTickets($tickets));
    $res = Jira::save_jira_tickets_for_event($id, $tickets);
    if ($res["status"] == Jira::ERROR) {
        $app->response->status(400);
    } else {
        $app->response->status(201);
        $tickets = Jira::get_jira_tickets_for_event($id);
        if ($tickets["status"] == Jira::ERROR) {
            $app->response->status(404);
            return;
        } else {
            $tickets = Jira::merge_jira_tickets($tickets["values"]);
            echo json_encode($tickets);
        }
    }

});
$app->get('/events/:id/tickets/:ticket', function($id, $ticket) use ($app) {
    header("Content-Type: application/json");
    $tick = Jira::get_ticket($ticket);
    if ($tick["status"] == Jira::ERROR) {
        $app->response->status(404);
        return;
    } else {
        echo json_encode($tick["value"]);
    }

});
$app->delete('/events/:id/tickets/:ticket', function($id, $ticket) use ($app) {
    header("Content-Type: application/json");
    $res = Jira::delete_ticket($ticket);
    if ($res["status"] == Jira::ERROR) {
        $app->response->status(500);
        echo json_encode($res["error"]);
    } else {
        $app->response->status(204);
    }

});