Files
dev-chiefworks 47f4fad75c Added Other AP
2022-04-26 11:30:34 -04:00

111 lines
3.3 KiB
PHP

<?php
class OptionsApi extends Api
{
public $apiName = 'options';
public function indexAction()
{
$message = "Unexpected options error";
$latitude = $this->requestParams["latitude"] ?? 0;
$longitude = $this->requestParams["longitude"] ?? 0;
try {
if ($latitude==null || $longitude==null || ($latitude==0 || $longitude==0)) {
throw new Exception('Invalid location: '.$latitude.",".$longitude);
}
$db = new Db();
list ($res, $details) = Options::getServicesByLatitudeLongitude($db->getConnect(), $latitude, $longitude);
if (is_array($res)) {
return $this->response([
'services' => $res,
'details' => $details
], 200);
} else {
throw new Exception("Failed to get transport options for origin");
}
} catch (Exception $e) {
$message = $e->getMessage();
}
return $this->response(
array(
"error" => $message
), 500);
}
/**
* Method GET
* Get single record (by id)
* http://DOMAIN/remove/1
* @return string
*/
public function viewAction()
{
//id must be the first parameter after /remove/x
return $this->response(
array(
'error'=> 'Data not found'
), 404);
}
public function createAction()
{
$message = "Unexpected options error";
$origin = $this->requestParams["origin"] ?? [];
$destination = $this->requestParams["destination"] ?? [];
$create = $this->requestParams["create"] ?? false;
$country = $this->requestParams["country"] ?? NULL;
$duration = $this->requestParams["duration"] ?? 0;
$distance = $this->requestParams["distance"] ?? 0;
$member_id = $this->requestParams["member_id"] ?? 0;
try {
$db = new Db();
list ($origin, $destination) = Options::checkValidLocations($db->getConnect(), $origin, $destination);
list ($res, $details) = Options::getTransportOptions($db->getConnect(), $origin, $destination);
if (is_array($res)) {
$trip = NULL;
if ($create) {
$country = $origin["country"];
$trip = Options::createTrip($db, $country, $duration, $distance, $origin["id"], $destination["id"]);
}
return $this->response([
'services' => $res,
'details' => $details,
'trip' => $trip
], 200);
} else {
throw new Exception("Failed to get transport options for origin");
}
} catch (Exception $e) {
$message = $e->getMessage();
}
return $this->response(
array(
"error" => $message
), 500);
}
public function updateAction()
{
return $this->response(
array(
"error" => "Update error"
), 400);
}
public function deleteAction()
{
return $this->response(
array(
"error" => "Delete error"
), 500);
}
}