/** * Test middleware overrides response content type to html */ public function testResponseContentTypeIsOverriddenToHtml() { \Slim\Environment::mock(array('SCRIPT_NAME' => '/index.php', 'PATH_INFO' => '/foo')); $app = new \Slim\Slim(array('log.enabled' => false)); $app->get('/foo', function () use($app) { $app->contentType('application/json;charset=utf-8'); //<-- set content type to something else throw new \Exception('Test Message', 100); }); $mw = new \Slim\Middleware\PrettyExceptions(); $mw->setApplication($app); $mw->setNextMiddleware($app); $mw->call(); $response = $app->response(); $this->assertEquals('text/html', $response['Content-Type']); }
/** * REST actions * * This function contains the REST actions with the assignments to * the functions. * * @param string[] $_argv Konsolenparameter, null = leer */ public function __construct($_argv) { if ($_argv != null) { // es gibt Konsolenparameter, diese werden nun $_POST zugewiesen, // sodass der Installationsassistent sie verwenden kann array_shift($_argv); foreach ($_argv as $arg) { $_POST[$arg] = 'OK'; } $this->CallInstall(true); return; } // initialize slim $app = new \Slim\Slim(array('debug' => true)); $app->contentType('text/html; charset=utf-8'); // POST,GET showInstall $app->map('(/)', array($this, 'CallInstall'))->via('POST', 'GET', 'INFO'); // POST,GET showInstall $app->map('/checkModulesExtern(/)', array($this, 'checkModulesExtern'))->via('POST', 'GET', 'INFO'); // run Slim $app->run(); }
/** * Test content type */ public function testContentType() { $s = new \Slim\Slim(); $s->get('/bar', function () use($s) { $s->contentType('application/json'); }); $s->call(); list($status, $header, $body) = $s->response()->finalize(); $this->assertEquals('application/json', $header['Content-Type']); }
case "/api/getMGCfg": case "/api/getNagiosCfg": case "/api/getNRPECfg": case "/api/getSupNRPECfg": case "/api/getNRPEPlugin": case "/api/getSupNRPEPlugin": case "/api/getRouterVM": case "/api/getNagiosPlugin": case "/api/getNagiosPlugins": require_once BASE_PATH . "/routes/apiv1.route.php"; break; default: break; } }); $app->contentType('application/json'); $app->notFound(function () use($app) { $request = $app->request(); $headers = $request->headers(); $uri = $request->getResourceUri(); $apiResponse = new APIViewData(1, false, "The page you are looking for could not be found. Check the address to ensure your URL is spelled correctly..."); $apiResponse->setExtraResponseData('url', $request->headers('X_FORWARDED_PROTO') . '://' . $request->headers('HOST') . $request->getRootUri() . $request->getResourceUri()); $app->halt('404', $apiResponse->returnJson()); }); // Initial Dummy Routes // Leave the / on the end of /sapi/ due to rewrite engine, otherwise requests to /sapi break $app->get('/sapi/', function () use($app) { $msg = "Welcome to /sapi/ ... What can we help you with?"; $apiResponse = new APIViewData(0, false, $msg); $apiResponse->printJson(); })->name('saigon-api');
/** * {@inheritdoc} */ public function register(Container $container) { $container['config'] = $this->config; $container['shopware.version'] = function () { $version = trim(file_get_contents(__DIR__ . '/../data/version')); return $version; }; $container['slim.app'] = function ($c) { $slimOptions = $c['config']['slim']; $slim = new \Slim\Slim($slimOptions); $slim->contentType('text/html; charset=utf-8'); $c['slim.request'] = $slim->request(); $c['slim.response'] = $slim->response(); return $slim; }; $container['system.locker'] = function ($c) { return new SystemLocker(SW_PATH . '/recovery/install/data/install.lock'); }; $container['translation.service'] = function ($c) { return new TranslationService($c['translations']); }; // dump class contains state so we define it as factory here $container['database.dump_iterator'] = $container->factory(function ($c) { $dumpFile = __DIR__ . '/../data/sql/install.sql'; return new DumpIterator($dumpFile); }); // dump class contains state so we define it as factory here $container['database.dump_iterator_en_gb'] = $container->factory(function ($c) { $dumpFile = __DIR__ . '/../data/sql/en.sql'; return new DumpIterator($dumpFile); }); // dump class contains state so we define it as factory here $container['database.snippet_dump_iterator'] = $container->factory(function ($c) { $dumpFile = __DIR__ . '/../data/sql/snippets.sql'; return new DumpIterator($dumpFile); }); $container['shopware.container'] = function (Container $c) { require_once SW_PATH . '/autoload.php'; $kernel = new \Shopware\Kernel('production', false); $kernel->boot(); $container = $kernel->getContainer(); $container->get('models')->generateAttributeModels(); return $container; }; $container['shopware.theme_installer'] = function ($c) { $shopwareContainer = $c['shopware.container']; /** @var $themeInstaller \Shopware\Components\Theme\Installer */ $themeInstaller = $shopwareContainer->get('theme_installer'); return $themeInstaller; }; $container['http-client'] = function ($c) { return new CurlClient(); }; $container['theme.service'] = function ($c) { return new ThemeService($c['db'], $c['shopware.theme_installer']); }; $container['install.requirements'] = function ($c) { return new Requirements(__DIR__ . '/../data/System.xml'); }; $container['install.requirementsPath'] = function ($c) { $check = new RequirementsPath(SW_PATH, SW_PATH . '/engine/Shopware/Components/Check/Data/Path.xml'); $check->addFile('recovery/install/data'); return $check; }; $container['db'] = function ($c) { throw new \RuntimeException("Identifier DB not initialized yet"); }; $container['config.writer'] = function ($c) { return new ConfigWriter(SW_PATH . '/config.php'); }; $container['webserver.check'] = function ($c) { return new WebserverCheck($c['config']['check.ping_url'], $c['config']['check.check_url'], $c['config']['check.token.path'], $c['http-client']); }; $container['database.service'] = function ($c) { return new DatabaseService($c['db']); }; $container['license.service'] = function ($c) { return new LocalLicenseUnpackService(); }; $container['license.installer'] = function ($c) { return new LicenseInstaller($c['db']); }; $container['menu.helper'] = function ($c) { $routes = $c['config']['menu.helper']['routes']; return new MenuHelper($c['slim.app'], $c['translation.service'], $routes); }; }
$song = $model->getSong($song_id); if (!$song) { $app->redirect('/songs'); } $app->render('songs.edit.twig', array('song' => $song)); }); // POST request on /songs/updatesong. Self-explaining. $app->post('/updatesong', function () use($app, $model) { // passing an array would be better here, but for simplicity this way it okay $model->updateSong($_POST['song_id'], $_POST["artist"], $_POST["track"], $_POST["link"], $_POST["year"], $_POST["country"], $_POST["genre"]); $app->redirect('/songs'); }); // GET request on /songs/ajaxGetStats. In this demo application this route is used to request data via // JavaScript (AJAX). Note that this does not render a view, it simply echoes out JSON. $app->get('/ajaxGetStats', function () use($app, $model) { $amount_of_songs = $model->getAmountOfSongs(); $app->contentType('application/json;charset=utf-8'); echo json_encode($amount_of_songs); }); // POST request on /search. Self-explaining. $app->post('/search', function () use($app, $model) { $result_songs = $model->searchSong($_POST['search_term']); $app->render('songs.search.twig', array('amount_of_results' => count($result_songs), 'songs' => $result_songs)); }); // GET request on /search. Simply redirects the user to /songs $app->get('/search', function () use($app) { $app->redirect('/songs'); }); }); /******************************************* RUN THE APP *******************************************************/ $app->run();
<?php require '../Slim/Slim.php'; \Slim\Slim::registerAutoloader(); $app = new \Slim\Slim(); $app->get('/articles', function () use($app) { require_once '../lib/mysql.php'; $db = connect_db(); $rs = $db->query('SELECT * FROM articles ORDER BY date DESC;'); $data = $rs->fetch_all(MYSQLI_ASSOC); $app->contentType("application/json"); echo json_encode($data); }); $app->get('/articles/:index', function ($index) use($app) { require_once '../lib/mysql.php'; $db = connect_db(); $sql = "SELECT * FROM articles WHERE `id`={$index}"; $rs = $db->query($sql); $data = $rs->fetch_all(MYSQLI_ASSOC); $app->contentType("application/json"); echo json_encode($data); }); $app->post('/articles/author', function () use($app) { require_once '../lib/mysql.php'; $db = connect_db(); $json = $app->request->getBody(); $data_array = json_decode($json, true); $author_email = $data_array['email']; $sql = "SELECT * FROM articles WHERE `author`='{$author_email}'"; $rs = $db->query($sql); $data = $rs->fetch_all(MYSQLI_ASSOC);
private function runAppPreFlight($action, $actionName, $mw = NULL, $headers = array()) { \Slim\Environment::mock(array('REQUEST_METHOD' => 'OPTIONS', 'SERVER_NAME' => 'localhost', 'SERVER_PORT' => 80, 'ACCEPT' => 'application/json', 'SCRIPT_NAME' => '/index.php', 'PATH_INFO' => '/' . $actionName)); $app = new \Slim\Slim(); if (isset($mw)) { $app->add($mw); } $app->delete('/:name', function ($name) use($app, $action) { if ($app->request->isHead()) { $app->status(204); return; } $app->contentType('application/json'); $app->response->write(json_encode(array("action" => $action, "method" => "DELETE", "name" => $name))); }); foreach ($headers as $key => $value) { $app->request->headers()->set($key, $value); } $app->run(); return $app; }
<?php @session_start(); require_once "vendor/autoload.php"; require_once "vistas/BDManager.php"; $app = new \Slim\Slim(array("templates.path" => "./vistas")); $app->contentType("text/html; charset=utf-8"); define("BD_SERVIDOR", "127.0.0.1"); define("BD_USUARIO", "root"); define("BD_NOMBRE", "biblioteca"); define("BD_PASSWORD", ""); $bd = new PDO("mysql:host=" . BD_SERVIDOR . ";dbname=" . BD_NOMBRE . ";charset=utf8", BD_USUARIO, BD_PASSWORD); $app->get("/", function () use($app, $bd) { $solicitud = $app->request(); $consultaResultante = $bd->prepare("SELECT ip FROM bloqueoip WHERE ip='" . $solicitud->getIp() . "'"); $consultaResultante->execute(); if ($consultaResultante->rowCount() > 0) { echo "La ip a sido bloqueada"; $app->stop(); } $app->render("principal.php", array("contenidoDinamico" => file_get_contents("vistas/login.php"), "menu" => "")); }); $app->get("/salir", function () use($app, $bd) { $solicitud = $app->request(); guardarBitacora("Sesion terminada: [" . $_SESSION["usuario"] . "]", $solicitud->getIp()); session_unset(); session_destroy(); $app->redirect("/bibliotecaseguridad"); }); $app->get("/inicio", function () use($app, $bd) { if (sesionExapirada()) {
$app->get('/check/:name', function ($name) use($app, $mailbox) { $name = cleanName($name); $mailsIds = findMails($name, $mailbox); print sizeOf($mailsIds); })->name('mailcount'); // delete an email $app->get('/:name/delete/:id', function ($name, $id) use($app, $mailbox) { $mailbox->deleteMail($id); $mailbox->expungeDeletedMails(); $app->redirect($app->urlFor('read', array('name' => $name))); })->name('delete'); // read raw source $app->get('/:name/source/:id', function ($name, $id) use($app, $mailbox) { $email = imap_fetchbody($mailbox->getImapStream(), $id, "", FT_UID); if (!is_null($email)) { $app->contentType("text/plain"); print $email; } else { $app->notFound(); } })->name('source'); // show html $app->get('/:name/html/:id', function ($name, $id) use($app, $mailbox) { $email = $mailbox->getMail($id); if (!is_null($email)) { $html_safe = preg_replace("/https?:\\/\\//i", URI_REDIRECT_PREFIX . '\\0', $email->textHtml); print $html_safe; } else { $app->notFound(); } })->name('html');
public static function dispatcher() { header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET, POST, OPTIONS'); header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With'); error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING ^ E_STRICT); $app = new \Slim\Slim(); \Slim\Slim::registerAutoloader(); $app->contentType('application/json; charset=utf-8'); $app->config('debug', true); // echo "<pre>"; if (WP_DEBUG) { $root = strtolower($app->request()->getRootUri()) . '/api'; } else { $root = "/api"; } // var_dump($root); // $root = "/api"; // $root = strtolower($app->request()->getRootUri()) . '/api'; // else // $root = "/api"; // var_dump($root); // $root = null; // $root = var_dump($app->request()->getRootUri()); // die(); // }); // var_dump($app->request->headers); $app->hook('slim.before.dispatch', function () use($app) { // Conferir se é url que exige autenticação $req = $_SERVER['REQUEST_URI']; if (strpos($req, '/autenticar/') !== false) { return; } $headers = self::request_headers(); // var_dump($headers);die(); $app = \Slim\Slim::getInstance(); $erro = null; $api_user_id = $headers['X-API-USER-ID']; $api_token = $headers['X-API-TOKEN']; if ($api_user_id == null || $api_token == null) { $erro = "É preciso informar X-API-USER-ID e X-API-TOKEN no header."; } else { // Sanitizar user_id /* @var $pessoa Pessoa */ $pessoa = Pessoas::getInstance()->getById($api_user_id); // Sanitizar token if ($pessoa == null) { $erro = 'Não te encontramos em nossa base de dados...'; } else { if (md5($pessoa->id . '_' . $pessoa->password) != $api_token) { $erro = 'Password inválido'; } } } if ($erro) { $app->response->headers['X-Authenticated'] = 'False'; $app->halt('401', '{"error":{"text": "' . $erro . '" }}'); } }); $app->group($root, function () use($app) { // '/' $app->get('/', function () use($app) { echo json_encode(array("bem vindo", "a API")); }); // Autenticate $app->post('/autenticar/', function () use($app) { // Obter pessoa, e usuário $email = $_POST['email']; $password = $_POST['password']; if ($email == '' || !filter_var($email, FILTER_VALIDATE_EMAIL)) { echo json_encode(array('Erro' => 'Informe um endereço de email válido.')); return; } /* @var $pessoa Pessoa */ $pessoa = Pessoas::getInstance()->getByEmail($email); if ($pessoa == null) { echo json_encode(array('Erro' => 'Não te encontramos em nossa base de dados...')); return; } // Validar senha, antes de mais nada // @TODO Buscar user do wordpress que seja esta pessoa e verificar se está ativo, senão, é pessoa normal // Aqui, só pode ser um participante do grupo ou inscrito em algum evento $nPessoa = ControllerApi::decoratePessoa($pessoa); $return = array('pessoa' => $nPessoa); $return = PLib::object_to_array($return); // $return = PLib::array_utf8_encode($return); echo json_encode($return, JSON_NUMERIC_CHECK); return; }); $app->group('/gamification', function () use($app) { $app->get('/ranking', function () use($app) { $ranking = Gamification::getInstance()->getUsersPointsRanking(300); // var_dump($ranking); $nRanking = ControllerApi::decorateRanking($ranking); echo json_encode($nRanking); }); $app->get('/user/:id', function ($id) use($app) { $pessoa = ControllerApi::getPessoa($id, true); if ($pessoa) { /* @var $gamification Gamification */ $gamification = Gamification::getInstance(); $gamification->setUserId($id); $nPessoa = ControllerApi::decorateUserGamification($pessoa); $badges = $gamification->getBadges(); $nBadges = ControllerApi::decorateBadges($badges); $return = array('user' => $nPessoa, 'badge' => $nBadges); $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); } }); }); // '/' $app->get('/notificacao/', function () use($app) { die("notificação"); }); // Retorna uma inscrição $app->get('/inscricao/:idInscricao/simples/', function ($idInscricao) use($app) { if (strlen($idInscricao) > 10) { $transactionId = $idInscricao; $inscricao = Inscricoes::getInstance()->callbackPagamento(1, $transactionId); if (get_class($inscricao) != 'Inscricao') { $erro = 'Transação não identificada..'; } } else { /* @var $inscricao Inscricao */ $inscricao = Inscricoes::getInstance()->getById($idInscricao); if ($inscricao == null) { $erro = 'Inscrição não localizada (' . $idInscricao . ')'; } } if ($erro) { echo json_encode(array('erro' => $erro)); } else { if ($erro == null) { if ($inscricao->confirmado == true) { $mensagem = "wizard_fim_pagamento_confirmado"; } else { $mensagem = "wizard_fim_pagamento_aguardando_confirmacao"; } $mensagem = Mensagens::getInstance()->get($mensagem, $inscricao->evento(), $inscricao->pessoa(), $inscricao, true); $nInscricao = array('confirmado' => $inscricao->confirmado, 'mensagem' => $mensagem); $return = array('inscricao' => $nInscricao); $nInscrito = PLib::object_to_array($return); echo json_encode($nInscrito, JSON_NUMERIC_CHECK); } } }); // Redireciona para URL de pagamento no gateway - Por enquanto só funciona pro devfest $app->get('/inscricao/:idInscricao/pagar/', function ($idInscricao) use($app) { /* @var $inscricao Inscricao */ $inscricao = Inscricoes::getInstance()->getById($idInscricao); if ($inscricao == null) { echo json_encode(array('erro' => 'Inscrição não localizada (' . $idInscricao . ')')); return; } $urlRetorno = BASE_URL . '/confirmacao?ticket=' . $inscricao->id * 333; $url = \lib\PagSeguroUtil::getUrlPagamento($inscricao, $urlRetorno); $return = array('url' => $url); $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); }); // Retorna dados de uma pessoa $app->get('/pessoa/:idPessoa/', function ($idPessoa) use($app) { $pessoa = ControllerApi::getPessoa($idPessoa, true); if ($pessoa) { $nPessoa = ControllerApi::decoratePessoa($pessoa); $return = array('pessoa' => $nPessoa); // $return = PLib::array_utf8_encode($return); $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); } }); // Retorna as inscrições de uma pessoa $app->get('/pessoa/:idPessoa/inscricoes/', function ($idPessoa) use($app) { $pessoa = ControllerApi::getPessoa($idPessoa, true); if ($pessoa) { // Obter inscrições da pessoa $inscricoes = Inscricoes::getInstance()->getByPessoa($pessoa->id); $nInscricoes = array(); if ($inscricoes == null) { echo json_encode(array('mensagem' => 'Sem inscrições desta pessoa')); return; } foreach ($inscricoes as $inscricao) { $nInscricoes[] = ControllerApi::decorateInscricaoTeceiros($inscricao); } $return = array('inscricoes' => $nInscricoes); $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); } }); // Realiza uma inscrição $app->post('/inscrever/:idEvento/', function ($idEvento) use($app) { $idPessoa = $_POST['id_pessoa']; $nome = trim(ucfirst($_POST['nome'])); $email = trim(strtolower($_POST['email'])); $cpf = trim($_POST['cpf']); $celular = PLib::only_numbers($_POST['celular']); if (strpos($celular, '55') === 0) { $celular = substr($celular, 2); } /* @var $evento Evento */ $evento = Eventos::getInstance()->getById($idEvento); if ($evento == null) { echo json_encode(array('erro' => 'Evento não localizado na base de dados (' . $idEvento . ')')); return; } $validacao = PLib::coalesce($evento->validacao_pessoa, 'email'); if ($idPessoa == null && ($nome == null || $celular == null || $email == null || ${$validacao} == null)) { echo json_encode(array('erro' => 'Envie todos os dados (' . $nome . $email . $celular . ').' . print_r($_POST, true))); return; } if ($idPessoa == null && !filter_var($email, FILTER_VALIDATE_EMAIL)) { echo json_encode(array('erro' => 'Email inválido')); return; } if ($idPessoa == null && strlen($celular) < 8) { echo json_encode(array('erro' => 'Celular inválido')); return; } // Mesmo sem id de pessoa, tentar encontrar pessoa por email if ($idPessoa == null) { $pessoa = Pessoas::getInstance()->getByMd5($email); if ($pessoa != null) { $idPessoa = $pessoa->id; } } // $validacao='cpf'; // if ($validacao=='cpf' && $cpf!=null && !PLib::validade_cpf($cpf)){ // echo json_encode(array('erro' => 'CPF inválido ('.$cpf.')')); // return; // } // Incluir pessoa /* @var $pessoa Pessoa */ if ($idPessoa == null) { /* @var $pessoa Pessoa */ $pessoa = new Pessoa(); $pessoa->nome = $nome; $pessoa->email = $email; $pessoa->celular = $celular; if ($validacao == 'cpf') { $pessoa->cpf = PLib::str_mask(PLib::only_numbers($cpf), '###.###.###-##'); } // PLib::var_dump($pessoa); $pessoa = Pessoas::getInstance()->insert($pessoa); } else { $pessoa = Pessoas::getInstance()->getById($idPessoa); if ($nome != null && strlen($nome) > 2) { $pessoa->nome = $nome; } if ($celular != null && strlen($celular) > 2) { $pessoa->celular = $celular; } $pessoa->save(); } // Extras? Pegar do post.... xeu pensar - ter como limitar e tal.. como tornar mais seguro? $extras = array(); foreach ($_POST as $key => $value) { if ($key == 'id_pessoa' || $key == 'nome' || $key == 'cpf' || $key == 'celular' || $key == 'email') { continue; } $extra = array('titulo' => $key, 'valor' => $value); $extras[$key] = $extra; } if (count($extras) > 0) { $pessoa->setExtras($extras); $pessoa->save(); } //PLib::var_dump($pessoa->getExtrasArray()); //PLib::var_dump($pessoa);die(); $idPessoa = $pessoa->id; // Verificar se já está inscrita.... hum, tem algumas situações aqui $inscricao = Inscricoes::getInstance()->getByEventoPessoaConfirmado($idEvento, $idPessoa); if ($inscricao != null) { echo json_encode(array('erro' => "Você já está inscrito e confirmado para este evento!")); return; } // Já salvar registro de inscrição $inscricao = Inscricoes::getInstance()->certificarInscricao($evento, $pessoa, $evento->confirmacao == "preinscricao"); $nInscrito = ControllerApi::decorateInscricao($inscricao); $return = array('inscricao' => $nInscrito); $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); }); // Return "current" events $app->get('/eventos/', function () use($app) { $eventos = Eventos::getInstance()->getAll(); if ($eventos == null) { echo json_encode(array('erro' => 'Nenhum evento registrado....')); return; } $events = array(); /* @var $evento Evento */ foreach ($eventos as $evento) { if ($evento->preInscricao()) { continue; } $nEvento = ControllerApi::decorateEvento($evento, false); $events[] = $nEvento; } $events = PLib::object_to_array($events); echo json_encode($events, JSON_NUMERIC_CHECK); }); // Return "current" events $app->get('/eventos/futuros/', function () use($app) { $eventos = Eventos::getInstance()->getAcontecendoFuturos(); if ($eventos) { $events = array(); /* @var $evento Evento */ foreach ($eventos as $evento) { $nEvento = ControllerApi::decorateEvento($evento, false); $events[] = $nEvento; } $events = PLib::object_to_array($events); echo json_encode($events, JSON_NUMERIC_CHECK); } }); // Return "current" events $app->get('/eventos/atual/', function () use($app) { $evento = ControllerApi::getEventoAtual(); if ($evento == null) { echo json_encode(array('erro' => 'Não existe um evento atual')); return; } $evento = ControllerApi::decorateEvento($evento, false); $events = PLib::object_to_array($evento); echo json_encode($events, JSON_NUMERIC_CHECK); }); // Return "current" events $app->get('/eventos/terceiros/', function () use($app) { // Obter eventos de outros sites de eventos // $sites = array( // ); // $eventosArray = array(); // foreach ($sites as $site) { // // Initiate curl // $ch = curl_init(); // curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // curl_setopt($ch, CURLOPT_URL, $site . '/api/eventos/futuros/'); // $result = curl_exec($ch); // curl_close($ch); //// var_dump($result); // if ($result) { // $eventosJson = json_decode($result, true); //// var_dump($eventosJson); // if ($eventosJson) { // foreach ($eventosJson as $evento) { //// $evento = Eventos::getInstance()->populate($evento); // $eventosArray[] = $evento; // } // } else { // echo "nune " . $site; // } // } else { //// echo "none ".$site; // } // } // // Ordernar //// var_dump($eventosArray); // usort($eventosArray, 'ControllerApi::ordem'); //// Eventos::getInstance()->ordenar($eventosArray,true); //// $eventosReturn=array(); //// foreach($eventosArray as $evento) { //// $eventosReturn[]= ControllerApi::decorateEvento($evento, false); //// } // // $eventosReturn = PLib::object_to_array($eventosArray); // echo json_encode($eventosReturn, JSON_NUMERIC_CHECK); }); // Retorna um evento e seus dados $app->get('/evento/:idEvento/', function ($idEvento) use($app) { $evento = Eventos::getInstance()->getById($idEvento); if ($evento == null) { echo json_encode(array('erro' => 'Evento não localizado na base de dados (' . $idEvento . ')')); return; } $nEvento = ControllerApi::decorateEvento($evento, true); $events = PLib::object_to_array($nEvento); echo json_encode($events, JSON_NUMERIC_CHECK); }); // Retorna os inscritos no evento $app->get('/inscritos/:idEvento/', function ($idEvento) use($app) { $inscritos = Inscricoes::getInstance()->getByEvento($idEvento, null, "ev_pessoas.nome"); // var_dump($inscritos); $registrations = array(); /* @var $inscrito Inscricao */ foreach ($inscritos as $inscrito) { $nInscrito = ControllerApi::decorateInscricao($inscrito); $registrations[] = $nInscrito; } $registrations = PLib::object_to_array($registrations); echo json_encode($registrations, JSON_NUMERIC_CHECK); }); // Dá presença a um inscrito $app->post('/inscricao/self_chekin/', function () use($app) { /* @var $inscricao Inscricao */ $inscricao = null; $identificacao = $_POST['identificacao']; // email - ou id_evento-id_inscricao-id_pessoa if (substr_count($identificacao, '-') === 2) { $id_evento = substr($identificacao, 0, strpos($identificacao, '-')); $id_inscricao = substr($identificacao, strpos($identificacao, '-') + 1); $id_pessoa = substr($id_inscricao, strpos($identificacao, '-') + 1); $id_inscricao = substr($id_inscricao, 0, strpos($identificacao, '-')); // var_dump($id_evento); // var_dump($id_inscricao); // var_dump($id_pessoa); $inscricao = Inscricoes::getInstance()->getById($id_inscricao); if ($inscricao == null) { echo json_encode(array('erro' => 'Inscrição não localizada...')); return; } else { if ($inscricao->id_pessoa != $id_pessoa) { echo json_encode(array('erro' => 'As informações não batem! Inscrição X Pessoa')); return; } else { if ($inscricao->id_evento != $id_evento) { echo json_encode(array('erro' => 'As informações não batem! Inscrição X Evento')); return; } } } } else { if (filter_var($identificacao, FILTER_VALIDATE_EMAIL) !== false) { // $evento = $evento = ControllerApi::getEventoAtual(); if ($evento == null) { echo json_encode(array('erro' => 'Não existe um evento atual')); return; } $pessoa = Pessoas::getInstance()->getByEmail(strtolower(trim($identificacao))); if ($pessoa == null) { echo json_encode(array('erro' => 'Não te encontramos em nossa base de dados (' . $identificacao . ')')); return; } $inscricao = Inscricoes::getInstance()->getByEventoPessoa($evento->id, $pessoa->id); if ($inscricao == null) { echo json_encode(array('erro' => 'Você não se inscreveu pra este evento!')); return; } } else { echo json_encode(array('erro' => 'Do que você está falando afinal?')); return; } } // Fazer - retornar $inscricao->presenca(); $nInscrito = ControllerApi::decorateInscricao($inscricao, true); $return = PLib::object_to_array($nInscrito); echo json_encode($return, JSON_NUMERIC_CHECK); }); // Setar dados da inscrição - por enquanto apenas categoria $app->post('/inscricao/:idInscricao/', function ($idInscricao) use($app) { /* @var $inscricao Inscricao */ $inscricao = Inscricoes::getInstance()->getById($idInscricao); if ($inscricao == null) { echo json_encode(array('erro' => 'Inscrição não localizada na base de dados (' . $idInscricao . ')')); return; } // Categoria - Como bloquear mudar a categoria? Depois de que momento não pode mudar mais? $id_categoria = $_POST['id_categoria']; $inscricao->setCategoria($id_categoria); $inscricao->save(); $return = array('inscricao' => $inscricao); $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); }); // Retorna uma inscrição $app->get('/inscricao/:idInscricao/', function ($idInscricao) use($app) { /* @var $inscricao Inscricao, e o evento referente */ $inscricao = Inscricoes::getInstance()->getById($idInscricao); if ($inscricao == null) { echo json_encode(array('erro' => 'Inscrição não localizada na base de dados (' . $idInscricao . ')')); return; } $nInscrito = ControllerApi::decorateInscricao($inscricao, true); $nInscrito = PLib::object_to_array($nInscrito); echo json_encode($nInscrito, JSON_NUMERIC_CHECK); }); // Confirma um inscrito $app->post('/inscricao/:idInscricao/confirmar/', function ($idInscricao) use($app) { /* @var $inscricao Inscricao */ $inscricao = Inscricoes::getInstance()->getById($idInscricao); if ($inscricao == null) { echo json_encode(array('erro' => 'Inscrição não localizada na base de dados (' . $idInscricao . ')')); return; } // Se evento pago, verificar se informações vieram no post if ($inscricao->valor_inscricao > 0 && $_POST['forma_pagamento'] == null) { $return = array('erro' => 'É preciso informar a forma de pagamento da insrição.'); } else { if ($inscricao->valor_inscricao > 0 && $_POST['id_pessoa_confirmacao'] == null) { $return = array('erro' => 'É preciso informar a pessoa que está confirmando o pagamento.'); } else { if ($_POST['id_pessoa_confirmacao'] == null) { $return = array('erro' => 'É preciso informar a pessoa que está confirmando a inscrição.'); } else { if (Pessoas::getInstance()->getById($_POST['id_pessoa_confirmacao'])->id_user == null) { $return = array('erro' => 'O usuário confirmando precisa ser um admin.'); } else { $inscricao->id_pessoa_confirmacao = $_POST['id_pessoa_confirmacao']; if ($inscricao->confirmado != 1) { $inscricao = $inscricao->confirmar($_POST['forma_pagamento'], $inscricao->valor_inscricao); } $nInscrito = ControllerApi::decorateInscricao($inscricao, true); $nEvento = ControllerApi::decorateEvento($inscricao->evento(), true); $return = array('evento' => $nEvento, 'inscricao' => $nInscrito); } } } } $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); }); // Dá presença a um inscrito $app->get('/inscricao/:idInscricao/presente/', function ($idInscricao) use($app) { /* @var $inscricao Inscricao */ $inscricao = Inscricoes::getInstance()->getById($idInscricao); if ($inscricao == null) { echo json_encode(array('erro' => 'Inscrição não localizada na base de dados (' . $idInscricao . ')')); return; } $inscricao = $inscricao->presenca(); $nInscrito = ControllerApi::decorateInscricao($inscricao, true); $nEvento = ControllerApi::decorateEvento($inscricao->evento(), true); $return = array('evento' => $nEvento, 'inscricao' => $nInscrito); $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); }); // Atualiza dados de uma pessoa $app->post('/pessoa/:identificacao/', function ($identificacao) use($app) { /* @var $pessoa Pessoa */ $identificacao = urldecode($identificacao); $pessoa = Pessoas::getInstance()->getByMd5($identificacao); if ($pessoa == null) { echo json_encode(array('erro' => 'Pessoa nao localizada na base de dados (' . $identificacao . ')')); return; } // Extras? $extras = $_POST['extras']; if ($extras) { foreach ($extras as $chave => $valor) { $pessoa->setExtra($chave, ucfirst($chave), $valor); } $pessoa->save(); } $pessoa = Pessoas::getInstance()->getByMd5($identificacao); $nPessoa = ControllerApi::decoratePessoa($pessoa); $return = array('pessoa' => $nPessoa); $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); }); // Obter todas pessoas $app->get('/pessoas/todas/', function () use($app) { /* @var $pessoas Pessoa[] */ $pessoas = Pessoas::getInstance()->getAll(); $return = array(); foreach ($pessoas as $pessoa) { if ($pessoa->getCountConfirmados()) { $return[] = ControllerApi::decoratePessoa($pessoa); } } $return = array('pessoas' => $return); $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); }); // $app->get('/reset/', function () use ($app) { // // Zera todos os dados do site... // if (DB_NAME == 'emjf_wpjf' || DB_NAME == 'emjf') { // /* @var $wpdb wpdb */ // $sql = "UPDATE ev_inscricoes SET confirmado=NULL, data_pagamento=NULL, data_confirmacao=NULL, valor_pago=NULL, taxa_cobranca=NULL, valor_liquido=NULL,codigo_pagamento=NULL, formapagamento_pagseguro=NULL,presente=NULL,status_gateway=NULL,forma_pagamento_gateway=NULL,codigo_gateway=NULL,data_atualizacao_gateway=NULL,vencido=NULL,data_vencido=NULL,data_cancelamento=NULL,forma_pagamento=NULL,id_situacao=NULL"; // $return = array('sucesso' => 'Dados resetados'); // echo json_encode($return, JSON_NUMERIC_CHECK); // } else { // $return = array('erro' => 'Ops.. aqui não pode!'); // echo json_encode($return, JSON_NUMERIC_CHECK); // } // }); }); $app->run(); }
private function runAppPreFlight($action, $actionName, $mwOptions = NULL, $headers = array()) { \Slim\Environment::mock(array('REQUEST_METHOD' => 'OPTIONS', 'SERVER_NAME' => 'localhost', 'SERVER_PORT' => 80, 'ACCEPT' => 'application/json', 'SCRIPT_NAME' => '/index.php', 'PATH_INFO' => '/' . $actionName)); $app = new \Slim\Slim(); $app->setName($actionName); $mw = function () { // Do nothing }; if (isset($mwOptions)) { if (is_callable($mwOptions)) { $mw = $mwOptions; } else { $mwOptions['appName'] = $actionName; $mw = \CorsSlim\CorsSlim::routeMiddleware($mwOptions); } } $app->options('/:name', $mw, function ($name) use($app, $action) { }); $app->delete('/:name', $mw, function ($name) use($app, $action) { if ($app->request->isHead()) { $app->status(204); return; } $app->contentType('application/json'); $app->response->write(json_encode(array("action" => $action, "method" => "DELETE", "name" => $name))); }); foreach ($headers as $key => $value) { $app->request->headers()->set($key, $value); } $app->run(); return $app; }
<?php require 'vendor/autoload.php'; require 'libs/Calendar.php'; require 'libs/Blog.php'; $app = new \Slim\Slim(); $app = new \Slim\Slim(array('templates.path' => './templates', 'debug' => true, 'mode' => 'development')); $app->contentType('text/html; charset=utf-8'); $app->get('/', function () use($app) { $search = $app->view()->fetch('search.php', array()); $app->render('main.php', array('searchField' => $search)); }); $app->get('/blog', function () use($app) { $blog = new \Libs\Blog(); $search = $app->view()->fetch('search.php', array()); $app->render('blog.php', array('blog' => $blog, 'searchField' => $search)); }); $app->get('/blog/:postTitle', function ($postTitle) use($app) { $blog = new \Libs\Blog(); $search = $app->view()->fetch('search.php', array()); $app->render('blogpost.php', array('blog' => $blog, 'searchField' => $search, 'postTitle' => $postTitle)); }); $app->get('/calendar/:timeMin', function ($timeMin) use($app) { $app->contentType('application/json; charset=utf-8'); $calendar = new \Libs\Calendar(); $limit = $paramValue = $app->request->get('limit'); $nextEvent = $calendar->getCalendar($timeMin, $limit); echo $nextEvent; }); $app->get('/calendar', function () use($app) { $app->contentType('application/json; charset=utf-8'); $calendar = new \Libs\Calendar();
require 'app/models/UserModel.php'; require 'app/models/SettingModel.php'; require 'app/controllers/BaseController.php'; require 'app/controllers/AdminController.php'; require 'app/controllers/ChapterController.php'; require 'app/controllers/ComicController.php'; require 'app/controllers/UserController.php'; require 'app/controllers/SettingController.php'; require 'app/controllers/InstallController.php'; \Slim\Slim::registerAutoloader(); $logWriter = new \Slim\LogWriter(fopen('log', 'a')); $app = new \Slim\Slim(); $app->config(array('debug' => false, 'log.enabled' => false, 'log.writer' => $logWriter, 'templates.path' => 'app/templates')); // GET route $app->get('/feed', function () use($app) { $app->contentType("text/xml"); $comicController = new ComicController(); $data = $comicController->feed(); $app->render($data['layout'] . '.php', $data); }); // GET route $app->get('/about', function () use($app) { $comicController = new ComicController(); $data = $comicController->about(); $app->render($data['layout'] . '.php', $data); }); // GET route $app->get('/', function () use($app) { $comicController = new ComicController(); $data = $comicController->view(); $app->render($data['layout'] . '.php', $data);
<?php require 'Slim/Slim.php'; \Slim\Slim::registerAutoloader(); $app = new \Slim\Slim(); $app->contentType('text/html; charset=utf-8'); //INCLUIR ARCHIVO DE BACKEND include "../back/pruebaArqui/serviciosPrueba.php"; //NADYA include "../back/Publicacion_Documental/serviciosIdioma.php"; include "../back/Publicacion_Documental/serviciosAutor.php"; include "../back/Administracion_Usuario_Grupo/serviciosUsuario.php"; include "../back/Administracion_Usuario_Grupo/serviciosInstitucion.php"; include "../back/Administracion_Usuario_Grupo/serviciosGrupo.php"; include "../back/Busqueda/serviciosBusqueda.php"; //ALBERT include "../back/Publicacion_Documental/serviciosTipoPublicacion.php"; include "../back/Publicacion_Documental/serviciosTipoFicha.php"; include "../back/Publicacion_Documental/serviciosEtiqueta.php"; include "../back/Publicacion_Documental/serviciosPublicacion.php"; include "../back/Publicacion_Documental/serviciosFicha.php"; include "../back/Seguridad/serviciosLogin.php"; include "../back/Seguridad/serviciosPermiso.php"; include "../back/Publicacion_Documental/serviciosListaPublicacion.php"; $app->run(); //echo 'slim cargado';
Author Mail: francisco.capone@gmail.com Author URI: http://www.franciscocapone.com */ @session_start(); require_once 'class/Utils.class.php'; require_once 'class/AbstractCURL.class.php'; require_once 'class/Bip.class.php'; require_once 'class/vendor/Slim/Slim.php'; \Slim\Slim::registerAutoloader(); $restBipApp = new \Slim\Slim(); $restBipApp->config(array('templates.path' => 'vistas')); $restBipApp->get('/', function () use($restBipApp) { $restBipApp->response->setStatus(200); echo "RestFUL BIP!"; }); $restBipApp->contentType('text/html; charset=utf-8'); $restBipApp->get('/getSaldo/:id', function ($id) { $restBipApp = \Slim\Slim::getInstance(); try { $resultadosSaldo = new Bip($id); if ($resultadosSaldo) { $restBipApp->response->setStatus(200); $restBipApp->response()->headers->set('Access-Control-Allow-Origin', '*'); $restBipApp->response()->headers->set('Content-Type', 'application/json'); print_r($resultadosSaldo->getData()); } } catch (Exception $e) { $restBipApp->response()->setStatus(404); echo '{"error":{"text":' . $e->getMessage() . '}}'; } });
} else { echo "Success!, now i don't know what to do with this?"; var_dump($_GET["url"]); var_dump($_SESSION); exit; } } else { //Very wrong, go home $app->redirect($app->request->getRootUri()); } }); $app->get("/user/social/login/callback/facebook", function () use($app, $util) { $app->render("front/social/fbpopup.twig"); }); $app->post("/user/login/facebook/proc", function () use($app, $util) { $app->contentType("application/json"); echo json_encode($_POST); }); $app->post("/user/login/proc", function () use($app, $util, $twig) { $username = $_POST["username"]; $password = $_POST["password"]; $backUrl = $_POST["back_url"]; if (false == false) { $app->redirect("http://" . $_SERVER["HTTP_HOST"] . $app->request->getRootUri() . "/auth?backurl=" . urlencode(urlencode($backUrl))); exit; } else { $_SESSION["user"] = $results; $app->redirect($backUrl); } }); $app->get("/user/register", function () use($app, $util, $mailer) {