create team folder

This commit is contained in:
Peter Papp
2021-08-24 10:58:03 +02:00
parent fdd9c5a591
commit ca1d037975
20 changed files with 317 additions and 23 deletions
@@ -0,0 +1,41 @@
<?php
namespace Domain\Teams\Controllers;
use Illuminate\Http\Request;
use Domain\Folders\Models\Folder;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Response;
use Domain\Teams\DTO\CreateTeamFolderData;
use Illuminate\Support\Facades\Notification;
use Domain\Teams\Models\TeamFoldersInvitation;
use Domain\Teams\Notifications\InvitationIntoTeamFolder;
class TeamFoldersController extends Controller
{
public function store(Request $request): Response
{
$data = CreateTeamFolderData::fromRequest($request);
$teamFolder = Folder::create([
'user_id' => $request->user()->id,
'name' => $data->name,
'team_folder' => 1,
]);
collect($data->members)
->each(function ($email) use ($teamFolder) {
// Create invitation
$invitation = TeamFoldersInvitation::create([
'folder_id' => $teamFolder->id,
'email' => $email,
]);
// Invite user
Notification::route('mail', $email)
->notify(new InvitationIntoTeamFolder($teamFolder, $invitation));
});
return response($teamFolder, 201);
}
}