Enqueue ventas para enviar a Toku
This commit is contained in:
@ -31,9 +31,9 @@ class Toku extends Controller
|
||||
];
|
||||
try {
|
||||
$venta = $ventaService->getById($venta_id);
|
||||
$cuotas = $tokuService->sendCuotas($venta, $input['cuotas']);
|
||||
$cuotas = $tokuService->sendCuotas($venta, $input['cuotas'] ?? []);
|
||||
$output['cuotas'] = array_map(function($row) { return $row['cuota_id']; }, $cuotas);
|
||||
if (count($cuotas) < count($input['cuotas'])) {
|
||||
if (count($cuotas) < count($input['cuotas'] ?? [])) {
|
||||
$output['partial'] = true;
|
||||
} else {
|
||||
$output['success'] = true;
|
||||
@ -111,4 +111,21 @@ class Toku extends Controller
|
||||
$output = $tokuService->reset();
|
||||
return $this->withJson($response, $output);
|
||||
}
|
||||
public function enqueue(ServerRequestInterface $request, ResponseInterface $response,
|
||||
Service\Queue $queueService, Service\Venta\MediosPago\Toku $tokuService): ResponseInterface
|
||||
{
|
||||
$input = $request->getParsedBody();
|
||||
$output = [
|
||||
'input' => $input,
|
||||
'success' => false
|
||||
];
|
||||
$queue = $tokuService->queue($input['venta_ids'] ?? []);
|
||||
if (count($queue) > 0) {
|
||||
foreach ($queue as $job) {
|
||||
$queueService->enqueue($job);
|
||||
}
|
||||
$output['success'] = true;
|
||||
}
|
||||
return $this->withJson($response, $output);
|
||||
}
|
||||
}
|
||||
|
@ -261,6 +261,21 @@ class Toku extends Ideal\Service
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
public function queue(array $venta_ids): array
|
||||
{
|
||||
$queues = [];
|
||||
foreach ($venta_ids as $venta_id) {
|
||||
if ($this->subscription->queue($venta_id)) {
|
||||
$queues []= [
|
||||
'type' => 'request',
|
||||
'url' => "/api/external/toku/cuotas/{$venta_id}",
|
||||
'method' => 'post',
|
||||
'body' => []
|
||||
];
|
||||
}
|
||||
}
|
||||
return $queues;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $request
|
||||
|
@ -94,6 +94,21 @@ class Subscription extends AbstractEndPoint
|
||||
}
|
||||
return compact('existingSubscriptions', 'missingVentas');
|
||||
}
|
||||
public function queue(int $venta_id): bool
|
||||
{
|
||||
try {
|
||||
$venta = $this->ventaService->getById($venta_id);
|
||||
} catch (Read $exception) {
|
||||
$this->logger->warning($exception);
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
$subscription = $this->subscriptionRepsitory->fetchByVenta($venta_id);
|
||||
return false;
|
||||
} catch (EmptyResult) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public function save(array $data): bool
|
||||
{
|
||||
|
Reference in New Issue
Block a user