Skip to content

Commit 95fb562

Browse files
authored
Merge pull request #3 from justbetter/feature/refactor
Refactor
2 parents 768fdb4 + dc06ad5 commit 95fb562

25 files changed

+279
-226
lines changed

UPGRADE.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Upgrade guide
2+
3+
## 4.1.x to 4.2.x
4+
5+
The 4.2.x release adds support for `justbetter/laravel-magento-stock` version `^2.0`.
6+
7+
### Refactor
8+
9+
A few classes like the resource have been renamed. The resource `Stock` is now `StockResource`. Make sure to update all references if you make use of it manually.
10+
11+
### Configuration file
12+
13+
The configuration file has been removed. If you wish to customize the fields in the resource, you can create your own resource.

composer.json

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,43 @@
33
"description": "Nova integration for justbetter/laravel-magento-stock",
44
"type": "package",
55
"license": "MIT",
6+
"authors": [
7+
{
8+
"name": "Vincent Boon",
9+
"email": "[email protected]",
10+
"role": "Developer"
11+
},
12+
{
13+
"name": "Ramon Rietdijk",
14+
"email": "[email protected]",
15+
"role": "Developer"
16+
}
17+
],
618
"require": {
719
"php": "^8.1",
820
"laravel/nova": "^4.0",
9-
"justbetter/nova-error-logger": "^4.1.0",
10-
"justbetter/laravel-magento-stock": "^1.2.0",
21+
"justbetter/laravel-magento-stock": "^2.0",
1122
"bolechen/nova-activitylog": "^0.4.0"
1223
},
24+
"require-dev": {
25+
"laravel/pint": "^1.16",
26+
"orchestra/testbench": "^9.1",
27+
"phpunit/phpunit": "^11.2",
28+
"larastan/larastan": "^2.9",
29+
"phpstan/phpstan-mockery": "^1.1"
30+
},
1331
"autoload": {
1432
"psr-4": {
1533
"JustBetter\\MagentoStockNova\\": "src"
1634
}
1735
},
18-
"config": {
19-
"sort-packages": true
36+
"scripts": {
37+
"analyse": "phpstan",
38+
"style": "pint --test",
39+
"quality": [
40+
"@analyse",
41+
"@style"
42+
]
2043
},
2144
"extra": {
2245
"laravel": {
@@ -25,8 +48,11 @@
2548
]
2649
}
2750
},
51+
"config": {
52+
"sort-packages": true
53+
},
2854
"minimum-stability": "dev",
29-
"prefer-stable": false,
55+
"prefer-stable": true,
3056
"repositories": [
3157
{
3258
"type": "composer",

config/magento-stock-nova.php

Lines changed: 0 additions & 10 deletions
This file was deleted.

phpstan.neon

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
includes:
2+
- ./vendor/larastan/larastan/extension.neon
3+
- ./vendor/phpstan/phpstan-mockery/extension.neon
4+
5+
parameters:
6+
paths:
7+
- src
8+
level: 8
9+
ignoreErrors:
10+
- identifier: missingType.iterableValue
11+
- identifier: missingType.generics

src/Nova/Actions/Compare.php

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
use Illuminate\Queue\InteractsWithQueue;
77
use Illuminate\Queue\SerializesModels;
88
use Illuminate\Support\Collection;
9-
use JustBetter\MagentoStock\Jobs\DispatchComparisonsJob;
9+
use JustBetter\MagentoStock\Jobs\Comparison\DispatchComparisonsJob;
1010
use Laravel\Nova\Actions\Action;
1111
use Laravel\Nova\Actions\ActionResponse;
1212
use Laravel\Nova\Fields\ActionFields;
@@ -17,14 +17,17 @@ class Compare extends Action
1717
use Queueable;
1818
use SerializesModels;
1919

20-
public $name = 'Compare Stock between Nova and Magento';
21-
22-
public $standalone = true;
20+
public function __construct()
21+
{
22+
$this
23+
->withName(__('Compare Stock between Nova and Magento'))
24+
->standalone();
25+
}
2326

2427
public function handle(ActionFields $fields, Collection $models): ActionResponse
2528
{
2629
DispatchComparisonsJob::dispatch();
2730

28-
return ActionResponse::message(__('Starting compare'));
31+
return ActionResponse::message(__('Comparing...'));
2932
}
3033
}

src/Nova/Actions/Process.php

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
3+
namespace JustBetter\MagentoStockNova\Nova\Actions;
4+
5+
use Illuminate\Bus\Queueable;
6+
use Illuminate\Queue\InteractsWithQueue;
7+
use Illuminate\Queue\SerializesModels;
8+
use Illuminate\Support\Collection;
9+
use JustBetter\MagentoStock\Jobs\ProcessStocksJob;
10+
use Laravel\Nova\Actions\Action;
11+
use Laravel\Nova\Actions\ActionResponse;
12+
use Laravel\Nova\Fields\ActionFields;
13+
14+
class Process extends Action
15+
{
16+
use InteractsWithQueue;
17+
use Queueable;
18+
use SerializesModels;
19+
20+
public function __construct()
21+
{
22+
$this
23+
->withName(__('Process pending stock retrievals and updates'))
24+
->standalone();
25+
}
26+
27+
public function handle(ActionFields $fields, Collection $models): ActionResponse
28+
{
29+
ProcessStocksJob::dispatch();
30+
31+
return ActionResponse::message(__('Processing...'));
32+
}
33+
}

src/Nova/Actions/ResetFailures.php

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,32 @@
66
use Illuminate\Queue\InteractsWithQueue;
77
use Illuminate\Queue\SerializesModels;
88
use Illuminate\Support\Collection;
9-
use JustBetter\MagentoStock\Models\MagentoStock;
9+
use JustBetter\MagentoStock\Models\Stock;
1010
use Laravel\Nova\Actions\Action;
1111
use Laravel\Nova\Actions\ActionResponse;
1212
use Laravel\Nova\Fields\ActionFields;
1313

1414
class ResetFailures extends Action
1515
{
16-
use InteractsWithQueue, Queueable, SerializesModels;
16+
use InteractsWithQueue;
17+
use Queueable;
18+
use SerializesModels;
1719

18-
public $name = 'Reset failures';
20+
public function __construct()
21+
{
22+
$this->withName(__('Reset failures'));
23+
}
1924

25+
/** @param Collection<int, Stock> $models */
2026
public function handle(ActionFields $fields, Collection $models): ActionResponse
2127
{
22-
/** @var MagentoStock $model */
2328
foreach ($models as $model) {
2429
$model->update([
2530
'fail_count' => 0,
26-
'sync' => true
31+
'sync' => true,
2732
]);
2833
}
2934

30-
return ActionResponse::message(__('Finished'));
35+
return ActionResponse::message(__('Failures reset!'));
3136
}
3237
}

src/Nova/Actions/Retrieve.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use Illuminate\Queue\InteractsWithQueue;
88
use Illuminate\Queue\SerializesModels;
99
use Illuminate\Support\Collection;
10-
use JustBetter\MagentoStock\Jobs\RetrieveStockJob;
10+
use JustBetter\MagentoStock\Jobs\Retrieval\RetrieveStockJob;
1111
use Laravel\Nova\Actions\Action;
1212
use Laravel\Nova\Actions\ActionResponse;
1313
use Laravel\Nova\Fields\ActionFields;
@@ -20,27 +20,27 @@ class Retrieve extends Action implements ShouldQueue
2020
use Queueable;
2121
use SerializesModels;
2222

23-
public $name = 'Retrieve from source';
24-
2523
public function __construct()
2624
{
27-
$this->onQueue(config('magento-stock.queue'));
25+
$this
26+
->withName(__('Retrieve from source'))
27+
->onQueue(config('magento-stock.queue'));
2828
}
2929

3030
public function handle(ActionFields $fields, Collection $models): ActionResponse
3131
{
3232
foreach ($models as $model) {
33-
RetrieveStockJob::dispatch($model->sku, $fields->force ?? false);
33+
RetrieveStockJob::dispatch($model->sku, $fields->get('force', false));
3434
}
3535

36-
return ActionResponse::message(__('Retrieving :count stocks', ['count' => $models->count()]));
36+
return ActionResponse::message(__('Retrieving :count stocks...', ['count' => $models->count()]));
3737
}
3838

3939
public function fields(NovaRequest $request): array
4040
{
4141
return [
42-
Boolean::make('Force')
43-
->help('Forces an update in Magento. Even if the stock hasn\'t changed')
42+
Boolean::make(__('Force'), 'force')
43+
->help(__('Forces an update in Magento, even if the stock hasn\'t changed.')),
4444
];
4545
}
4646
}

src/Nova/Actions/RetrieveAll.php

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,32 @@
22

33
namespace JustBetter\MagentoStockNova\Nova\Actions;
44

5+
use Illuminate\Bus\Queueable;
6+
use Illuminate\Queue\InteractsWithQueue;
7+
use Illuminate\Queue\SerializesModels;
58
use Illuminate\Support\Collection;
6-
use JustBetter\MagentoStock\Jobs\RetrieveAllStockJob;
9+
use JustBetter\MagentoStock\Jobs\Retrieval\RetrieveAllStockJob;
710
use Laravel\Nova\Actions\Action;
811
use Laravel\Nova\Actions\ActionResponse;
912
use Laravel\Nova\Fields\ActionFields;
1013

1114
class RetrieveAll extends Action
1215
{
13-
public $name = 'Retrieve all from source';
16+
use InteractsWithQueue;
17+
use Queueable;
18+
use SerializesModels;
1419

15-
public $standalone = true;
20+
public function __construct()
21+
{
22+
$this
23+
->withName(__('Retrieve all from source'))
24+
->standalone();
25+
}
1626

1727
public function handle(ActionFields $fields, Collection $models): ActionResponse
1828
{
1929
RetrieveAllStockJob::dispatch();
2030

21-
return ActionResponse::message(__('Retrieving'));
31+
return ActionResponse::message(__('Retrieving...'));
2232
}
2333
}

src/Nova/Actions/Retry.php

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,26 @@
66
use Illuminate\Queue\InteractsWithQueue;
77
use Illuminate\Queue\SerializesModels;
88
use Illuminate\Support\Collection;
9-
use JustBetter\MagentoStock\Models\MagentoStock;
9+
use JustBetter\MagentoStock\Models\Stock;
1010
use Laravel\Nova\Actions\Action;
1111
use Laravel\Nova\Actions\ActionResponse;
1212
use Laravel\Nova\Fields\ActionFields;
1313

1414
class Retry extends Action
1515
{
16-
use InteractsWithQueue, Queueable, SerializesModels;
16+
use InteractsWithQueue;
17+
use Queueable;
18+
use SerializesModels;
1719

18-
public $name = 'Retry Stock';
20+
public function __construct()
21+
{
22+
$this->withName(__('Retry stock'));
23+
}
1924

2025
public function handle(ActionFields $fields, Collection $models): ActionResponse
2126
{
22-
$models->each(fn(MagentoStock $stock) => $stock->update(['sync' => true, 'update' => true, 'fail_count' => 0]));
27+
$models->each(fn (Stock $stock) => $stock->update(['sync' => true, 'update' => true, 'fail_count' => 0]));
2328

24-
return ActionResponse::message(__('Retrying'));
29+
return ActionResponse::message(__('Retrying...'));
2530
}
2631
}

0 commit comments

Comments
 (0)