-
Notifications
You must be signed in to change notification settings - Fork 605
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
<?php | ||
|
||
namespace App\Http\Controllers; | ||
|
||
use App\Models\Team; | ||
use App\Models\User; | ||
use App\Models\Office; | ||
use App\Models\Project; | ||
use App\Exceptions\UserIsAlreadyMember; | ||
|
||
class MemberController extends Controller | ||
{ | ||
public function store() | ||
{ | ||
// Get model of team/project/office depending on request | ||
$entity = $this->getEntityModel(); | ||
if ($this->userIsAlreadyMember($entity, request('user_id'))) { | ||
throw new UserIsAlreadyMember; | ||
} | ||
$user = User::select(['id', 'name', 'username', 'avatar'])->find(request('user_id')); | ||
$entity->members()->save($user); | ||
|
||
return response()->json([ | ||
'status' => 'success', | ||
'message' => 'User added to the ' . request('resource_type'), | ||
'user' => $user, | ||
]); | ||
} | ||
|
||
private function userIsAlreadyMember($entity, $userId) | ||
{ | ||
return $entity->members()->where('user_id', $userId)->exists(); | ||
} | ||
|
||
private function getEntityModel() | ||
{ | ||
switch (request('resource_type')) { | ||
case 'team': | ||
return Team::find(request('resource_id')); | ||
|
||
case 'office': | ||
return Office::find(request('resource_id')); | ||
|
||
default: | ||
return Project::find(request('resource_id')); | ||
} | ||
} | ||
} |
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
<?php | ||
|
||
namespace App\Http\Controllers; | ||
|
||
use App\Models\Team; | ||
use App\Repositories\TaskRepository; | ||
|
||
class TeamTaskController extends Controller | ||
{ | ||
public function index(Team $team, TaskRepository $taskRepository) | ||
{ | ||
$tasks = $taskRepository->getAllTaskWithAssignee('team', $team->id); | ||
|
||
return response()->json([ | ||
'status' => 'success', | ||
'tasks' => $tasks, | ||
]); | ||
} | ||
} |
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.