drop dependency to bensampo/laravel-enum (#120)

This commit is contained in:
Saeed Vaziry 2024-03-17 12:26:48 +01:00 committed by GitHub
parent b07ae470f9
commit 839e7f496c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
35 changed files with 59 additions and 392 deletions

View File

@ -41,7 +41,6 @@ ## Credits
- Tailwindcss
- Alpinejs
- Vite
- Laravel Enum by BenSampo
- Log Viewer by Arunas Skirius
- PHPSecLib
- Laravel Blade Icons

View File

@ -47,7 +47,7 @@ protected function validate(array $input): void
$rules = [
'type' => [
'required',
Rule::in(SslType::getValues()),
Rule::in(config('core.ssl_types')),
],
];
if (isset($input['type']) && $input['type'] == SslType::CUSTOM) {

View File

@ -42,7 +42,7 @@ private function validate(array $input): void
$rules = [
'provider' => [
'required',
Rule::in(\App\Enums\SourceControl::getValues()),
Rule::in(config('core.source_control_providers')),
],
'name' => [
'required',

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class BackupFileStatus extends Enum
final class BackupFileStatus
{
const CREATED = 'created';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class BackupStatus extends Enum
final class BackupStatus
{
const READY = 'ready';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class CronjobStatus extends Enum
final class CronjobStatus
{
const CREATING = 'creating';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class Database extends Enum
final class Database
{
const NONE = 'none';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class DatabaseStatus extends Enum
final class DatabaseStatus
{
const READY = 'ready';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class DatabaseUserStatus extends Enum
final class DatabaseUserStatus
{
const READY = 'ready';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class DeploymentStatus extends Enum
final class DeploymentStatus
{
const DEPLOYING = 'deploying';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class FirewallRuleStatus extends Enum
final class FirewallRuleStatus
{
const CREATING = 'creating';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class LogType extends Enum
final class LogType
{
const SERVER = 'server';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class NotificationChannel extends Enum
final class NotificationChannel
{
const EMAIL = 'email';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class OperatingSystem extends Enum
final class OperatingSystem
{
const UBUNTU18 = 'ubuntu_18';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class QueueStatus extends Enum
final class QueueStatus
{
const RUNNING = 'running';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class ServerProvider extends Enum
final class ServerProvider
{
const CUSTOM = 'custom';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class ServerStatus extends Enum
final class ServerStatus
{
const READY = 'ready';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class ServerType extends Enum
final class ServerType
{
const REGULAR = 'regular';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class ServiceStatus extends Enum
final class ServiceStatus
{
const READY = 'ready';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class SiteFeature extends Enum
final class SiteFeature
{
const DEPLOYMENT = 'deployment';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class SiteStatus extends Enum
final class SiteStatus
{
const READY = 'ready';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class SiteType extends Enum
final class SiteType
{
const PHP = 'php';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class SourceControl extends Enum
final class SourceControl
{
const GITHUB = 'github';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class SshKeyStatus extends Enum
final class SshKeyStatus
{
const ADDING = 'adding';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class SslStatus extends Enum
final class SslStatus
{
const CREATED = 'created';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class SslType extends Enum
final class SslType
{
const LETSENCRYPT = 'letsencrypt';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class StorageProvider extends Enum
final class StorageProvider
{
const DROPBOX = 'dropbox';

View File

@ -2,9 +2,7 @@
namespace App\Enums;
use BenSampo\Enum\Enum;
final class Webserver extends Enum
final class Webserver
{
const NONE = 'none';

View File

@ -2,7 +2,6 @@
namespace App\ServerProviders;
use App\Enums\OperatingSystem;
use App\Exceptions\CouldNotConnectToProvider;
use App\Facades\Notifier;
use App\Notifications\FailedToDeleteServerFromProvider;
@ -11,6 +10,7 @@
use Exception;
use Illuminate\Filesystem\FilesystemAdapter;
use Illuminate\Support\Facades\Storage;
use Illuminate\Validation\Rule;
use Throwable;
class AWS extends AbstractProvider
@ -22,7 +22,10 @@ class AWS extends AbstractProvider
public function createRules(array $input): array
{
$rules = [
'os' => 'required|in:'.implode(',', OperatingSystem::getValues()),
'os' => [
'required',
Rule::in(config('core.operating_systems')),
],
];
// plans
$plans = [];

View File

@ -11,7 +11,6 @@
"php": "^8.2",
"ext-ftp": "*",
"aws/aws-sdk-php": "^3.158",
"bensampo/laravel-enum": "^6.3",
"blade-ui-kit/blade-heroicons": "^2.2",
"guzzlehttp/guzzle": "^7.2",
"laravel/fortify": "^1.17",

301
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "3e51f672a4139d2a840cdcd2e48ccaaf",
"content-hash": "0b2677968e2517591773c88a9b77a5fe",
"packages": [
{
"name": "aws/aws-crt-php",
@ -209,98 +209,6 @@
},
"time": "2022-12-07T17:46:57+00:00"
},
{
"name": "bensampo/laravel-enum",
"version": "v6.10.0",
"source": {
"type": "git",
"url": "https://github.com/BenSampo/laravel-enum.git",
"reference": "00217d6ff1d70428193ca8e2fba51aad13b7efe9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/BenSampo/laravel-enum/zipball/00217d6ff1d70428193ca8e2fba51aad13b7efe9",
"reference": "00217d6ff1d70428193ca8e2fba51aad13b7efe9",
"shasum": ""
},
"require": {
"composer/class-map-generator": "^1",
"illuminate/contracts": "^9 || ^10",
"illuminate/support": "^9 || ^10",
"laminas/laminas-code": "^3.4 || ^4",
"nikic/php-parser": "^4.13 || ^5",
"php": "^8"
},
"require-dev": {
"doctrine/dbal": "^3.4",
"ergebnis/composer-normalize": "^2.28.3",
"larastan/larastan": "^2.6.3",
"mll-lab/php-cs-fixer-config": "^5.4",
"mockery/mockery": "^1.5",
"orchestra/testbench": "^7.6.1 || ^8",
"phpstan/extension-installer": "^1",
"phpstan/phpstan": "^1.8.2",
"phpstan/phpstan-mockery": "^1.1",
"phpstan/phpstan-phpunit": "^1.1.1",
"phpunit/phpunit": "^9.5.21 || ^10 || ^11",
"rector/rector": "^0.19",
"symplify/rule-doc-generator": "^11 || ^12"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"BenSampo\\Enum\\EnumServiceProvider"
]
},
"phpstan": {
"includes": [
"extension.neon"
]
}
},
"autoload": {
"psr-4": {
"BenSampo\\Enum\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ben Sampson",
"homepage": "https://sampo.co.uk",
"role": "Developer"
},
{
"name": "Benedikt Franke",
"homepage": "https://franke.tech",
"role": "Developer"
}
],
"description": "Simple, extensible and powerful enumeration implementation for Laravel.",
"homepage": "https://github.com/bensampo/laravel-enum",
"keywords": [
"bensampo",
"enum",
"laravel",
"package",
"validation"
],
"support": {
"issues": "https://github.com/BenSampo/laravel-enum/issues",
"source": "https://github.com/BenSampo/laravel-enum/tree/v6.10.0"
},
"funding": [
{
"url": "https://github.com/bensampo",
"type": "github"
}
],
"time": "2024-02-14T14:12:51+00:00"
},
{
"name": "blade-ui-kit/blade-heroicons",
"version": "2.3.0",
@ -575,150 +483,6 @@
],
"time": "2023-12-11T17:09:12+00:00"
},
{
"name": "composer/class-map-generator",
"version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/composer/class-map-generator.git",
"reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/class-map-generator/zipball/953cc4ea32e0c31f2185549c7d216d7921f03da9",
"reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9",
"shasum": ""
},
"require": {
"composer/pcre": "^2.1 || ^3.1",
"php": "^7.2 || ^8.0",
"symfony/finder": "^4.4 || ^5.3 || ^6 || ^7"
},
"require-dev": {
"phpstan/phpstan": "^1.6",
"phpstan/phpstan-deprecation-rules": "^1",
"phpstan/phpstan-phpunit": "^1",
"phpstan/phpstan-strict-rules": "^1.1",
"symfony/filesystem": "^5.4 || ^6",
"symfony/phpunit-bridge": "^5"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.x-dev"
}
},
"autoload": {
"psr-4": {
"Composer\\ClassMapGenerator\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be",
"homepage": "https://seld.be"
}
],
"description": "Utilities to scan PHP code and generate class maps.",
"keywords": [
"classmap"
],
"support": {
"issues": "https://github.com/composer/class-map-generator/issues",
"source": "https://github.com/composer/class-map-generator/tree/1.1.0"
},
"funding": [
{
"url": "https://packagist.com",
"type": "custom"
},
{
"url": "https://github.com/composer",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
"type": "tidelift"
}
],
"time": "2023-06-30T13:58:57+00:00"
},
{
"name": "composer/pcre",
"version": "3.1.2",
"source": {
"type": "git",
"url": "https://github.com/composer/pcre.git",
"reference": "4775f35b2d70865807c89d32c8e7385b86eb0ace"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/pcre/zipball/4775f35b2d70865807c89d32c8e7385b86eb0ace",
"reference": "4775f35b2d70865807c89d32c8e7385b86eb0ace",
"shasum": ""
},
"require": {
"php": "^7.4 || ^8.0"
},
"require-dev": {
"phpstan/phpstan": "^1.3",
"phpstan/phpstan-strict-rules": "^1.1",
"symfony/phpunit-bridge": "^5"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "3.x-dev"
}
},
"autoload": {
"psr-4": {
"Composer\\Pcre\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be",
"homepage": "http://seld.be"
}
],
"description": "PCRE wrapping library that offers type-safe preg_* replacements.",
"keywords": [
"PCRE",
"preg",
"regex",
"regular expression"
],
"support": {
"issues": "https://github.com/composer/pcre/issues",
"source": "https://github.com/composer/pcre/tree/3.1.2"
},
"funding": [
{
"url": "https://packagist.com",
"type": "custom"
},
{
"url": "https://github.com/composer",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
"type": "tidelift"
}
],
"time": "2024-03-07T15:38:35+00:00"
},
{
"name": "dasprid/enum",
"version": "1.0.5",
@ -1684,69 +1448,6 @@
],
"time": "2023-12-03T19:50:20+00:00"
},
{
"name": "laminas/laminas-code",
"version": "4.13.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-code.git",
"reference": "7353d4099ad5388e84737dd16994316a04f48dbf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laminas/laminas-code/zipball/7353d4099ad5388e84737dd16994316a04f48dbf",
"reference": "7353d4099ad5388e84737dd16994316a04f48dbf",
"shasum": ""
},
"require": {
"php": "~8.1.0 || ~8.2.0 || ~8.3.0"
},
"require-dev": {
"doctrine/annotations": "^2.0.1",
"ext-phar": "*",
"laminas/laminas-coding-standard": "^2.5.0",
"laminas/laminas-stdlib": "^3.17.0",
"phpunit/phpunit": "^10.3.3",
"psalm/plugin-phpunit": "^0.18.4",
"vimeo/psalm": "^5.15.0"
},
"suggest": {
"doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features",
"laminas/laminas-stdlib": "Laminas\\Stdlib component"
},
"type": "library",
"autoload": {
"psr-4": {
"Laminas\\Code\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"description": "Extensions to the PHP Reflection API, static code scanning, and code generation",
"homepage": "https://laminas.dev",
"keywords": [
"code",
"laminas",
"laminasframework"
],
"support": {
"chat": "https://laminas.dev/chat",
"docs": "https://docs.laminas.dev/laminas-code/",
"forum": "https://discourse.laminas.dev",
"issues": "https://github.com/laminas/laminas-code/issues",
"rss": "https://github.com/laminas/laminas-code/releases.atom",
"source": "https://github.com/laminas/laminas-code"
},
"funding": [
{
"url": "https://funding.communitybridge.org/projects/laminas-project",
"type": "community_bridge"
}
],
"time": "2023-10-18T10:00:55+00:00"
},
{
"name": "laravel/fortify",
"version": "v1.20.1",

View File

@ -1,5 +1,7 @@
<?php
use App\Enums\OperatingSystem;
use App\Enums\StorageProvider;
use App\NotificationChannels\Discord;
use App\NotificationChannels\Email;
use App\NotificationChannels\Slack;
@ -41,9 +43,8 @@
* General
*/
'operating_systems' => [
// 'ubuntu_18',
'ubuntu_20',
'ubuntu_22',
OperatingSystem::UBUNTU20,
OperatingSystem::UBUNTU22,
],
'webservers' => ['none', 'nginx'],
'php_versions' => [
@ -106,12 +107,22 @@
/*
* Server
*/
'server_types' => \App\Enums\ServerType::getValues(),
'server_types' => [
\App\Enums\ServerType::REGULAR,
\App\Enums\ServerType::DATABASE,
],
'server_types_class' => [
\App\Enums\ServerType::REGULAR => \App\ServerTypes\Regular::class,
\App\Enums\ServerType::DATABASE => \App\ServerTypes\Database::class,
],
'server_providers' => \App\Enums\ServerProvider::getValues(),
'server_providers' => [
\App\Enums\ServerProvider::CUSTOM,
\App\Enums\ServerProvider::AWS,
\App\Enums\ServerProvider::LINODE,
\App\Enums\ServerProvider::DIGITALOCEAN,
\App\Enums\ServerProvider::VULTR,
\App\Enums\ServerProvider::HETZNER,
],
'server_providers_class' => [
\App\Enums\ServerProvider::CUSTOM => \App\ServerProviders\Custom::class,
\App\Enums\ServerProvider::AWS => AWS::class,
@ -324,7 +335,6 @@
'github',
'gitlab',
'bitbucket',
'custom',
],
'source_control_providers_class' => [
'github' => Github::class,
@ -397,11 +407,16 @@
* storage providers
*/
'storage_providers' => [
'dropbox',
'ftp',
StorageProvider::DROPBOX,
StorageProvider::FTP,
],
'storage_providers_class' => [
'dropbox' => Dropbox::class,
'ftp' => FTP::class,
],
'ssl_types' => [
\App\Enums\SslType::LETSENCRYPT,
\App\Enums\SslType::CUSTOM,
],
];

View File

@ -14,7 +14,7 @@ public function definition(): array
{
return [
'profile' => $this->faker->word(),
'provider' => $this->faker->randomElement(\App\Enums\ServerProvider::getValues()),
'provider' => $this->faker->randomElement(config('core.server_providers')),
'credentials' => [],
'connected' => 1,
'user_id' => User::factory(),

View File

@ -11,7 +11,7 @@ public function definition(): array
{
return [
'profile' => $this->faker->word(),
'provider' => $this->faker->randomElement(\App\Enums\StorageProvider::getValues()),
'provider' => $this->faker->randomElement(config('core.storage_providers')),
'credentials' => [
'token' => 'test-token',
],

View File

@ -21,7 +21,7 @@ class="p-6"
<option value="" selected disabled>
{{ __("Select") }}
</option>
@foreach (\App\Enums\SslType::getValues() as $t)
@foreach (config("core.ssl_types") as $t)
<option value="{{ $t }}" @if($t == old('type')) selected @endif>
{{ $t }}
</option>