Skip to content

Commit

Permalink
Merge pull request #8 from justbetter/feature/refactor
Browse files Browse the repository at this point in the history
Refactor
  • Loading branch information
VincentBean authored Aug 5, 2024
2 parents 7535e20 + 3ca40fd commit f3cc53b
Show file tree
Hide file tree
Showing 25 changed files with 270 additions and 314 deletions.
9 changes: 9 additions & 0 deletions UPGRADE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Upgrade guide

## 4.2.x to 4.3.x

The 4.3.x release adds support for `justbetter/laravel-magento-prices` version `^2.0`.

### Refactor

A few classes like the resource have been renamed. The resource `Prices` is now `PriceResource`. Make sure to update all references if you make use of it manually.
23 changes: 19 additions & 4 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,30 @@
}
],
"require": {
"php": "^8.1",
"php": "^8.2",
"laravel/nova": "^4.0",
"justbetter/laravel-magento-prices": "^1.4",
"justbetter/laravel-magento-prices": "^2.0",
"bolechen/nova-activitylog": "^0.4.0"
},
"require-dev": {
"laravel/pint": "^1.16",
"orchestra/testbench": "^9.1",
"phpunit/phpunit": "^11.2",
"larastan/larastan": "^2.9",
"phpstan/phpstan-mockery": "^1.1"
},
"autoload": {
"psr-4": {
"JustBetter\\MagentoPricesNova\\": "src"
}
},
"config": {
"sort-packages": true
"scripts": {
"analyse": "phpstan",
"style": "pint --test",
"quality": [
"@analyse",
"@style"
]
},
"extra": {
"laravel": {
Expand All @@ -36,6 +48,9 @@
]
}
},
"config": {
"sort-packages": true
},
"minimum-stability": "stable",
"prefer-stable": true,
"repositories": [
Expand Down
11 changes: 11 additions & 0 deletions phpstan.neon
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
includes:
- ./vendor/larastan/larastan/extension.neon
- ./vendor/phpstan/phpstan-mockery/extension.neon

parameters:
paths:
- src
level: 8
ignoreErrors:
- identifier: missingType.iterableValue
- identifier: missingType.generics
28 changes: 0 additions & 28 deletions src/Nova/Actions/MissingPrices.php

This file was deleted.

26 changes: 26 additions & 0 deletions src/Nova/Actions/ProcessProductsWithMissingPrices.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?php

namespace JustBetter\MagentoPricesNova\Nova\Actions;

use Illuminate\Support\Collection;
use JustBetter\MagentoPrices\Jobs\Utility\ProcessProductsWithMissingPricesJob;
use Laravel\Nova\Actions\Action;
use Laravel\Nova\Actions\ActionResponse;
use Laravel\Nova\Fields\ActionFields;

class ProcessProductsWithMissingPrices extends Action
{
public function __construct()
{
$this
->withName(__('Search missing prices in Magento'))
->standalone();
}

public function handle(ActionFields $fields, Collection $models): ActionResponse
{
ProcessProductsWithMissingPricesJob::dispatch();

return ActionResponse::message(__('Searching...'));
}
}
49 changes: 0 additions & 49 deletions src/Nova/Actions/Reset.php

This file was deleted.

49 changes: 49 additions & 0 deletions src/Nova/Actions/ResetFailures.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?php

namespace JustBetter\MagentoPricesNova\Nova\Actions;

use Illuminate\Support\Collection;
use JustBetter\MagentoPrices\Models\Price;
use Laravel\Nova\Actions\Action;
use Laravel\Nova\Actions\ActionResponse;
use Laravel\Nova\Fields\ActionFields;
use Laravel\Nova\Fields\Boolean;
use Laravel\Nova\Http\Requests\NovaRequest;

class ResetFailures extends Action
{
public function __construct()
{
$this->withName(__('Reset failures'));
}

public function handle(ActionFields $fields, Collection $models): ActionResponse
{
/** @var bool $retrieve */
$retrieve = $fields->get('retrieve');

/** @var bool $update */
$update = $fields->get('update');

$models->each(fn (Price $price): bool => $price->update([
'sync' => true,
'failed_at' => null,
'fail_count' => 0,
'retrieve' => $retrieve,
'update' => $update,
]));

return ActionResponse::message(__('Failures reset!'));
}

public function fields(NovaRequest $request): array
{
return [
Boolean::make(__('Retrieve'), 'retrieve')
->help(__('Set the retrieve flag')),

Boolean::make(__('Update'), 'update')
->help(__('Set the update flag')),
];
}
}
38 changes: 27 additions & 11 deletions src/Nova/Actions/RetrieveAllPrices.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,43 @@

namespace JustBetter\MagentoPricesNova\Nova\Actions;

use Illuminate\Bus\Queueable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Support\Carbon;
use Illuminate\Support\Collection;
use JustBetter\MagentoPrices\Jobs\RetrievePricesJob;
use JustBetter\MagentoPrices\Jobs\Retrieval\RetrieveAllPricesJob;
use Laravel\Nova\Actions\Action;
use Laravel\Nova\Actions\ActionResponse;
use Laravel\Nova\Fields\ActionFields;
use Laravel\Nova\Fields\DateTime;
use Laravel\Nova\Http\Requests\NovaRequest;

class RetrieveAllPrices extends Action
{
use InteractsWithQueue;
use Queueable;

public $standalone = true;
public $name = 'Retrieve All Prices';
public function __construct()
{
$this
->withName(__('Retrieve all prices'))
->standalone();
}

public function handle(ActionFields $fields, Collection $models): ActionResponse
{
RetrievePricesJob::dispatch();
/** @var ?string $from */
$from = $fields->get('from');

if ($from !== null) {
$carbon = Carbon::parse($from);
}

RetrieveAllPricesJob::dispatch($carbon ?? null);

return ActionResponse::message('Started retrieving');
return ActionResponse::message(__('Retrieving...'));
}
}

public function fields(NovaRequest $request): array
{
return [
DateTime::make(__('From'), 'from')
->help(__('Optional, retrieve updated prices from this date')),
];
}
}
23 changes: 13 additions & 10 deletions src/Nova/Actions/RetrievePrice.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,9 @@

namespace JustBetter\MagentoPricesNova\Nova\Actions;

use Illuminate\Bus\Queueable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Support\Collection;
use JustBetter\MagentoPrices\Jobs\RetrievePriceJob;
use JustBetter\MagentoPrices\Jobs\Retrieval\RetrievePriceJob;
use JustBetter\MagentoPrices\Models\Price;
use Laravel\Nova\Actions\Action;
use Laravel\Nova\Actions\ActionResponse;
use Laravel\Nova\Fields\ActionFields;
Expand All @@ -14,22 +13,26 @@

class RetrievePrice extends Action
{
use InteractsWithQueue;
use Queueable;

public $name = 'Retrieve';
public function __construct()
{
$this->withName(__('Retrieve selected price'));
}

public function handle(ActionFields $fields, Collection $models): ActionResponse
{
$models->each(fn($model) => RetrievePriceJob::dispatch($model->sku, $fields->force));
/** @var bool $force */
$force = $fields->get('force');

$models->each(fn (Price $model) => RetrievePriceJob::dispatch($model->sku, $force));

return ActionResponse::message('Started retrieve');
return ActionResponse::message(__('Retrieving...'));
}

public function fields(NovaRequest $request): array
{
return [
Boolean::make('Force Update', 'force')
Boolean::make(__('Force Update'), 'force')
->help(__('Update the price to Magento, even if it has not changed')),
];
}
}
47 changes: 0 additions & 47 deletions src/Nova/Actions/RetrievePriceByDate.php

This file was deleted.

Loading

0 comments on commit f3cc53b

Please sign in to comment.