Example #1
0
<?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);
Example #2
0
 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();
 }
Example #3
0
// $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();
Example #4
0
 /**
  * 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;
 }
Example #5
0
$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();
Example #6
0
<?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);