Renamed user member endpoint and removed pagination

This commit is contained in:
Constantin Graf
2024-07-24 13:37:02 +02:00
committed by Gregor Vostrak
parent 6aef8856f5
commit 04bb8e50a7
5 changed files with 15 additions and 16 deletions

View File

@@ -4,13 +4,12 @@ declare(strict_types=1);
namespace App\Http\Controllers\Api\V1; namespace App\Http\Controllers\Api\V1;
use App\Http\Resources\V1\Member\PersonalMemberCollection; use App\Http\Resources\V1\Member\PersonalMembershipCollection;
use App\Http\Resources\V1\Member\PersonalMemberResource;
use App\Models\Member; use App\Models\Member;
use Illuminate\Auth\Access\AuthorizationException; use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;
class UserMemberController extends Controller class UserMembershipController extends Controller
{ {
/** /**
* Get the memberships of the current user * Get the memberships of the current user
@@ -19,19 +18,19 @@ class UserMemberController extends Controller
* *
* @operationId getMyMemberships * @operationId getMyMemberships
* *
* @return PersonalMemberCollection<PersonalMemberResource> * @return PersonalMembershipCollection
* *
* @throws AuthorizationException * @throws AuthorizationException
*/ */
public function myMembers(): JsonResource public function myMemberships(): JsonResource
{ {
$user = $this->user(); $user = $this->user();
$members = Member::query() $members = Member::query()
->whereBelongsTo($user, 'user') ->whereBelongsTo($user, 'user')
->with(['organization']) ->with(['organization'])
->paginate(config('app.pagination_per_page_default')); ->get();
return new PersonalMemberCollection($members); return new PersonalMembershipCollection($members);
} }
} }

View File

@@ -7,12 +7,12 @@ namespace App\Http\Resources\V1\Member;
use App\Http\Resources\PaginatedResourceCollection; use App\Http\Resources\PaginatedResourceCollection;
use Illuminate\Http\Resources\Json\ResourceCollection; use Illuminate\Http\Resources\Json\ResourceCollection;
class PersonalMemberCollection extends ResourceCollection implements PaginatedResourceCollection class PersonalMembershipCollection extends ResourceCollection implements PaginatedResourceCollection
{ {
/** /**
* The resource that this resource collects. * The resource that this resource collects.
* *
* @var string * @var string
*/ */
public $collects = PersonalMemberResource::class; public $collects = PersonalMembershipResource::class;
} }

View File

@@ -11,7 +11,7 @@ use Illuminate\Http\Request;
/** /**
* @property Member $resource * @property Member $resource
*/ */
class PersonalMemberResource extends BaseResource class PersonalMembershipResource extends BaseResource
{ {
/** /**
* Transform the resource into an array. * Transform the resource into an array.

View File

@@ -13,7 +13,7 @@ use App\Http\Controllers\Api\V1\TagController;
use App\Http\Controllers\Api\V1\TaskController; use App\Http\Controllers\Api\V1\TaskController;
use App\Http\Controllers\Api\V1\TimeEntryController; use App\Http\Controllers\Api\V1\TimeEntryController;
use App\Http\Controllers\Api\V1\UserController; use App\Http\Controllers\Api\V1\UserController;
use App\Http\Controllers\Api\V1\UserMemberController; use App\Http\Controllers\Api\V1\UserMembershipController;
use App\Http\Controllers\Api\V1\UserTimeEntryController; use App\Http\Controllers\Api\V1\UserTimeEntryController;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
@@ -53,8 +53,8 @@ Route::middleware([
}); });
// User Member routes // User Member routes
Route::name('users.members.')->group(static function () { Route::name('users.memberships.')->group(static function () {
Route::get('/users/me/members', [UserMemberController::class, 'myMembers'])->name('my-members'); Route::get('/users/me/memberships', [UserMembershipController::class, 'myMemberships'])->name('my-memberships');
}); });
// Invitation routes // Invitation routes

View File

@@ -8,12 +8,12 @@ use App\Models\Member;
use App\Models\Organization; use App\Models\Organization;
use Laravel\Passport\Passport; use Laravel\Passport\Passport;
class UserMemberEndpointTest extends ApiEndpointTestAbstract class UserMembershipEndpointTest extends ApiEndpointTestAbstract
{ {
public function test_my_members_fails_when_not_authenticated(): void public function test_my_members_fails_when_not_authenticated(): void
{ {
// Act // Act
$response = $this->getJson(route('api.v1.users.members.my-members')); $response = $this->getJson(route('api.v1.users.memberships.my-memberships'));
// Assert // Assert
$response->assertUnauthorized(); $response->assertUnauthorized();
@@ -29,7 +29,7 @@ class UserMemberEndpointTest extends ApiEndpointTestAbstract
Passport::actingAs($data->user); Passport::actingAs($data->user);
// Act // Act
$response = $this->getJson(route('api.v1.users.members.my-members')); $response = $this->getJson(route('api.v1.users.memberships.my-memberships'));
// Assert // Assert
$response->assertSuccessful(); $response->assertSuccessful();