Version 0.7.0 #1

Merged
kor-elf merged 90 commits from develop into main 2023-12-08 21:18:23 +06:00
5 changed files with 92 additions and 0 deletions
Showing only changes of commit 00177a134e - Show all commits

View File

@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
namespace App\Contracts;
interface ServiceResult
{
public function isSuccess(): bool;
}

View File

@ -0,0 +1,12 @@
<?php
declare(strict_types=1);
namespace App\Contracts;
interface ServiceResultError
{
public function getCode(): ?int;
public function getMessage(): string;
public function getErrors(): array;
public function getData(): array;
}

View File

@ -0,0 +1,15 @@
<?php
declare(strict_types=1);
namespace App\ServiceResults;
use App\Contracts\ServiceResult as ServiceResultContract;
use App\Contracts\ServiceResultError as ServiceResultErrorContract;
abstract class ServiceResult implements ServiceResultContract
{
public function isSuccess(): bool
{
return $this instanceof ServiceResultErrorContract !== true;
}
}

View File

@ -0,0 +1,16 @@
<?php
declare(strict_types=1);
namespace App\ServiceResults;
final class ServiceResultArray extends ServiceResult
{
public function __construct(
private readonly array $data,
) { }
public function getData(): array
{
return $this->data;
}
}

View File

@ -0,0 +1,40 @@
<?php
declare(strict_types=1);
namespace App\ServiceResults;
use App\Contracts\ServiceResultError as ServiceResultErrorContract;
final class ServiceResultError extends ServiceResult implements ServiceResultErrorContract
{
public function __construct(
private readonly string $message,
private readonly array $errors = [],
private readonly ?int $code = null,
) {
}
public function getMessage(): string
{
return $this->message;
}
public function getCode(): ?int
{
return $this->code;
}
public function getErrors(): array
{
return $this->errors;
}
public function getData(): array
{
return [
'message' => $this->getMessage(),
'errors' => $this->errors
];
}
}