forked from SimplesIP/pabx-app
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
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; |
|
} |
|
}
|
|
|