Skip to content

Commit

Permalink
Small refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
andrey-helldar committed Dec 20, 2023
1 parent 0a364c1 commit 27e5a07
Show file tree
Hide file tree
Showing 62 changed files with 411 additions and 502 deletions.
6 changes: 3 additions & 3 deletions app/Commands/Composer.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ class Composer extends Command
protected string $exclude = 'cashbox/';

protected array $thanks = [
"name" => "cashbox-laravel/foundation",
"url" => "https://github.com/cashbox-laravel/foundation",
'name' => 'cashbox-laravel/foundation',
'url' => 'https://github.com/cashbox-laravel/foundation',
];

protected function handle(string $source, string $target): void
Expand Down Expand Up @@ -95,7 +95,7 @@ protected function copyToDriverIntersect(&$array, string $key): void

protected function copyToMain($array, string $key): void
{
$main = Arr::get($this->main, $key);
$main = Arr::get($this->main, $key);
$driver = Arr::get($array, $key);

$items = Arr::of($driver)
Expand Down
2 changes: 1 addition & 1 deletion src/Cash/src/Http/Responses/Response.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class Response extends BaseData
{
use Identifiers;

public ?string $status;
public string $status;

public function getOperationId(): ?string
{
Expand Down
6 changes: 1 addition & 5 deletions src/Core/src/Billable.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,7 @@ public function cashbox(): Relation

public function cashboxDriver(): Driver
{
if ($this->cashboxDriver) {
return $this->cashboxDriver;
}

return $this->cashboxDriver = DriverManager::find($this);
return $this->cashboxDriver ??= DriverManager::find($this);
}

public function cashboxJob(bool $force = false): Services\Job
Expand Down
10 changes: 5 additions & 5 deletions src/Core/src/Concerns/Events/Notifiable.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ trait Notifiable
protected static function event(Model $payment, StatusEnum $status): void
{
match ($status) {
StatusEnum::new => event(new PaymentCreatedEvent($payment)),
StatusEnum::refund => event(new PaymentRefundedEvent($payment)),
StatusEnum::waitRefund => event(new PaymentWaitRefundEvent($payment)),
StatusEnum::success => event(new PaymentSuccessEvent($payment)),
StatusEnum::failed => event(new PaymentFailedEvent($payment)),
StatusEnum::New => PaymentCreatedEvent::dispatch($payment),
StatusEnum::Refund => PaymentRefundedEvent::dispatch($payment),
StatusEnum::WaitRefund => PaymentWaitRefundEvent::dispatch($payment),
StatusEnum::Success => PaymentSuccessEvent::dispatch($payment),
StatusEnum::Failed => PaymentFailedEvent::dispatch($payment),
};
}

Expand Down
4 changes: 3 additions & 1 deletion src/Core/src/Concerns/Migrations/PrivateMigration.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ abstract class PrivateMigration extends Migration

protected function connection(): Builder
{
return Schema::connection(static::detailsConfig()->connection);
return Schema::connection(
static::detailsConfig()->connection
);
}

protected function table(): string
Expand Down
4 changes: 3 additions & 1 deletion src/Core/src/Concerns/Migrations/PublicMigration.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ abstract class PublicMigration extends Migration

protected function connection(): Builder
{
return Schema::connection($this->modelConnection());
return Schema::connection(
$this->modelConnection()
);
}

protected function modelConnection(): ?string
Expand Down
2 changes: 1 addition & 1 deletion src/Core/src/Console/Commands/Command.php
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ protected function getTypes(): array

protected function action(): string
{
return Str::of(static::class)->classBasename()->append('ing')->toString();
return Str::of(static::class)->classBasename()->singular()->append('ing')->toString();
}

protected function hasForce(): bool
Expand Down
33 changes: 17 additions & 16 deletions src/Core/src/Data/Config/Payment/StatusData.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

namespace Cashbox\Core\Data\Config\Payment;

use BackedEnum;
use Cashbox\Core\Enums\StatusEnum;
use Spatie\LaravelData\Attributes\MapName;
use Spatie\LaravelData\Data;
Expand All @@ -25,35 +26,35 @@
#[MapName(SnakeCaseMapper::class)]
class StatusData extends Data
{
public mixed $new;
public BackedEnum|int|string $new;

public mixed $success;
public BackedEnum|int|string $success;

public mixed $refund;
public BackedEnum|int|string $refund;

public mixed $waitRefund;
public BackedEnum|int|string $waitRefund;

public mixed $failed;
public BackedEnum|int|string $failed;

public function fromEnum(StatusEnum $status): mixed
public function fromEnum(StatusEnum $status): BackedEnum|int|string
{
return match ($status) {
StatusEnum::new => $this->new,
StatusEnum::success => $this->success,
StatusEnum::refund => $this->refund,
StatusEnum::waitRefund => $this->waitRefund,
StatusEnum::failed => $this->failed,
StatusEnum::New => $this->new,
StatusEnum::Success => $this->success,
StatusEnum::Refund => $this->refund,
StatusEnum::WaitRefund => $this->waitRefund,
StatusEnum::Failed => $this->failed,
};
}

public function toEnum(mixed $status): ?StatusEnum
{
return match ($status) {
$this->new => StatusEnum::new,
$this->success => StatusEnum::success,
$this->refund => StatusEnum::refund,
$this->waitRefund => StatusEnum::waitRefund,
$this->failed => StatusEnum::failed,
$this->new => StatusEnum::New,
$this->success => StatusEnum::Success,
$this->refund => StatusEnum::Refund,
$this->waitRefund => StatusEnum::WaitRefund,
$this->failed => StatusEnum::Failed,
default => null
};
}
Expand Down
32 changes: 6 additions & 26 deletions src/Core/src/Data/Models/InfoData.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,53 +18,33 @@
namespace Cashbox\Core\Data\Models;

use Cashbox\Core\Concerns\Config\Application;
use Cashbox\Core\Support\Arr;
use Spatie\LaravelData\Attributes\MapName;
use Spatie\LaravelData\Data;
use Spatie\LaravelData\Mappers\SnakeCaseMapper;
use Spatie\LaravelData\Support\Wrapping\WrapExecutionType;
use Stringable;
use Spatie\LaravelData\Optional;

#[MapName(SnakeCaseMapper::class)]
class InfoData extends Data implements Stringable
class InfoData extends Data
{
use Application;

public ?string $externalId;
public Optional|string|null $externalId;

public ?string $operationId;
public Optional|string|null $operationId;

public ?string $status;
public Optional|string|null $status;

public array $extra = [];
public array|Optional $extra = [];

public function toJson($options = 0): string
{
return parent::toJson($this->flags());
}

public function transform(
bool $transformValues = true,
WrapExecutionType $wrapExecutionType = WrapExecutionType::Disabled,
bool $mapPropertyNames = true,
): array {
return $this->filter(parent::transform($transformValues, $wrapExecutionType, $mapPropertyNames));
}

public function __toString(): string
{
return $this->toJson();
}

protected function flags(): int
{
return static::isProduction()
? JSON_UNESCAPED_SLASHES ^ JSON_UNESCAPED_UNICODE ^ JSON_NUMERIC_CHECK
: JSON_UNESCAPED_SLASHES ^ JSON_UNESCAPED_UNICODE ^ JSON_NUMERIC_CHECK ^ JSON_PRETTY_PRINT;
}

protected function filter(array $items): array
{
return Arr::filter($items);
}
}
12 changes: 6 additions & 6 deletions src/Core/src/Enums/AttributeEnum.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@
use ArchTech\Enums\InvokableCases;

/**
* @method static string createdAt()
* @method static string status()
* @method static string type()
* @method static string CreatedAt()
* @method static string Status()
* @method static string Type()
*/
enum AttributeEnum: string
{
use InvokableCases;

case createdAt = 'created_at';
case status = 'status';
case type = 'type';
case CreatedAt = 'created_at';
case Status = 'status';
case Type = 'type';
}
4 changes: 2 additions & 2 deletions src/Core/src/Enums/HttpMethodEnum.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@

enum HttpMethodEnum: string
{
case post = 'POST';
case get = 'GET';
case Post = 'POST';
case Get = 'GET';
}
8 changes: 4 additions & 4 deletions src/Core/src/Enums/RateLimiterEnum.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@
use ArchTech\Enums\InvokableCases;

/**
* @method static string disabled()
* @method static string enabled()
* @method static string Disabled()
* @method static string Enabled()
*/
enum RateLimiterEnum: string
{
use InvokableCases;

case disabled = 'cashbox_disabled';
case enabled = 'cashbox_enabled';
case Disabled = 'cashbox_disabled';
case Enabled = 'cashbox_enabled';
}
20 changes: 10 additions & 10 deletions src/Core/src/Enums/StatusEnum.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,21 +22,21 @@
use Cashbox\Core\Concerns\Enums\From;

/**
* @method string failed()
* @method string new()
* @method string refund()
* @method string success()
* @method string waitRefund()
* @method string Failed()
* @method string New()
* @method string Refund()
* @method string Success()
* @method string WaitRefund()
*/
enum StatusEnum: string
{
use From;
use InvokableCases;
use Values;

case failed = 'failed';
case new = 'new';
case refund = 'refund';
case success = 'success';
case waitRefund = 'wait_refund';
case Failed = 'failed';
case New = 'new';
case Refund = 'refund';
case Success = 'success';
case WaitRefund = 'wait_refund';
}
3 changes: 3 additions & 0 deletions src/Core/src/Events/BaseEvent.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,12 @@
namespace Cashbox\Core\Events;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Events\Dispatchable;

abstract class BaseEvent
{
use Dispatchable;

public function __construct(
public Model $payment
) {}
Expand Down
2 changes: 1 addition & 1 deletion src/Core/src/Http/Request.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ abstract class Request
use Application;
use Makeable;

protected HttpMethodEnum $method = HttpMethodEnum::post;
protected HttpMethodEnum $method = HttpMethodEnum::Post;

protected string $productionHost;

Expand Down
19 changes: 1 addition & 18 deletions src/Core/src/Http/Response.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,7 @@
namespace Cashbox\Core\Http;

use Cashbox\Core\Data\Models\InfoData;
use DragonCode\Support\Facades\Helpers\Arr;
use Spatie\LaravelData\Data;
use Spatie\LaravelData\Support\Wrapping\WrapExecutionType;

abstract class Response extends Data
{
Expand All @@ -46,26 +44,11 @@ public function getExternalId(): ?string

public function isEmpty(): bool
{
return empty($this->filter($this->toArray()));
}

public function transform(
bool $transformValues = true,
WrapExecutionType $wrapExecutionType = WrapExecutionType::Disabled,
bool $mapPropertyNames = true,
): array {
return $this->filter(
parent::transform($transformValues, $wrapExecutionType, $mapPropertyNames)
);
return empty($this->toArray());
}

protected function getExtra(): array
{
return [];
}

protected function filter(array $items): array
{
return Arr::filter($items, fn (mixed $value) => $value !== null);
}
}
2 changes: 2 additions & 0 deletions src/Core/src/Jobs/BaseJob.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\Middleware\RateLimitedWithRedis;
use Illuminate\Queue\SerializesModels;
Expand All @@ -40,6 +41,7 @@
*/
abstract class BaseJob implements ShouldBeUnique, ShouldQueue
{
use Dispatchable;
use InteractsWithQueue;
use Queue;
use Queueable;
Expand Down
2 changes: 1 addition & 1 deletion src/Core/src/Jobs/VerifyJob.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ protected function request(): Response
protected function start(): void
{
if ($this->authorizeToStart()) {
dispatch_sync(new StartJob($this->payment, true));
StartJob::dispatchSync($this->payment, true);
}
}
}
6 changes: 2 additions & 4 deletions src/Core/src/Observers/PaymentDetailsObserver.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,14 +47,12 @@ public function saved(Details $model): void
$this->updateStatus($model->parent, $model->status);
}

/**
* @param \Illuminate\Database\Eloquent\Model|\Cashbox\Core\Billable $payment
*/
protected function updateStatus(Model $payment, StatusEnum $status): void
{
$value = static::paymentConfig()->status->fromEnum($status);
$field = static::attributeConfig()->status;

$payment->update([$field => $value]);
$payment->setAttribute($field, $value);
$payment->save();
}
}
Loading

0 comments on commit 27e5a07

Please sign in to comment.