<?php
/*
* Copyright 2017-08-31 Cámara de Comercio de Santa Marta para el Magdalena.
* Autor: Luis Montoya <lmontoya@ccsm.org.co at www.ccsm.org.co>.
* Archivo: index.
*
* Licenciado bajo la Licencia Apache, Versión 2.0;
* Usted no puede usar este archivo excepto en conformidad con la Licencia.
* Usted puede obtener una copia de la Licencia en
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* A menos que sea requerido por la ley aplicable o acordado por escrito, el software
* Distribuido bajo la licencia se distribuye en una "AS IS" o "COMO ESTA" BASE,
* SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, expresas o implícitas.
* Consulte la Licencia para los permisos y Limitaciones bajo la Licencia.
*/
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
require_once './config.php';
//$app = new \Slim\App;
$app = new \Slim\App([
'settings' => [
'displayErrorDetails' => true,
'debug' => true
]
]);
$app->add(function ($req, $res, $next) {
$response = $next($req, $res);
return $response
->withHeader('Access-Control-Allow-Origin', '*')
->withHeader('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Accept, Origin, Authorization')
->withHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
});
$app->add(function ($request, $response, $next) {
$method = $request->getMethod();
$uri = $request->getUri();
if( $uri->getPath() === '/' ){
$response = $next($request, $response);
$response = $response->withHeader('Content-type', 'text/html');
}else{
$response = $next($request, $response);
$response = $response->withHeader('Content-type', 'application/json');
}
//Log de API
return $response;
});
$base = str_replace( 'api/', '', $_SERVER['REQUEST_URI'] );
if($base != '/'){
$app->add(
new \Slim\Middleware\HttpBasicAuthentication([
"secure" => false,
'realm' => 'Protected',
"authenticator" => new Autenticacion(),
"error" => function ($request, $response, $arguments) {
$data = [];
$data["status"] = "error";
$data["message"] = $arguments["message"];
return $response->write(json_encode($data));
}
])
);
}
$checkProxyHeaders = true;
$trustedProxies = ['10.0.0.1', '10.0.0.2'];
$app->add(new RKA\Middleware\IpAddress($checkProxyHeaders, $trustedProxies));
$app->get('/',function ($request, $response, $args) {
require_once DIR_LIBRERIA . '/clases/Autoload.php';
require_once DIR_API.'plantilla/index.html.php';
//return $response->write("Bienvenido al Api REST de la Cámara de Comercio de Santa Marta");
});
$app->map(['GET', 'POST', 'PUT', 'DELETE'], '/{componente}/{controlador}/{operacion}[/{params:.*}]', function ($request, $response, $args) {
require_once DIR_LIBRERIA.'vendor/autoload.php';
require_once DIR_LIBRERIA.'clases/Autoload.php';
require_once DIR_LIBRERIA.'Main.php';
if($request->getMethod()=='GET'):
$params = explode('/', $request->getAttribute('params'));
else:
$params = $request->getParsedBody();
endif;
$_POST['controlador'] = $request->getAttribute('controlador');
$_POST['componente'] = $request->getAttribute('componente');
$_POST['operacion'] = $request->getAttribute('operacion');
Cliente::abrirSesion(getUsuario($request));
Cliente::registroIP($request->getAttribute('ip_address'));
require_once DIR_SICAM32 . 'api.php';
return $response;
});
$app->get('/probar/{operacion}',
function ($request, $response, $args) {
require_once DIR_LIBRERIA.'vendor/autoload.php';
require_once DIR_LIBRERIA.'clases/Autoload.php';
require_once DIR_LIBRERIA.'Main.php';
$operacion = $args['operacion'];
switch ($operacion) {
case 'correo':
$htmlMensaje = PlantillasCorreos::procesar(
"afiliados/msj-afiliados",
array('%%INFORPRUEBA%%'),
array("Lorem Ipsum es simplemente el texto de relleno de las imprentas y a.")
);
$mensaje = PlantillasCorreos::mensaje( $htmlMensaje , "pruebas@ccsm.org.co", "probando");
$envio = Correos::enviarContacto(
array("pruebas@ccsm.org.co", "probando"), "pruebas",
$mensaje,
array("pruebas@ccsm.org.co", "probando")
);
$response->write("probadno envio " . $envio);
break;
default:
break;
}
return $response;
});
//$app->get('/{componente}/{operacion}',
// function ($request, $response, $args) {
// require_once DIR_LIBRERIA . '/clases/Autoload.php';
//
// $response->write(procesarPeticion($args));
// return $response;
//});
//$app->get('/{componente}/{operacion}/{dato1}', function ($request, $response, $args) {
//
// $response->getBody()->write(procesarPeticion($args));
//
// return $response;
//});
function getUsuario($request) {
$credencialUsuario = explode(':', $request->getUri()->getUserInfo());
$usuario = Usuarios::datosCompletosApiporNombre($credencialUsuario[0]);
return $usuario;
}
$app->run();