mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
INA-5 | Use fractal
This commit is contained in:
parent
5d744ed8e4
commit
de4adadfae
@ -14,15 +14,20 @@ namespace App\Http\Controllers;
|
||||
use App\Http\Requests\TaskScheduler\CreateScheduledTaskRequest;
|
||||
use App\Http\Requests\TaskScheduler\UpdateScheduledJobRequest;
|
||||
use App\Http\Requests\TaskScheduler\UpdateScheduleRequest;
|
||||
use App\Jobs\Ninja\TaskScheduler;
|
||||
use App\Jobs\Report\ProfitAndLoss;
|
||||
use App\Models\ScheduledJob;
|
||||
use App\Models\Scheduler;
|
||||
use App\Transformers\TaskSchedulerTransformer;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
class TaskSchedulerController extends BaseController
|
||||
{
|
||||
protected $entity_type = TaskScheduler::class;
|
||||
protected $entity_transformer = TaskSchedulerTransformer::class;
|
||||
|
||||
/**
|
||||
* @OA\GET(
|
||||
* path="/api/v1/task_scheduler/",
|
||||
@ -49,7 +54,12 @@ class TaskSchedulerController extends BaseController
|
||||
|
||||
public function index()
|
||||
{
|
||||
return Scheduler::where('company_id', auth()->user()->company()->id)->cursor();
|
||||
set_time_limit(45);
|
||||
|
||||
$schedulers = Scheduler::where('company_id', auth()->user()->company()->id);
|
||||
|
||||
return $this->listResponse($schedulers);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -116,9 +126,9 @@ class TaskSchedulerController extends BaseController
|
||||
* )
|
||||
*/
|
||||
|
||||
public function show(Scheduler $scheduler): Scheduler
|
||||
public function show(Scheduler $scheduler)
|
||||
{
|
||||
return $scheduler;
|
||||
return $this->itemResponse($scheduler);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -46,10 +46,13 @@ class TaskScheduler implements ShouldQueue
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
foreach (MultiDB::$dbs as $db) {
|
||||
|
||||
$pending_schedulers = $this->fetchJobs();
|
||||
foreach ($pending_schedulers as $scheduler) {
|
||||
$this->doJob($scheduler);
|
||||
MultiDB::setDB($db);
|
||||
$pending_schedulers = $this->fetchJobs();
|
||||
foreach ($pending_schedulers as $scheduler) {
|
||||
$this->doJob($scheduler);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -61,7 +64,6 @@ class TaskScheduler implements ShouldQueue
|
||||
if (!$job || !$company) {
|
||||
return;
|
||||
}
|
||||
MultiDB::setDb($company->db);
|
||||
$parameters = $job->parameters;
|
||||
|
||||
|
||||
|
22
app/Transformers/ScheduledJobTransformer.php
Normal file
22
app/Transformers/ScheduledJobTransformer.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace App\Transformers;
|
||||
|
||||
|
||||
use App\Models\ScheduledJob;
|
||||
use App\Utils\Traits\MakesHash;
|
||||
|
||||
class ScheduledJobTransformer extends EntityTransformer
|
||||
{
|
||||
use MakesHash;
|
||||
|
||||
public function transform(ScheduledJob $job)
|
||||
{
|
||||
return [
|
||||
'id' => $this->encodePrimaryKey($job->id),
|
||||
'action_name' => $job->action_name,
|
||||
'parameters' => $job->parameters
|
||||
];
|
||||
}
|
||||
}
|
39
app/Transformers/TaskSchedulerTransformer.php
Normal file
39
app/Transformers/TaskSchedulerTransformer.php
Normal file
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace App\Transformers;
|
||||
|
||||
|
||||
use App\Models\ScheduledJob;
|
||||
use App\Models\Scheduler;
|
||||
use App\Utils\Traits\MakesHash;
|
||||
|
||||
class TaskSchedulerTransformer extends EntityTransformer
|
||||
{
|
||||
use MakesHash;
|
||||
|
||||
protected $defaultIncludes = [
|
||||
'job'
|
||||
];
|
||||
|
||||
public function includeJob(Scheduler $scheduler)
|
||||
{
|
||||
$transformer = new ScheduledJobTransformer($this->serializer);
|
||||
|
||||
return $this->item($scheduler->job, $transformer, ScheduledJob::class);
|
||||
}
|
||||
|
||||
public function transform(Scheduler $scheduler)
|
||||
{
|
||||
return [
|
||||
'id' => $this->encodePrimaryKey($scheduler->id),
|
||||
'company_id' => $this->encodePrimaryKey($scheduler->user_id),
|
||||
'paused' => $scheduler->paused,
|
||||
'archived' => $scheduler->archived,
|
||||
'repeat_every' => $scheduler->repeat_every,
|
||||
'start_from' => $scheduler->start_from,
|
||||
'scheduled_run' => $scheduler->scheduled_run,
|
||||
];
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user