/**
  * Parses and constructs respective response.
  * @param JSONObject $response Response object;
  * @return Response
  */
 private function getResponse($response)
 {
     switch ($response->type) {
         case Response::SUCCESS:
             return new SuccessResponse($response->message, $response->data);
         case Response::WARNING:
             return new WarningResponse($response->message, $response->data);
         case Response::ERROR:
             return new ErrorResponse($response->message, $response->data);
         case Response::FAILED:
             return new FailedResponse($response->message, $response->data);
         case Response::EXCEPTION:
             $setExceptionTrace = false;
             $data = array('exception_message' => $response->data->exception_message, 'exception_line' => $response->data->exception_line, 'exception_file' => $response->data->exception_file);
             if (isset($response->data->exception_trace)) {
                 $setExceptionTrace = true;
                 $data['exception_trace'] = $response->data->exception_trace;
             }
             $data = arrayToJSONObject($data);
             $ex = new Exception($data->exception_message, $setExceptionTrace);
             return new ExceptionResponse($ex);
         default:
             return NULL;
     }
 }
<?php

require_once __DIR__ . '/../../../carbon/core.ini.php';
require_once __DIR__ . '/../../../carbon/requests/requests.inc.php';
require_once __DIR__ . '/../../../carbon/responses/responses.inc.php';
require_once __DIR__ . '/../../../carbon/formats/formats.inc.php';
require_once __DIR__ . '/../../../src/restaurant/restaurant.php';
try {
    $db = $config->getDefaultDatabase()->open();
    $relUserPlace = ['user_id' => Request::REQUIRED, 'restaurant_id' => Request::REQUIRED];
    $request = new StandardRequest();
    $relUserPlace = $request->extract($relUserPlace);
    $relUserPlace = arrayToJSONObject($relUserPlace);
    $response = deleteUserPlace($db, $relUserPlace->user_id, $relUserPlace->restaurant_id);
} catch (Exception $ex) {
    $response = new ExceptionResponse($ex);
}
$response = new JSONPrettyFormat($response);
$response->present();
 /**
  * Converts the Response to a JSONObject.
  * @return Object Converted response.
  */
 public function convertToJSONObject()
 {
     $data = ['type' => $this->type, 'message' => $this->message, 'data' => $this->data];
     return arrayToJSONObject($data);
 }
<?php

require_once __DIR__ . '/../../../carbon/core.ini.php';
require_once __DIR__ . '/../../../carbon/requests/requests.inc.php';
require_once __DIR__ . '/../../../carbon/responses/responses.inc.php';
require_once __DIR__ . '/../../../carbon/formats/formats.inc.php';
require_once __DIR__ . '/../../../src/restaurant/restaurant.php';
try {
    $db = $config->getDefaultDatabase()->open();
    $deliveryInfo = ['delivery_man_id' => Request::REQUIRED, 'lattitude' => Request::REQUIRED, 'longitude' => Request::REQUIRED];
    $request = new StandardRequest();
    $deliveryInfo = $request->extract($deliveryInfo);
    $deliveryInfo = arrayToJSONObject($deliveryInfo);
    $response = submitGPS($db, $deliveryInfo);
} catch (Exception $ex) {
    $response = new ExceptionResponse($ex);
}
$response = new JSONPrettyFormat($response);
$response->present();
<?php

require_once __DIR__ . '/../../../carbon/core.ini.php';
require_once __DIR__ . '/../../../carbon/requests/requests.inc.php';
require_once __DIR__ . '/../../../carbon/responses/responses.inc.php';
require_once __DIR__ . '/../../../carbon/formats/formats.inc.php';
require_once __DIR__ . '/../../../src/account/account.php';
try {
    $db = $config->getDefaultDatabase()->open();
    $user = ['fullname' => Request::REQUIRED, 'email' => Request::REQUIRED, 'type' => Request::REQUIRED, 'gcmregid' => Request::REQUIRED];
    $request = new StandardRequest();
    $user = $request->extract($user);
    $user = arrayToJSONObject($user);
    $response = createUser($db, $user);
} catch (Exception $ex) {
    $response = new ExceptionResponse($ex);
}
$response = new JSONPrettyFormat($response);
$response->present();
/**
 * Credits to StackOverflow user: user2247350
 */
function getBrowserOS()
{
    $server = array('HTTP_USER_AGENT' => Request::REQUIRED);
    $request = new ServerRequest();
    $server = $request->extract($server);
    $server = arrayToJSONObject($server);
    $userAgent = $server->HTTP_USER_AGENT;
    $browser = "Unknown Browser";
    $OS = "Unknown OS Platform";
    // Get the Operating System Platform
    if (preg_match('/windows|win32/i', $userAgent)) {
        $OS = 'Windows';
        if (preg_match('/windows nt 6.2/i', $userAgent)) {
            $OS .= " 8";
        } else {
            if (preg_match('/windows nt 6.1/i', $userAgent)) {
                $OS .= " 7";
            } else {
                if (preg_match('/windows nt 6.0/i', $userAgent)) {
                    $OS .= " Vista";
                } else {
                    if (preg_match('/windows nt 5.2/i', $userAgent)) {
                        $OS .= " Server 2003/XP x64";
                    } else {
                        if (preg_match('/windows nt 5.1/i', $userAgent) || preg_match('/windows xp/i', $userAgent)) {
                            $OS .= " XP";
                        } else {
                            if (preg_match('/windows nt 5.0/i', $userAgent)) {
                                $OS .= " 2000";
                            } else {
                                if (preg_match('/windows me/i', $userAgent)) {
                                    $OS .= " ME";
                                } else {
                                    if (preg_match('/win98/i', $userAgent)) {
                                        $OS .= " 98";
                                    } else {
                                        if (preg_match('/win95/i', $userAgent)) {
                                            $OS .= " 95";
                                        } else {
                                            if (preg_match('/win16/i', $userAgent)) {
                                                $OS .= " 3.11";
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    } else {
        if (preg_match('/macintosh|mac os x/i', $userAgent)) {
            $OS = 'Mac';
            if (preg_match('/macintosh/i', $userAgent)) {
                $OS .= " OS X";
            } else {
                if (preg_match('/mac_powerpc/i', $userAgent)) {
                    $OS .= " OS 9";
                }
            }
        } else {
            if (preg_match('/linux/i', $userAgent)) {
                $OS = "Linux";
            }
        }
    }
    // Override if matched
    if (preg_match('/iphone/i', $userAgent)) {
        $OS = "iPhone";
    } else {
        if (preg_match('/android/i', $userAgent)) {
            $OS = "Android";
        } else {
            if (preg_match('/blackberry/i', $userAgent)) {
                $OS = "BlackBerry";
            } else {
                if (preg_match('/webos/i', $userAgent)) {
                    $OS = "Mobile";
                } else {
                    if (preg_match('/ipod/i', $userAgent)) {
                        $OS = "iPod";
                    } else {
                        if (preg_match('/ipad/i', $userAgent)) {
                            $OS = "iPad";
                        }
                    }
                }
            }
        }
    }
    // Get the Browser
    if (preg_match('/msie/i', $userAgent) && !preg_match('/opera/i', $userAgent)) {
        $browser = "Internet Explorer";
    } else {
        if (preg_match('/firefox/i', $userAgent)) {
            $browser = "Firefox";
        } else {
            if (preg_match('/chrome/i', $userAgent)) {
                $browser = "Chrome";
            } else {
                if (preg_match('/safari/i', $userAgent)) {
                    $browser = "Safari";
                } else {
                    if (preg_match('/opera/i', $userAgent)) {
                        $browser = "Opera";
                    } else {
                        if (preg_match('/netscape/i', $userAgent)) {
                            $browser = "Netscape";
                        }
                    }
                }
            }
        }
    }
    // Override if matched
    if ($OS == "iPhone" || $OS == "Android" || $OS == "BlackBerry" || $OS == "Mobile" || $OS == "iPod" || $OS == "iPad") {
        if (preg_match('/mobile/i', $userAgent)) {
            $browser = "Handheld Browser";
        }
    }
    // Create a Data Array
    $returnData = ['browser' => $browser, 'OS' => $OS];
    return arrayToJSONObject($returnData);
}
<?php

require_once __DIR__ . '/../../../carbon/core.ini.php';
require_once __DIR__ . '/../../../carbon/requests/requests.inc.php';
require_once __DIR__ . '/../../../carbon/responses/responses.inc.php';
require_once __DIR__ . '/../../../carbon/formats/formats.inc.php';
require_once __DIR__ . '/../../../src/restaurant/restaurant.php';
header('Content-Type: text/html; charset=utf-8');
try {
    $db = $config->getDefaultDatabase()->open();
    $restaurant = ['id' => Request::REQUIRED];
    $request = new StandardRequest();
    $restaurant = $request->extract($restaurant);
    $restaurant = arrayToJSONObject($restaurant);
    $response = getRestaurantById($db, $restaurant->id);
} catch (Exception $ex) {
    $response = new ExceptionResponse($ex);
}
$response = new JSONPrettyFormat($response);
$response->present();
<?php

require_once __DIR__ . '/../../../carbon/core.ini.php';
require_once __DIR__ . '/../../../carbon/requests/requests.inc.php';
require_once __DIR__ . '/../../../carbon/responses/responses.inc.php';
require_once __DIR__ . '/../../../carbon/formats/formats.inc.php';
require_once __DIR__ . '/../../../src/restaurant/restaurant.php';
try {
    $db = $config->getDefaultDatabase()->open();
    $restaurantInfo = ['id' => Request::REQUIRED, 'restaurantName' => Request::REQUIRED, 'restaurantDesc' => Request::REQUIRED, 'restaurantStreet' => Request::REQUIRED, 'restaurantCity' => Request::REQUIRED, 'restaurantProvince' => Request::REQUIRED, 'restaurantCountry' => Request::REQUIRED, 'lattitude' => Request::REQUIRED, 'longitude' => Request::REQUIRED];
    $request = new StandardRequest();
    $restaurantInfo = $request->extract($restaurantInfo);
    $restaurantInfo = arrayToJSONObject($restaurantInfo);
    $response = updateRestaurant($db, $restaurantInfo);
} catch (Exception $ex) {
    $response = new ExceptionResponse($ex);
}
$response = new JSONPrettyFormat($response);
$response->present();