Refactor: change name of external apps from ConnectedService to ConnectedApp
This commit is contained in:
parent
6ddde416cf
commit
6f07068b1d
@ -4,7 +4,7 @@
|
||||
|
||||
namespace App\Data\Ui\ConnectedServices;
|
||||
|
||||
use App\Enums\{ConnectionProtocols, ConnectionStatus};
|
||||
use App\Enums\{ConnectionProtocolEnum, ConnectionStatusEnum};
|
||||
use Spatie\LaravelData\Data;
|
||||
|
||||
final class ConnectedServiceData extends Data
|
||||
@ -12,8 +12,8 @@ final class ConnectedServiceData extends Data
|
||||
public function __construct(
|
||||
public string $name,
|
||||
public string $icon,
|
||||
public ConnectionProtocols $type,
|
||||
public ConnectionProtocolEnum $type,
|
||||
public string $connectionService,
|
||||
public ConnectionStatus $status,
|
||||
public ConnectionStatusEnum $status,
|
||||
) {}
|
||||
}
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
namespace App\Data\Ui\ManageRoles;
|
||||
|
||||
use App\Data\Users\UserData;
|
||||
use App\Enums\RolesStatus;
|
||||
use App\Enums\RolesStatusEnum;
|
||||
use Spatie\LaravelData\Attributes\DataCollectionOf;
|
||||
use Spatie\LaravelData\{Data, DataCollection};
|
||||
|
||||
@ -21,6 +21,6 @@ public function __construct(
|
||||
/** @var DataCollection<int, ServiceData> */
|
||||
#[DataCollectionOf(class: ServiceData::class), ]
|
||||
public DataCollection $services,
|
||||
public RolesStatus $status,
|
||||
public RolesStatusEnum $status,
|
||||
) {}
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
|
||||
use App\Concerns\EnumValuesAsArray;
|
||||
|
||||
enum ConnectionProtocols: string
|
||||
enum ConnectionProtocolEnum: string
|
||||
{
|
||||
use EnumValuesAsArray;
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
|
||||
use App\Concerns\EnumValuesAsArray;
|
||||
|
||||
enum ConnectionStatus: string
|
||||
enum ConnectionStatusEnum: string
|
||||
{
|
||||
use EnumValuesAsArray;
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
|
||||
namespace App\Enums;
|
||||
|
||||
enum RolesStatus: string
|
||||
enum RolesStatusEnum: string
|
||||
{
|
||||
case Active = 'active';
|
||||
case Inactive = 'inactive';
|
||||
@ -5,10 +5,9 @@
|
||||
namespace App\Factories;
|
||||
|
||||
use App\Data\ConnectService\ConnectServiceData;
|
||||
use App\Enums\ConnectionStatus;
|
||||
use App\Models\ServiceStatus;
|
||||
use App\Enums\ConnectionStatusEnum;
|
||||
|
||||
final class ConnectedServiceFactory
|
||||
final class ConnectedAppFactory
|
||||
{
|
||||
public function createDataFromDto(ConnectServiceData $data): array
|
||||
{
|
||||
@ -23,8 +22,8 @@ public function createDataFromDto(ConnectServiceData $data): array
|
||||
|
||||
// Check if the staus is filled, if not select disconnected by default
|
||||
if (null === $data->statusId) {
|
||||
$status = ServiceStatus::query()
|
||||
->where('name', '=', ConnectionStatus::Disconnected->value)
|
||||
$status = ConnectionStatusEnum::query()
|
||||
->where('name', '=', ConnectionStatusEnum::Disconnected->value)
|
||||
->pluck('id');
|
||||
$result['service_status_id'] = $status[0];
|
||||
}
|
||||
@ -9,7 +9,7 @@
|
||||
use Livewire\Attributes\Validate;
|
||||
use Livewire\Form;
|
||||
|
||||
class ConnectServiceFrom extends Form
|
||||
class StoreConnectedAppFrom extends Form
|
||||
{
|
||||
#[Validate('required|string|max:255|min:3')]
|
||||
public string $name = '';
|
||||
@ -15,20 +15,20 @@
|
||||
'service_provider_id',
|
||||
'service_status_id',
|
||||
])]
|
||||
class ConnectedService extends Model
|
||||
class ConnectedApp extends Model
|
||||
{
|
||||
public function protocol(): HasOne
|
||||
{
|
||||
return $this->hasOne(ServiceProtocol::class, 'id', 'service_protocol_id');
|
||||
return $this->hasOne(ConnectionProtocol::class, 'id', 'service_protocol_id');
|
||||
}
|
||||
|
||||
public function provider(): HasOne
|
||||
{
|
||||
return $this->hasOne(ServiceProvider::class, 'id', 'service_provider_id');
|
||||
return $this->hasOne(ConnectionProvider::class, 'id', 'service_provider_id');
|
||||
}
|
||||
|
||||
public function status(): HasOne
|
||||
{
|
||||
return $this->hasOne(ServiceStatus::class, 'id', 'service_status_id');
|
||||
return $this->hasOne(ConnectionStatus::class, 'id', 'service_status_id');
|
||||
}
|
||||
}
|
||||
@ -6,4 +6,4 @@
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
final class ServiceProvider extends Model {}
|
||||
final class ConnectionProtocol extends Model {}
|
||||
@ -6,4 +6,4 @@
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
final class ServiceProtocol extends Model {}
|
||||
final class ConnectionProvider extends Model {}
|
||||
@ -7,5 +7,5 @@
|
||||
use Illuminate\Database\Eloquent\Attributes\Table;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
#[Table('service_statuses')]
|
||||
class ServiceStatus extends Model {}
|
||||
#[Table('connection_statuses')]
|
||||
class ConnectionStatus extends Model {}
|
||||
@ -5,17 +5,17 @@
|
||||
namespace App\Services;
|
||||
|
||||
use App\Data\ConnectService\ConnectServiceData;
|
||||
use App\Factories\ConnectedServiceFactory;
|
||||
use App\Models\ConnectedService;
|
||||
use App\Factories\ConnectedAppFactory;
|
||||
use App\Models\ConnectedApp;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
final class ConnectedServicesService
|
||||
{
|
||||
public function create(ConnectServiceData $data): void
|
||||
{
|
||||
$data = app(ConnectedServiceFactory::class)->createDataFromDto($data);
|
||||
$data = app(ConnectedAppFactory::class)->createDataFromDto($data);
|
||||
DB::transaction(
|
||||
fn () => ConnectedService::create(
|
||||
fn () => ConnectedApp::create(
|
||||
$data
|
||||
)
|
||||
);
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('service_providers', function (Blueprint $table): void {
|
||||
Schema::create('connection_providers', function (Blueprint $table): void {
|
||||
$table->id();
|
||||
$table->string('name');
|
||||
$table->string('slug')->unique();
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('service_statuses', function (Blueprint $table): void {
|
||||
Schema::create('connection_statuses', function (Blueprint $table): void {
|
||||
$table->id();
|
||||
$table->string('name')->unique();
|
||||
$table->timestamps();
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('service_protocols', function (Blueprint $table): void {
|
||||
Schema::create('connection_protocols', function (Blueprint $table): void {
|
||||
$table->id();
|
||||
$table->string('name')->unique();
|
||||
$table->timestamps();
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use App\Models\{ServiceProtocol, ServiceProvider, ServiceStatus};
|
||||
use App\Models\{ConnectionProtocol, ConnectionProvider, ConnectionStatus};
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
@ -14,16 +14,16 @@
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('connected_services', function (Blueprint $table): void {
|
||||
Schema::create('connected_apps', function (Blueprint $table): void {
|
||||
$table->id();
|
||||
$table->string('name');
|
||||
$table->string('slug')->unique();
|
||||
$table->foreignIdFor(ServiceProtocol::class);
|
||||
$table->foreignIdFor(ServiceProvider::class);
|
||||
$table->foreignIdFor(ServiceStatus::class);
|
||||
$table->foreignIdFor(ConnectionProtocol::class);
|
||||
$table->foreignIdFor(ConnectionProvider::class);
|
||||
$table->foreignIdFor(ConnectionStatus::class);
|
||||
$table->timestamps();
|
||||
$table->index(['name', 'slug']);
|
||||
$table->index(['service_protocol_id', 'service_provider_id']);
|
||||
$table->index(['connection_protocol_id', 'connection_provider_id']);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -4,11 +4,11 @@
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Enums\ConnectionStatus;
|
||||
use App\Models\ServiceStatus;
|
||||
use App\Enums\{ConnectionProtocolEnum};
|
||||
use App\Models\ConnectionProtocol;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
final class ServiceStatusSeeder extends Seeder
|
||||
final class ConnectionProtocolSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
@ -18,8 +18,8 @@ public function run(): void
|
||||
$data = array_map(fn ($value) => [
|
||||
'name' => $value,
|
||||
'created_at' => now(),
|
||||
], ConnectionStatus::values());
|
||||
ServiceStatus::query()
|
||||
], ConnectionProtocolEnum::values());
|
||||
ConnectionProtocol::query()
|
||||
->upsert($data, 'name', ['updated_at']);
|
||||
}
|
||||
}
|
||||
@ -4,10 +4,10 @@
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\ServiceProvider;
|
||||
use App\Models\ConnectionProvider;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class ServiceProviderSeeder extends Seeder
|
||||
class ConnectionProviderSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
@ -27,6 +27,6 @@ public function run(): void
|
||||
'slug' => 'oneclick',
|
||||
],
|
||||
];
|
||||
ServiceProvider::upsert($data, ['slug'], ['name']);
|
||||
ConnectionProvider::query()->upsert($data, ['slug'], ['name']);
|
||||
}
|
||||
}
|
||||
@ -4,11 +4,11 @@
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Enums\ConnectionProtocols;
|
||||
use App\Models\ServiceProtocol;
|
||||
use App\Enums\ConnectionStatusEnum;
|
||||
use App\Models\ConnectionStatus;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
final class ServiceProtocolsSeeder extends Seeder
|
||||
final class ConnectionStatusSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
@ -18,8 +18,8 @@ public function run(): void
|
||||
$data = array_map(fn ($value) => [
|
||||
'name' => $value,
|
||||
'created_at' => now(),
|
||||
], ConnectionProtocols::values());
|
||||
ServiceProtocol::query()
|
||||
], ConnectionStatusEnum::values());
|
||||
ConnectionStatus::query()
|
||||
->upsert($data, 'name', ['updated_at']);
|
||||
}
|
||||
}
|
||||
@ -4,10 +4,10 @@
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\User;
|
||||
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
|
||||
final class DatabaseSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
@ -17,9 +17,13 @@ public function run(): void
|
||||
{
|
||||
// User::factory(10)->create();
|
||||
|
||||
User::factory()->create([
|
||||
'name' => 'Test User',
|
||||
'email' => 'test@example.com',
|
||||
]);
|
||||
// User::factory()->create([
|
||||
// 'name' => 'Test User',
|
||||
// 'email' => 'test@example.com',
|
||||
// ]);
|
||||
|
||||
$this->call(ConnectionStatusSeeder::class);
|
||||
$this->call(ConnectionProtocolSeeder::class);
|
||||
$this->call(ConnectionProviderSeeder::class);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
<?php
|
||||
|
||||
use App\Data\Ui\ConnectedServices\ConnectedServiceData;
|
||||
use App\Enums\ConnectionStatus;
|
||||
use App\Enums\ConnectionProtocolEnum;
|
||||
use App\Enums\ConnectionStatusEnum;
|
||||
use App\Enums\ConnectionProtocols;
|
||||
use Illuminate\Support\Collection;
|
||||
use Livewire\Component;
|
||||
@ -18,30 +19,30 @@ public function mount(): void
|
||||
new ConnectedServiceData(
|
||||
name: 'Microsoft Outlook',
|
||||
icon: 'home',
|
||||
type: ConnectionProtocols::OIDC,
|
||||
type: ConnectionProtocolEnum::OIDC,
|
||||
connectionService: 'Azure AD',
|
||||
status: ConnectionStatus::Connected
|
||||
status: ConnectionStatusEnum::Connected
|
||||
),
|
||||
new ConnectedServiceData(
|
||||
name: 'Microsoft Teams',
|
||||
icon: 'home',
|
||||
type: ConnectionProtocols::OIDC,
|
||||
type: ConnectionProtocolEnum::OIDC,
|
||||
connectionService: 'Azure AD',
|
||||
status: ConnectionStatus::Pending
|
||||
status: ConnectionStatusEnum::Pending
|
||||
),
|
||||
new ConnectedServiceData(
|
||||
name: 'Keka HR',
|
||||
icon: 'home',
|
||||
type: ConnectionProtocols::SAML,
|
||||
type: ConnectionProtocolEnum::SAML,
|
||||
connectionService: 'KeKA',
|
||||
status: ConnectionStatus::Disconnected
|
||||
status: ConnectionStatusEnum::Disconnected
|
||||
),
|
||||
new ConnectedServiceData(
|
||||
name: 'Trutimer',
|
||||
icon: 'home',
|
||||
type: ConnectionProtocols::SAML,
|
||||
type: ConnectionProtocolEnum::SAML,
|
||||
connectionService: 'Redmine',
|
||||
status: ConnectionStatus::Error
|
||||
status: ConnectionStatusEnum::Error
|
||||
),
|
||||
], DataCollection::class);
|
||||
}
|
||||
@ -69,10 +70,10 @@ public function mount(): void
|
||||
<div
|
||||
@class([
|
||||
"w-2 h-2 rounded-full",
|
||||
'bg-green-400' => $service->status === ConnectionStatus::Connected,
|
||||
'bg-gray-400' => $service->status === ConnectionStatus::Disconnected,
|
||||
'bg-yellow-400' => $service->status === ConnectionStatus::Pending,
|
||||
'bg-red-400' => $service->status === ConnectionStatus::Error,
|
||||
'bg-green-400' => $service->status === ConnectionStatusEnum::Connected,
|
||||
'bg-gray-400' => $service->status === ConnectionStatusEnum::Disconnected,
|
||||
'bg-yellow-400' => $service->status === ConnectionStatusEnum::Pending,
|
||||
'bg-red-400' => $service->status === ConnectionStatusEnum::Error,
|
||||
])
|
||||
></div>
|
||||
<p class="text-sm">{{ucfirst($service->status->name)}}</p>
|
||||
@ -10,7 +10,7 @@
|
||||
<div>
|
||||
<x-shared.card title="Connected Services" icon="lucide-grid-2x2-plus" class="p-0">
|
||||
<x-slot:actions>
|
||||
<x-shared.button :link="route('connected-services.create')">
|
||||
<x-shared.button :link="route('connected-apps.create')">
|
||||
<div class="flex items-center gap-x-2">
|
||||
<x-lucide-plus class="w-5 h-5"/>
|
||||
{{ __('Add service') }}
|
||||
@ -19,7 +19,7 @@
|
||||
</x-slot:actions>
|
||||
<x-shared.tabs.tabs wire:model="selectedTab" class="px-4">
|
||||
<x-shared.tabs.tab name="all-tab" label="All" class="">
|
||||
<livewire:dashboard.connected-services.all/>
|
||||
<livewire:dashboard.connected-apps.all/>
|
||||
</x-shared.tabs.tab>
|
||||
<x-shared.tabs.tab name="oidc-tab" label="OIDC">
|
||||
<div>Tricks</div>
|
||||
@ -3,7 +3,7 @@
|
||||
use App\Data\Ui\ManageRoles\{RoleData, ServiceData};
|
||||
use App\Data\Ui\TableHeader;
|
||||
use App\Data\Users\UserData;
|
||||
use App\Enums\RolesStatus;
|
||||
use App\Enums\RolesStatusEnum;
|
||||
use Livewire\Component;
|
||||
use Spatie\LaravelData\Attributes\DataCollectionOf;
|
||||
use Spatie\LaravelData\DataCollection;
|
||||
@ -62,7 +62,7 @@ public function mount(): void
|
||||
DataCollection::class,
|
||||
),
|
||||
|
||||
status: RolesStatus::Active,
|
||||
status: RolesStatusEnum::Active,
|
||||
),
|
||||
],
|
||||
DataCollection::class,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
use App\Data\Users\UserData;
|
||||
use App\Data\Ui\ManageRoles\RoleData;
|
||||
use App\Data\Ui\ManageRoles\ServiceData;
|
||||
use App\Enums\RolesStatus;
|
||||
use App\Enums\RolesStatusEnum;
|
||||
use Livewire\Component;
|
||||
use Spatie\LaravelData\Attributes\DataCollectionOf;
|
||||
use Spatie\LaravelData\DataCollection;
|
||||
@ -40,7 +40,7 @@ public function mount(): void
|
||||
new ServiceData(name: 'AWS Core'),
|
||||
new ServiceData(name: 'GitHub Enterprise'),
|
||||
], DataCollection::class),
|
||||
status: RolesStatus::Active,
|
||||
status: RolesStatusEnum::Active,
|
||||
),
|
||||
new RoleData(
|
||||
name: 'HR Manager',
|
||||
@ -49,7 +49,7 @@ public function mount(): void
|
||||
new ServiceData(name: 'Keka'),
|
||||
new ServiceData(name: 'Outlook'),
|
||||
], DataCollection::class),
|
||||
status: RolesStatus::Active,
|
||||
status: RolesStatusEnum::Active,
|
||||
)
|
||||
], DataCollection::class)
|
||||
),
|
||||
@ -65,7 +65,7 @@ public function mount(): void
|
||||
services: ServiceData::collect([
|
||||
new ServiceData(name: 'Forge'),
|
||||
], DataCollection::class),
|
||||
status: RolesStatus::Active,
|
||||
status: RolesStatusEnum::Active,
|
||||
)
|
||||
], DataCollection::class)
|
||||
),
|
||||
@ -81,7 +81,7 @@ public function mount(): void
|
||||
services: ServiceData::collect([
|
||||
new ServiceData(name: 'Analytics Dashboard'),
|
||||
], DataCollection::class),
|
||||
status: RolesStatus::Active,
|
||||
status: RolesStatusEnum::Active,
|
||||
)
|
||||
], DataCollection::class)
|
||||
)
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
<?php
|
||||
|
||||
use App\Livewire\Forms\ConnectServiceFrom;
|
||||
use App\Models\ServiceProtocol;
|
||||
use App\Models\ServiceProvider;
|
||||
use App\Livewire\Forms\StoreConnectedAppFrom;
|
||||
use App\Models\ConnectionProtocol;
|
||||
use App\Models\ConnectionProvider;
|
||||
use Livewire\Attributes\Computed;
|
||||
use Livewire\Component;
|
||||
use Livewire\Attributes\Title;
|
||||
@ -10,18 +10,18 @@
|
||||
new
|
||||
#[Title('Create a service')]
|
||||
class extends Component {
|
||||
public ConnectServiceFrom $form;
|
||||
public StoreConnectedAppFrom $form;
|
||||
|
||||
#[Computed]
|
||||
public function providers()
|
||||
{
|
||||
return ServiceProvider::query()->get();
|
||||
return ConnectionProvider::query()->get();
|
||||
}
|
||||
|
||||
#[Computed]
|
||||
public function protocols()
|
||||
{
|
||||
return ServiceProtocol::query()->get()->map(function (ServiceProtocol $protocol) {
|
||||
return ConnectionProtocol::query()->get()->map(function (ConnectionProtocol $protocol) {
|
||||
$protocol->name = ucfirst($protocol->name);
|
||||
return $protocol;
|
||||
});
|
||||
@ -14,7 +14,7 @@ class extends Component {
|
||||
|
||||
<div class="flex h-full w-full flex-1 flex-col gap-4 rounded-xl">
|
||||
<x-dashboard-stats/>
|
||||
<livewire:dashboard.connected-services />
|
||||
<livewire:dashboard.connected-apps/>
|
||||
<livewire:dashboard.roles.manager/>
|
||||
<livewire:dashboard.roles.hr-permission/>
|
||||
<livewire:dashboard.users.assignments/>
|
||||
|
||||
@ -9,8 +9,8 @@
|
||||
Route::group(['middleware' => ['auth', 'verified']], function (): void {
|
||||
Route::livewire('dashboard', 'pages::dashboard')->name('dashboard');
|
||||
|
||||
Route::prefix('connected-services')->name('connected-services.')->group(function (): void {
|
||||
Route::livewire('create', 'pages::connected-services.create')->name('create');
|
||||
Route::prefix('connected-apps')->name('connected-apps.')->group(function (): void {
|
||||
Route::livewire('create', 'pages::connected-apps.create')->name('create');
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user