mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-01 14:06:15 +00:00
API Feature (#334)
This commit is contained in:
@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Actions\ServerProvider;
|
||||
|
||||
use App\Models\Project;
|
||||
use App\Models\ServerProvider;
|
||||
use App\Models\User;
|
||||
use App\ServerProviders\ServerProvider as ServerProviderContract;
|
||||
@ -14,7 +15,7 @@ class CreateServerProvider
|
||||
/**
|
||||
* @throws ValidationException
|
||||
*/
|
||||
public function create(User $user, array $input): ServerProvider
|
||||
public function create(User $user, Project $project, array $input): ServerProvider
|
||||
{
|
||||
$provider = static::getProvider($input['provider']);
|
||||
|
||||
@ -33,7 +34,7 @@ public function create(User $user, array $input): ServerProvider
|
||||
$serverProvider->profile = $input['name'];
|
||||
$serverProvider->provider = $input['provider'];
|
||||
$serverProvider->credentials = $provider->credentialData($input);
|
||||
$serverProvider->project_id = isset($input['global']) && $input['global'] ? null : $user->current_project_id;
|
||||
$serverProvider->project_id = isset($input['global']) && $input['global'] ? null : $project->id;
|
||||
$serverProvider->save();
|
||||
|
||||
return $serverProvider;
|
||||
@ -46,9 +47,9 @@ private static function getProvider($name): ServerProviderContract
|
||||
return new $providerClass;
|
||||
}
|
||||
|
||||
public static function rules(): array
|
||||
public static function rules(array $input): array
|
||||
{
|
||||
return [
|
||||
$rules = [
|
||||
'name' => [
|
||||
'required',
|
||||
],
|
||||
@ -58,10 +59,16 @@ public static function rules(): array
|
||||
Rule::notIn('custom'),
|
||||
],
|
||||
];
|
||||
|
||||
return array_merge($rules, static::providerRules($input));
|
||||
}
|
||||
|
||||
public static function providerRules(array $input): array
|
||||
private static function providerRules(array $input): array
|
||||
{
|
||||
if (! isset($input['provider'])) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return static::getProvider($input['provider'])->credentialValidationRules($input);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user