diff --git a/app/Http/Controllers/TeamController.php b/app/Http/Controllers/TeamController.php index b148f9c..311c8ab 100644 --- a/app/Http/Controllers/TeamController.php +++ b/app/Http/Controllers/TeamController.php @@ -130,42 +130,4 @@ class TeamController extends Controller 'taken' => $this->isReserved($slug) || ($slug !== $ignoredSlug && Team::whereSlug($slug)->exists()), ]); } - - public function invite(Request $request, Team $team) - { - $validated = $request->validate([ - 'email' => 'required|email|max:255', - ]); - - abort_unless(auth()->user()->can('manage', $team), 403); - - $team->invites()->create([ - 'invited_email' => Arr::get($validated, 'email'), - 'invited_by_user_id' => auth()->user()->id, - ]); - - Inertia::flash('success', 'User invited to your team.'); - } - - public function revokeInvite(Request $request, Team $team): RedirectResponse - { - $validated = $request->validate([ - 'email' => 'required|email|max:255', - ]); - - $teamInvite = $team->invites()->whereInvitedEmail(Arr::get($validated, 'email'))->firstOrFail(); - - try { - $teamInvite->delete(); - } catch (\Exception $exception) { - report($exception); - Inertia::flash('error', 'could not delete user invite.'); - - return to_route('teams.show', $team); - } - - Inertia::flash('success', 'successfully deleted user invite.'); - - return to_route('teams.show', $team); - } } diff --git a/app/Http/Controllers/TeamInviteController.php b/app/Http/Controllers/TeamInviteController.php new file mode 100644 index 0000000..9963dc6 --- /dev/null +++ b/app/Http/Controllers/TeamInviteController.php @@ -0,0 +1,51 @@ +validate([ + 'email' => 'required|email|max:255', + ]); + + abort_unless(auth()->user()->can('manage', $team), 403); + + $team->invites()->create([ + 'invited_email' => Arr::get($validated, 'email'), + 'invited_by_user_id' => auth()->user()->id, + ]); + + Inertia::flash('success', 'User invited to your team.'); + } + + public function destroy(Request $request, Team $team): RedirectResponse + { + $validated = $request->validate([ + 'email' => 'required|email|max:255', + ]); + + $teamInvite = $team->invites()->whereInvitedEmail(Arr::get($validated, 'email'))->firstOrFail(); + + try { + $teamInvite->delete(); + } catch (\Exception $exception) { + report($exception); + Inertia::flash('error', 'could not delete user invite.'); + + return to_route('teams.show', $team); + } + + Inertia::flash('success', 'successfully deleted user invite.'); + + return to_route('teams.show', $team); + } +} diff --git a/resources/js/pages/team/Show.vue b/resources/js/pages/team/Show.vue index 1db4365..ea18f53 100644 --- a/resources/js/pages/team/Show.vue +++ b/resources/js/pages/team/Show.vue @@ -1,19 +1,14 @@