Browse Source

implementei metodo de buscar filas

1.9
parent
commit
e50e4c1ffb
  1. 21
      app/Repositories/Queue.php
  2. 4
      app/controllers/CallController.php
  3. 42
      app/controllers/QueueController.php
  4. 2
      app/core/Repository.php

21
app/Repositories/Queue.php

@ -1,10 +1,29 @@
<?php
namespace app\models;
namespace app\Repositories;
use app\core\Repository;
class Queue extends Repository
{
protected static $table = 'pbx_queues_grupos';
public static function getQueue(array $data): array
{
$query = "SELECT id, REGEXP_REPLACE(nome, '@[0-9]+', '') AS nome, numero, musicclass, strategy,
servicelevel, status, tempo_ring, modo_atendimento, disponivelfila, libera_pausa
FROM pbx_queues_grupos
WHERE org_id = $data[org_id] ";
foreach ($data as $k => $v) {
if ($k === 'nome') {
$query .= " AND $k LIKE :$k ";
continue;
}
$query .= "AND $k = :$k ";
}
$query .= " ORDER BY id";
return self::query($query, $data, 'all');
}
}

4
app/controllers/CallController.php

@ -17,7 +17,7 @@ class CallController
private static Logger $logger;
const LOG_ACTIVE = true;
static function route()
public static function route()
{
self::$logger = new Logger('api' . date('Ymd'), self::LOG_ACTIVE);
self::$logger->debug('CallController->route()', true);
@ -28,7 +28,7 @@ class CallController
};
}
function listarBilhetes(Request $request, Response $response, array $args)
public function listarBilhetes(Request $request, Response $response, array $args)
{
//self::$logger->debug('Org id do token: ' . print_r($request->getAttribute('orgs'), true), true);
try {

42
app/controllers/QueueController.php

@ -2,41 +2,67 @@
namespace app\controllers;
use app\models\Queue;
use app\traits\Validate;
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\Queue;
use app\shared\Logger;
use app\traits\Validate;
class QueueController
{
use Validate;
static function route()
private static Logger $logger;
const LOG_ACTIVE = true;
public static function route()
{
self::$logger = new Logger('api' . date('Ymd'), self::LOG_ACTIVE);
return function (RouteCollectorProxy $group) {
$group->post('/listar', [self::class, 'listarQueue']);
};
}
function listarQueue(Request $request, Response $response, array $args)
public function listarQueue(Request $request, Response $response, array $args)
{
self::$logger->debug('CallController->route()', true);
try {
$validator = new Validator();
$validator->mapFieldsRules([
'id' => ['integer', ['min', 1]],
'nome' => [],
'org_id' => ['integer', 'required']
]);
$body = json_decode($request->getBody()->getContents(), true);
$dados = $this->validateData($request);
$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 = Queue::getQueue($body);
/*
$dados['org_id'] = $body['org_id'];
$data = Queue::find($dados, [
'id', "REGEXP_REPLACE(nome, '@[0-9]+', '') AS nome", 'numero', 'musicclass', 'strategy', 'servicelevel',
'status', 'tempo_ring', 'modo_atendimento',
'disponivelfila', 'libera_pausa'
]);
]); */
if (!$data) {
if (!$result) {
$response->getBody()->write(json_encode(['status' => false, 'data' => ['message' => 'Nenhum resultado encontrado!']]));
} else {
$response->getBody()->write(json_encode(['status' => true, 'data' => $data]));
$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()]]));

2
app/core/Repository.php

@ -34,7 +34,7 @@ abstract class Repository
foreach ($params as $key => $value) {
// menaging LIKE statement in query
if (in_array($key, ['src', 'dst', 'entrada', 'fila', 'evento'])) {
if (in_array($key, ['src', 'dst', 'entrada', 'fila', 'evento', 'nome'])) {
$value = "%$value%";
}
$stmt->bindValue(":$key", $value, (is_int($value) ? PDO::PARAM_INT : PDO::PARAM_STR));

Loading…
Cancel
Save