From eae401ec9e76a67ccd2d1eaeefa5bcf575b1bcf7 Mon Sep 17 00:00:00 2001 From: Roman Korchnev Date: Sun, 27 Oct 2024 11:42:02 +0300 Subject: [PATCH 1/3] making main page; added favicon; --- app/Filament/Resources/UserResource.php | 2 +- public/favicon.ico | Bin 0 -> 15086 bytes resources/views/welcome.blade.php | 79 +++++++++++++----------- 3 files changed, 44 insertions(+), 37 deletions(-) diff --git a/app/Filament/Resources/UserResource.php b/app/Filament/Resources/UserResource.php index b30a8aa..501de1d 100755 --- a/app/Filament/Resources/UserResource.php +++ b/app/Filament/Resources/UserResource.php @@ -55,7 +55,7 @@ public static function form(Form $form): Form ->disabled() ->nullable(), Forms\Components\Section::make()->schema([ - Forms\Components\Checkbox::make('is_confirmed')->label('Верифицирован'), + Forms\Components\Checkbox::make('is_confirmed')->label('Проверен'), Forms\Components\Checkbox::make('is_admin')->label('Администратор'), ])->columns(2), Forms\Components\TextInput::make('password') diff --git a/public/favicon.ico b/public/favicon.ico index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e3d81a00253e80db03cf8fc7e47812b0068843f3 100644 GIT binary patch literal 15086 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 literal 0 HcmV?d00001 diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php index 979e82a..c4e5d84 100644 --- a/resources/views/welcome.blade.php +++ b/resources/views/welcome.blade.php @@ -4,13 +4,13 @@ - Laravel + {{env('APP_NAME')}} - - + + @if (file_exists(public_path('build/manifest.json')) || file_exists(public_path('hot'))) @vite(['resources/css/app.css', 'resources/js/app.js']) @else @@ -19,43 +19,50 @@ @endif - -
- Laravel background + +
-
+
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- @if (Route::has('login')) - - @endif
From d10b309adf26d085c1d6d00dd60c41eab51f96ef Mon Sep 17 00:00:00 2001 From: deniskorbakov Date: Sun, 27 Oct 2024 11:45:45 +0300 Subject: [PATCH 2/3] feat: update logic --- app/Http/Controllers/Api/TeamController.php | 23 ++++++++++++++++++++- routes/api.php | 1 + 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/TeamController.php b/app/Http/Controllers/Api/TeamController.php index 232108e..6801fb4 100644 --- a/app/Http/Controllers/Api/TeamController.php +++ b/app/Http/Controllers/Api/TeamController.php @@ -13,7 +13,8 @@ class TeamController extends Controller { public function __construct( protected TeamService $teamService - ){ + ) + { } public function show(int $id): array @@ -44,4 +45,24 @@ public function challenge(int $id): array { return Team::query()->find($id)?->challenges()->get()->toArray() ?? []; } + + public function delete(int $teamId, int $userId): array + { + $team = Team::query()->find($teamId); + + if ($team) { + $user = $team->users()->find($userId); + if ($user) { + if (auth()->id() === $team->captain_id) { + if (auth()->id() !== $user->id) { + $team->users()->detach($user->id); + + return $team->users()->get()->toArray(); + } + } + } + } + + return []; + } } diff --git a/routes/api.php b/routes/api.php index 9733120..b3e9cb5 100755 --- a/routes/api.php +++ b/routes/api.php @@ -28,6 +28,7 @@ Route::get('/{id}/members', [TeamController::class, 'members'])->name('teams.members'); Route::get('/{id}/challenges', [TeamController::class, 'challenge'])->name('users.challenge'); Route::get('/{id}/achievements', [TeamController::class, 'achievements'])->name('teams.achievements'); + Route::post('/{teamId}/delete/{userId}', [TeamController::class, 'delete'])->name('teams.delete'); }); Route::group(['prefix' => 'challenges'], static function () { From 631db2f1c6ad35b4b1573a223bc640cb9b5e5e32 Mon Sep 17 00:00:00 2001 From: deniskorbakov Date: Sun, 27 Oct 2024 12:22:13 +0300 Subject: [PATCH 3/3] feat: update logic --- app/Http/Controllers/Api/TeamController.php | 21 +++++++++++++++++++++ routes/api.php | 1 + 2 files changed, 22 insertions(+) diff --git a/app/Http/Controllers/Api/TeamController.php b/app/Http/Controllers/Api/TeamController.php index 6801fb4..9cfa24e 100644 --- a/app/Http/Controllers/Api/TeamController.php +++ b/app/Http/Controllers/Api/TeamController.php @@ -6,6 +6,7 @@ use App\DTO\Api\Team\Request\TeamUpdateDTO; use App\Models\Team; +use App\Models\User; use App\Services\Api\TeamService; use Illuminate\Http\JsonResponse; @@ -65,4 +66,24 @@ public function delete(int $teamId, int $userId): array return []; } + + public function joinMember(int $teamId, int $userId): array + { + $user = User::query()->find($userId); + $team = Team::query()->find($teamId); + + if ($user && $team) { + $team->users()->attach($user->id); + + if ($user->telegram_id) { + $tg = new TelegramController(); + + $tg->sendMessage($user->telegram_id, 'вы были приглашены в команду - ' . $team->name); + } + + return $team->users()->get()->toArray(); + } + + return []; + } } diff --git a/routes/api.php b/routes/api.php index b3e9cb5..cf32367 100755 --- a/routes/api.php +++ b/routes/api.php @@ -29,6 +29,7 @@ Route::get('/{id}/challenges', [TeamController::class, 'challenge'])->name('users.challenge'); Route::get('/{id}/achievements', [TeamController::class, 'achievements'])->name('teams.achievements'); Route::post('/{teamId}/delete/{userId}', [TeamController::class, 'delete'])->name('teams.delete'); + Route::post('/{teamId}/join/member/{userId}', [TeamController::class, 'joinMember'])->name('teams.delete'); }); Route::group(['prefix' => 'challenges'], static function () {