Added get my member endpoint
Change-Id: Ia4f4ca968725496e8bd5d84d756e8a6addba9919
This commit is contained in:
parent
ae8a7c030d
commit
19d968b85a
|
@ -1,5 +1,4 @@
|
|||
<?php namespace App\Http\Controllers;
|
||||
|
||||
/**
|
||||
* Copyright 2016 OpenStack Foundation
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
|
@ -18,6 +17,7 @@ use models\main\IMemberRepository;
|
|||
use models\oauth2\IResourceServerContext;
|
||||
use Illuminate\Support\Facades\Input;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use ModelSerializers\SerializerRegistry;
|
||||
use utils\Filter;
|
||||
use utils\FilterParser;
|
||||
use utils\FilterParserException;
|
||||
|
@ -139,4 +139,28 @@ final class OAuth2MembersApiController extends OAuth2ProtectedController
|
|||
}
|
||||
}
|
||||
|
||||
public function getMyMember(){
|
||||
|
||||
$current_member_id = $this->resource_server_context->getCurrentUserExternalId();
|
||||
if (is_null($current_member_id)) return $this->error403();
|
||||
|
||||
$current_member = $this->repository->getById($current_member_id);
|
||||
if (is_null($current_member)) return $this->error404();
|
||||
|
||||
$fields = Request::input('fields', null);
|
||||
$relations = Request::input('relations', null);
|
||||
|
||||
return $this->ok
|
||||
(
|
||||
SerializerRegistry::getInstance()->getSerializer($current_member, SerializerRegistry::SerializerType_Private)
|
||||
->serialize
|
||||
(
|
||||
Request::input('expand', ''),
|
||||
is_null($fields) ? [] : explode(',', $fields),
|
||||
is_null($relations) ? [] : explode(',', $relations)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -87,7 +87,8 @@ Route::group([
|
|||
Route::get('', 'OAuth2MembersApiController@getMembers');
|
||||
|
||||
Route::group(['prefix'=>'me'], function(){
|
||||
|
||||
// get my member info
|
||||
Route::get('', 'OAuth2MembersApiController@getMyMember');
|
||||
// invitations
|
||||
Route::group(['prefix'=>'team-invitations'], function(){
|
||||
Route::get('', 'OAuth2TeamInvitationsApiController@getMyInvitations');
|
||||
|
|
|
@ -440,6 +440,17 @@ class ApiEndpointsSeeder extends Seeder
|
|||
)
|
||||
]
|
||||
);
|
||||
|
||||
$this->seedApiEndpoints('members', [
|
||||
// members
|
||||
array(
|
||||
'name' => 'get-my-member',
|
||||
'route' => '/api/v1/members/me',
|
||||
'http_method' => 'GET',
|
||||
'scopes' => [sprintf('%s/members/read/me', $current_realm)],
|
||||
)
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
private function seedTeamEndpoints(){
|
||||
|
|
|
@ -128,6 +128,11 @@ final class ApiScopesSeeder extends Seeder
|
|||
'short_description' => 'Get Members Data',
|
||||
'description' => 'Grants read only access for Members Data',
|
||||
),
|
||||
array(
|
||||
'name' => sprintf('%s/members/read/me', $current_realm),
|
||||
'short_description' => 'Get My Member Data',
|
||||
'description' => 'Grants read only access for My Member',
|
||||
),
|
||||
array(
|
||||
'name' => sprintf('%s/members/invitations/read', $current_realm),
|
||||
'short_description' => 'Allows read only access to invitations',
|
||||
|
|
|
@ -88,4 +88,27 @@ final class OAuth2MembersApiTest extends ProtectedApiTest
|
|||
$this->assertTrue(!is_null($members));
|
||||
$this->assertResponseStatus(200);
|
||||
}
|
||||
|
||||
public function testGetMyMember()
|
||||
{
|
||||
$params = [
|
||||
'expand' => 'groups'
|
||||
];
|
||||
|
||||
$headers = array("HTTP_Authorization" => " Bearer " . $this->access_token);
|
||||
$response = $this->action(
|
||||
"GET",
|
||||
"OAuth2MembersApiController@getMyMember",
|
||||
$params,
|
||||
array(),
|
||||
array(),
|
||||
array(),
|
||||
$headers
|
||||
);
|
||||
|
||||
$content = $response->getContent();
|
||||
$member = json_decode($content);
|
||||
$this->assertTrue(!is_null($member));
|
||||
$this->assertResponseStatus(200);
|
||||
}
|
||||
}
|
|
@ -49,6 +49,7 @@ class AccessTokenServiceStub implements IAccessTokenService
|
|||
$url . '/me/read',
|
||||
$url . '/summits/read-notifications',
|
||||
$url . '/members/read',
|
||||
$url . '/members/read/me',
|
||||
$url . '/members/invitations/read',
|
||||
$url . '/members/invitations/write',
|
||||
$url . '/teams/read',
|
||||
|
@ -91,6 +92,7 @@ class AccessTokenServiceStub2 implements IAccessTokenService
|
|||
$url . '/me/read',
|
||||
$url . '/summits/read-notifications',
|
||||
$url . '/members/read',
|
||||
$url . '/members/read/me',
|
||||
$url . '/members/invitations/read',
|
||||
$url . '/members/invitations/write',
|
||||
$url . '/teams/read',
|
||||
|
|
Loading…
Reference in New Issue