/**
  * 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']);
 }
示例#2
0
 /**
  * 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();
 }
示例#3
0
 /**
  * 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']);
 }
示例#4
0
        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');
示例#5
0
 /**
  * {@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);
     };
 }
示例#6
0
文件: index.php 项目: kennstphn/mini2
        $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();
示例#7
0
<?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);
示例#8
0
 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;
 }
示例#9
0
<?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()) {
示例#10
0
$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();
 }
示例#12
0
 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;
 }
示例#13
0
文件: index.php 项目: JoeX2/flug.dk
    <?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();
示例#14
0
文件: index.php 项目: ptyxis/ptyxis
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);
示例#15
0
<?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';
示例#16
0
	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() . '}}';
    }
});
示例#17
0
文件: index.php 项目: guhya/Slim
        } 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) {