<?php $result = array(); require_once 'api/controller.php'; $URI = Controller::URI('attachment'); foreach ($_FILES as $name => $file) { $file['source'] = file_get_contents($file['tmp_name']); unset($file['tmp_name']); $result[$name] = Controller::create($URI, $file); unset($file['source']); } echo json_encode($result);
public function post($request) { // to Receive POST Params (use $this->params) parent::post($request); $user_id = $this->getUserId(); $tz_offset = $this->getTimezoneOffset(); if ($this->isLoggedIn()) { $date_start = $this->getParam('dateStart'); $date_end = $this->getParam('dateEnd'); // check the dates parameters formats (ex: 31/12/2012 23:59:59, but the time is optional) $regex_date = '/^(0[1-9]|[12][0-9]|3[01])\\/(0[1-9]|1[0-2])\\/([12][0-9]{3})( ([01][0-9]|2[0-3])(:[0-5][0-9]){2})?$/'; if (!preg_match($regex_date, $date_start)) { Errors::runException("CALENDAR_INVALID_START_DATE"); } if (!preg_match($regex_date, $date_end)) { Errors::runException("CALENDAR_INVALID_END_DATE"); } // get the start timestamp UNIX from the parameter $start_arr = explode(' ', $date_start); $start_date_arr = explode('/', $start_arr[0]); $start_time_arr = !empty($start_arr[1]) ? explode(':', $start_arr[1]) : array('00', '00', '00'); $rangeStart = mktime($start_time_arr[0], $start_time_arr[1], $start_time_arr[2], $start_date_arr[1], $start_date_arr[0], $start_date_arr[2]) - $tz_offset; // get the end timestamp UNIX from the parameter $end_arr = explode(' ', $date_end); $end_date_arr = explode('/', $end_arr[0]); $end_time_arr = !empty($end_arr[1]) ? explode(':', $end_arr[1]) : array('23', '59', '59'); $rangeEnd = mktime($end_time_arr[0], $end_time_arr[1], $end_time_arr[2], $end_date_arr[1], $end_date_arr[0], $end_date_arr[2]) - $tz_offset; $rangeStart = $rangeStart * 1000; $rangeEnd = $rangeEnd * 1000; $concept = "schedulable"; $id = false; $criteria = array(); $criteria['order'] = "startTime"; $criteria['deepness'] = 2; $criteria['timezones'] = array(); $criteria['timezones'][1] = 'America/Sao_Paulo'; $criteria['timezones'][3] = 'America/Sao_Paulo'; $criteria['filter'] = array(); $criteria['filter'][0] = "AND"; $criteria['filter'][1] = array(); $criteria['filter'][1][0] = "OR"; $criteria['filter'][1][1] = array(); $criteria['filter'][1][1][0] = "AND"; $criteria['filter'][1][1][1] = array(); $criteria['filter'][1][1][1][0] = ">="; $criteria['filter'][1][1][1][1] = "rangeEnd"; $criteria['filter'][1][1][1][2] = $rangeStart; //START $criteria['filter'][1][1][2] = array(); $criteria['filter'][1][1][2][0] = "=<"; $criteria['filter'][1][1][2][1] = "rangeEnd"; $criteria['filter'][1][1][2][2] = $rangeEnd; //END $criteria['filter'][1][2] = array(); $criteria['filter'][1][2][0] = "AND"; $criteria['filter'][1][2][1] = array(); $criteria['filter'][1][2][1][0] = ">="; $criteria['filter'][1][2][1][1] = "rangeStart"; $criteria['filter'][1][2][1][2] = $rangeStart; //START $criteria['filter'][1][2][2] = array(); $criteria['filter'][1][2][2][0] = "=<"; $criteria['filter'][1][2][2][1] = "rangeStart"; $criteria['filter'][1][2][2][2] = $rangeEnd; //END $criteria['filter'][1][3] = array(); $criteria['filter'][1][3][0] = "AND"; $criteria['filter'][1][3][1] = array(); $criteria['filter'][1][3][1][0] = "<="; $criteria['filter'][1][3][1][1] = "rangeStart"; $criteria['filter'][1][3][1][2] = $rangeStart; //START $criteria['filter'][1][3][2] = array(); $criteria['filter'][1][3][2][0] = ">="; $criteria['filter'][1][3][2][1] = "rangeEnd"; $criteria['filter'][1][3][2][2] = $rangeEnd; //END $criteria['filter'][2] = array("IN", "calendar", array(1)); $properties = $criteria && isset($criteria['properties']) ? $criteria['properties'] : false; $service = $criteria && isset($criteria['service']) ? $criteria['service'] : false; $res = Controller::call('find', Controller::URI($concept), false, $criteria); $arrEvents = array(); foreach ($res as $event) { $timeZone = new DateTimeZone($event['timezone']); $timeStart = new DateTime('@' . (int) ($event['startTime'] / 1000), $timeZone); $timeEnd = new DateTime('@' . (int) ($event['endTime'] / 1000), $timeZone); $timeStart->setTimezone($timeZone); $timeEnd->setTimezone($timeZone); $newEvent = array(); $newEvent['eventID'] = "" . $event['id']; $newEvent['eventName'] = "" . $event['summary']; $newEvent['eventDescription'] = "" . $event['description']; $newEvent['eventLocation'] = "" . $event['location']; $newEvent['eventStartDate'] = "" . $timeStart->format('d/m/Y H:i:s'); $newEvent['eventEndDate'] = "" . $timeEnd->format('d/m/Y H:i:s'); //$newEvent['eventTimeZone'] = "" . $event['timezone']; $newEvent['eventAllDay'] = "" . $event['allDay']; $arrEvents[] = $newEvent; } $result = array('events' => $arrEvents); $this->setResult($result); } //to Send Response (JSON RPC format) return $this->getResponse(); }
// $properties = $_REQUEST['properties']; // $limit = $_REQUEST['limit']; // $offset = $_REQUEST['offset']; // $group = $_REQUEST['group']; // $order = $_REQUEST['join']; // $filter = $_REQUEST['filter']; // $URI = $_REQUEST['URI']; $concept = isset($_REQUEST['concept']) ? $_REQUEST['concept'] : false; $id = isset($_REQUEST['id']) ? $_REQUEST['id'] : false; $filter = isset($_REQUEST['filter']) ? $_REQUEST['filter'] : false; $criteria = isset($_REQUEST['criteria']) ? $_REQUEST['criteria'] : false; $criteria = $filter ? $criteria ? array_merge($criteria, array('filter' => $filter)) : array('filter' => $filter) : $criteria; $properties = $criteria && isset($criteria['properties']) ? $criteria['properties'] : false; $service = $criteria && isset($criteria['service']) ? $criteria['service'] : false; require_once 'api/controller.php'; ///Conversor Para utf8 ante de codificar para json pois o json so funciona com utf8 function toUtf8($data) { if (!is_array($data)) { return mb_convert_encoding($data, 'UTF-8', 'UTF-8 , ISO-8859-1'); } $return = array(); foreach ($data as $i => $v) { $return[toUtf8($i)] = toUtf8($v); } return $return; } //////////////////////////////////////////////////////////////////////////////////////// echo json_encode(toUtf8(Controller::call($id ? 'read' : 'find', Controller::URI($concept, $id, $service), $properties, $criteria))); Controller::closeAll();
/** * Método que deleta o script do usuário. * * @license http://www.gnu.org/copyleft/gpl.html GPL * @author Consórcio Expresso Livre - 4Linux (www.4linux.com.br) e Prognus Software Livre (www.prognus.com.br) * @sponsor Caixa Econômica Federal * @author Airton Bordin Junior <*****@*****.**> * @author Gustavo Pereira dos Santos <*****@*****.**> * @param <$uri> * @param <$result> * @param <$criteria> * @param <$original> * @access <public> */ public function deleteRule(&$uri, &$params, &$criteria, $original) { if (!$this->rules) { $this->rules = $this->getRules(); } $params['id'] = $uri['id']; $rules = array(); foreach ($this->rules as $i => $rule) { if ($rule['id'] !== $uri['id']) { $rules[] = $this->rules[$i]; } } $this->rules = $rules; $uri['id'] = ''; $params = array('name' => $this->service->config['user'], 'content' => $this->formatSieveScript($this->rules), 'active' => true); $URI = Controller::URI($uri['concept'], $this->service->config['user']); $this->service->update($URI, $params); return false; }
$parents = array(); while ($REST) { $parents[array_shift($REST)] = array_shift($REST); } $accept = $_SERVER["HTTP_ACCEPT"]; $args = array(); if ($_SERVER["REQUEST_METHOD"] === "GET") { if (isset($_GET["attr"])) { $args = $_GET["attr"]; unset($_GET["attr"]); } $method = $id ? "read" : "find"; } else { parse_str(file_get_contents('php://input'), $args); switch ($_SERVER["REQUEST_METHOD"]) { case "DELETE": $method = $id ? "delete" : "deleteAll"; break; case "PUT": $method = $id ? "update" : "replace"; break; case "POST": $method = "create"; break; } } require_once 'api/controller.php'; $URI = Controller::URI($concept, $id); $args = array_merge($args, array('context' => $parents)); echo json_encode(Controller::call($method, $URI, $args, $_GET)); Controller::closeAll();
<?php /* * Remove and Update by criteria */ $data = $_POST; require_once "api/controller.php"; Controller::addFallbackHandler(0, function ($e) { throw $e; }); $result = array(); foreach ($data as $concept => &$content) { if (!is_array($content)) { $content = array($content); } foreach ($content as $key => $value) { $criteria = isset($value['filter']) ? isset($value['criteria']) ? array_merge($value['criteria'], array('filter' => $value['filter'])) : array('filter' => $value['filter']) : $value['criteria']; $service = isset($value['criteria']) && isset($value['criteria']['service']) ? $value['criteria']['service'] : false; try { $result[$concept][] = Controller::call($value['method'], Controller::URI($concept, false, $service), false, $criteria); } catch (Exception $e) { $result[$concept]['error'] = $e->getMessage(); } } } echo json_encode($result);