Update Get Members Endpoint Filters
Formerly was implicitly filtering by Active = 1 AND EmailVerified=1 Changed to make those filters optional * email_verified==1 or email_verified==0 * active==1 or active==0 Change-Id: If1864fe1618f93662a02ae8f8220159958ce7994
This commit is contained in:
parent
8433428ee4
commit
0888309234
@ -78,13 +78,15 @@ final class OAuth2MembersApiController extends OAuth2ProtectedController
|
||||
if (Input::has('filter')) {
|
||||
$filter = FilterParser::parse(Input::get('filter'), array
|
||||
(
|
||||
'irc' => ['=@', '=='],
|
||||
'twitter' => ['=@', '=='],
|
||||
'first_name' => ['=@', '=='],
|
||||
'last_name' => ['=@', '=='],
|
||||
'email' => ['=@', '=='],
|
||||
'group_slug' => ['=@', '=='],
|
||||
'group_id' => ['=='],
|
||||
'irc' => ['=@', '=='],
|
||||
'twitter' => ['=@', '=='],
|
||||
'first_name' => ['=@', '=='],
|
||||
'last_name' => ['=@', '=='],
|
||||
'email' => ['=@', '=='],
|
||||
'group_slug' => ['=@', '=='],
|
||||
'group_id' => ['=='],
|
||||
'email_verified' => ['=='],
|
||||
'active' => ['=='],
|
||||
));
|
||||
}
|
||||
|
||||
|
@ -32,6 +32,8 @@ class AbstractMemberSerializer extends SilverStripeSerializer
|
||||
'TwitterHandle' => 'twitter:json_string',
|
||||
'State' => 'state:json_string',
|
||||
'Country' => 'country:json_string',
|
||||
'Active' => 'active:json_boolean',
|
||||
'EmailVerified' => 'email_verified:json_boolean',
|
||||
];
|
||||
|
||||
protected static $allowed_relations = [
|
||||
|
@ -351,6 +351,14 @@ class Member extends SilverstripeBaseModel
|
||||
return $this->email_verified;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function getEmailVerified()
|
||||
{
|
||||
return $this->email_verified;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool $email_verified
|
||||
*/
|
||||
@ -383,6 +391,14 @@ class Member extends SilverstripeBaseModel
|
||||
return $this->active;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function getActive()
|
||||
{
|
||||
return $this->active;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool $active
|
||||
*/
|
||||
|
@ -50,10 +50,8 @@ final class DoctrineMemberRepository extends SilverStripeDoctrineRepository impl
|
||||
->createQueryBuilder()
|
||||
->select("m")
|
||||
->from(\models\main\Member::class, "m")
|
||||
->where("m.active = 1")
|
||||
->andWhere("m.first_name is not null")
|
||||
->andWhere("m.last_name is not null")
|
||||
->andWhere("m.email_verified = 1");
|
||||
->andWhere("m.last_name is not null");
|
||||
|
||||
if(!is_null($filter)){
|
||||
|
||||
@ -75,6 +73,8 @@ final class DoctrineMemberRepository extends SilverStripeDoctrineRepository impl
|
||||
'g',
|
||||
"g.id :operator :value"
|
||||
),
|
||||
'email_verified' => 'm.email_verified:json_int',
|
||||
'active' => 'm.active:json_int',
|
||||
]);
|
||||
}
|
||||
|
||||
|
@ -66,4 +66,26 @@ final class OAuth2MembersApiTest extends ProtectedApiTest
|
||||
$this->assertResponseStatus(200);
|
||||
}
|
||||
|
||||
public function testGetMembersByEmail2()
|
||||
{
|
||||
$params = [
|
||||
'filter' => ['email==sean.mcginnis@gmail.com', "email_verified==0"],
|
||||
];
|
||||
|
||||
$headers = array("HTTP_Authorization" => " Bearer " . $this->access_token);
|
||||
$response = $this->action(
|
||||
"GET",
|
||||
"OAuth2MembersApiController@getMembers",
|
||||
$params,
|
||||
array(),
|
||||
array(),
|
||||
array(),
|
||||
$headers
|
||||
);
|
||||
|
||||
$content = $response->getContent();
|
||||
$members = json_decode($content);
|
||||
$this->assertTrue(!is_null($members));
|
||||
$this->assertResponseStatus(200);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user