You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

98 lines
3.6 KiB

<?php
namespace app\controllers;
use Slim\Routing\RouteCollectorProxy;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Valitron\Validator;
use Exception;
use app\Repositories\Bilhetes;
use app\shared\Logger;
use app\traits\Validate;
class CallController
{
private static Logger $logger;
const LOG_ACTIVE = true;
static function route()
{
self::$logger = new Logger('api' . date('Ymd'), self::LOG_ACTIVE);
self::$logger->debug('CallController->route()', true);
return function (RouteCollectorProxy $group) {
$group->post('/bilhetes', [self::class, 'listarBilhetes']);
$group->post('/eventos', [self::class, 'listarEventos']);
};
}
function listarBilhetes(Request $request, Response $response, array $args)
{
//self::$logger->debug('Org id do token: ' . print_r($request->getAttribute('orgs'), true), true);
try {
$validator = new Validator();
$validator->mapFieldsRules([
'id' => ['integer', ['min', 1]],
'uniqueid' => [],
'src' => [],
'dst' => [],
'data_i' => ['date'],
'data_f' => ['date'],
'entrada' => [],
'org_id' => ['integer', 'required']
]);
$body = json_decode($request->getBody()->getContents(), true);
$validator = $validator->withData($body);
if (!$validator->validate()) {
$response->getBody()
->write(json_encode($validator->errors()));
return $response->withStatus(422);
}
self::$logger->debug('Passed in bilhetes validation with body: ' . print_r($body, true), true);
$result = Bilhetes::getBilhetes($body);
$response->getBody()->write(json_encode(['status' => true, 'data' => $result]));
} catch (Exception $e) {
$response->getBody()->write(json_encode(['status' => false, 'data' => ["message" => "Nao foi possivel realizar a consulta! " . $e->getMessage()]]));
return $response->withStatus(500);
}
return $response;
}
public function listarEventos(Request $request, Response $response, array $args)
{
try {
$validator = new Validator();
$validator->mapFieldsRules([
'id' => ['integer', ['min', 1]],
'fila' => [],
'entrada' => [],
'uniqueid' => [],
'src' => [],
'dst' => [],
'data_i' => ['date'],
'data_f' => ['date'],
'org_id' => ['integer', 'required']
]);
$body = json_decode($request->getBody()->getContents(), true);
$validator = $validator->withData($body);
if (!$validator->validate()) {
$response->getBody()
->write(json_encode($validator->errors()));
return $response->withStatus(422);
}
self::$logger->debug('Passed in bilhetes validation with body: ' . print_r($body, true), true);
$result = Bilhetes::getEventosBilhetes($body);
$response->getBody()->write(json_encode(['status' => true, 'data' => $result]));
} catch (Exception $e) {
$response->getBody()->write(json_encode(['status' => false, 'data' => ["message" => "Nao foi possivel realizar a consulta! " . $e->getMessage()]]));
}
return $response;
}
}