added get metadata promo codes endpoint
GET /api/v1/summits/{id}/promo-codes/metadata Change-Id: Ife34a1103cc0b5fe16b8ad9937855d57e7eee9b1
This commit is contained in:
parent
b65bc3db33
commit
8e870afbed
@ -184,4 +184,18 @@ final class OAuth2SummitPromoCodesApiController extends OAuth2ProtectedControlle
|
||||
return $this->error500($ex);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $summit_id
|
||||
* @return mixed
|
||||
*/
|
||||
public function getMetadata($summit_id){
|
||||
$summit = SummitFinderStrategyFactory::build($this->summit_repository, $this->resource_server_context)->find($summit_id);
|
||||
if (is_null($summit)) return $this->error404();
|
||||
|
||||
return $this->ok
|
||||
(
|
||||
$this->promo_code_repository->getMetadata($summit)
|
||||
);
|
||||
}
|
||||
}
|
@ -332,9 +332,8 @@ Route::group([
|
||||
|
||||
// promo codes
|
||||
Route::group(['prefix' => 'promo-codes'], function () {
|
||||
|
||||
Route::get('', [ 'middleware' => 'auth.user:administrators|summit-front-end-administrators', 'uses' => 'OAuth2SummitPromoCodesApiController@getAllBySummit']);
|
||||
|
||||
Route::get('metadata', [ 'middleware' => 'auth.user:administrators|summit-front-end-administrators', 'uses' => 'OAuth2SummitPromoCodesApiController@getMetadata']);
|
||||
});
|
||||
|
||||
});
|
||||
|
@ -136,6 +136,22 @@ class MemberSummitRegistrationPromoCode extends SummitRegistrationPromoCode
|
||||
|
||||
const ClassName = 'MEMBER_PROMO_CODE';
|
||||
|
||||
public static $metadata = [
|
||||
'class_name' => self::ClassName,
|
||||
'first_name' => 'string',
|
||||
'last_name' => 'string',
|
||||
'email' => 'string',
|
||||
'type' => "enum(VIP,ATC,MEDIA ANALYST,SPONSOR)",
|
||||
'owner_id' => 'integer'
|
||||
];
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public static function getMetadata(){
|
||||
return array_merge(SummitRegistrationPromoCode::getMetadata(), self::$metadata);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
|
@ -98,4 +98,16 @@ class SpeakerSummitRegistrationPromoCode extends SummitRegistrationPromoCode
|
||||
public function getClassName(){
|
||||
return self::ClassName;
|
||||
}
|
||||
|
||||
public static $metadata = [
|
||||
'class_name' => self::ClassName,
|
||||
'speaker_id' => 'integer'
|
||||
];
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public static function getMetadata(){
|
||||
return array_merge(SummitRegistrationPromoCode::getMetadata(), self::$metadata);
|
||||
}
|
||||
}
|
@ -80,4 +80,16 @@ class SponsorSummitRegistrationPromoCode extends MemberSummitRegistrationPromoCo
|
||||
public function hasSponsor(){
|
||||
return $this->getSponsorId() > 0;
|
||||
}
|
||||
|
||||
public static $metadata = [
|
||||
'class_name' => self::ClassName,
|
||||
'sponsor_id' => 'integer'
|
||||
];
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public static function getMetadata(){
|
||||
return array_merge(MemberSummitRegistrationPromoCode::getMetadata(), self::$metadata);
|
||||
}
|
||||
}
|
@ -178,4 +178,20 @@ class SummitRegistrationPromoCode extends SilverstripeBaseModel
|
||||
public function getClassName(){
|
||||
return self::ClassName;
|
||||
}
|
||||
|
||||
public static $metadata = [
|
||||
'code' => 'string',
|
||||
'email_sent' => 'boolean',
|
||||
'redeemed' => 'boolean',
|
||||
'source' => "enum(CSV,ADMIN)",
|
||||
'summit_id' => 'integer',
|
||||
'creator_id' => 'integer',
|
||||
];
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public static function getMetadata(){
|
||||
return self::$metadata;
|
||||
}
|
||||
}
|
||||
|
@ -35,4 +35,10 @@ interface ISummitRegistrationPromoCodeRepository extends IBaseRepository
|
||||
Filter $filter = null,
|
||||
Order $order = null
|
||||
);
|
||||
|
||||
/**
|
||||
* @param Summit $summit
|
||||
* @return array
|
||||
*/
|
||||
public function getMetadata( Summit $summit);
|
||||
}
|
@ -174,4 +174,17 @@ class DoctrineSummitRegistrationPromoCodeRepository
|
||||
$data
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Summit $summit
|
||||
* @return array
|
||||
*/
|
||||
public function getMetadata(Summit $summit)
|
||||
{
|
||||
return [
|
||||
MemberSummitRegistrationPromoCode::getMetadata(),
|
||||
SpeakerSummitRegistrationPromoCode::getMetadata(),
|
||||
SponsorSummitRegistrationPromoCode::getMetadata()
|
||||
];
|
||||
}
|
||||
}
|
@ -658,7 +658,6 @@ class ApiEndpointsSeeder extends Seeder
|
||||
'scopes' => [sprintf('%s/summits/read-notifications', $current_realm)],
|
||||
),
|
||||
// promo codes
|
||||
// notifications
|
||||
array(
|
||||
'name' => 'get-promo-codes',
|
||||
'route' => '/api/v1/summits/{id}/promo-codes',
|
||||
@ -667,9 +666,17 @@ class ApiEndpointsSeeder extends Seeder
|
||||
sprintf(SummitScopes::ReadSummitData, $current_realm),
|
||||
sprintf(SummitScopes::ReadAllSummitData, $current_realm)
|
||||
],
|
||||
),
|
||||
array(
|
||||
'name' => 'get-promo-codes-metadata',
|
||||
'route' => '/api/v1/summits/{id}/promo-codes/metadata',
|
||||
'http_method' => 'GET',
|
||||
'scopes' => [
|
||||
sprintf(SummitScopes::ReadSummitData, $current_realm),
|
||||
sprintf(SummitScopes::ReadAllSummitData, $current_realm)
|
||||
],
|
||||
)
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
private function seedMemberEndpoints(){
|
||||
|
@ -174,4 +174,30 @@ final class OAuth2PromoCodesApiTest extends ProtectedApiTest
|
||||
$promo_codes = json_decode($content);
|
||||
$this->assertTrue(!is_null($promo_codes));
|
||||
}
|
||||
|
||||
public function testGetPromoCodesMetadata(){
|
||||
$params = [
|
||||
'id' => 23,
|
||||
];
|
||||
|
||||
$headers = [
|
||||
"HTTP_Authorization" => " Bearer " . $this->access_token,
|
||||
"CONTENT_TYPE" => "application/json"
|
||||
];
|
||||
|
||||
$response = $this->action(
|
||||
"GET",
|
||||
"OAuth2SummitPromoCodesApiController@getMetadata",
|
||||
$params,
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
$headers
|
||||
);
|
||||
|
||||
$content = $response->getContent();
|
||||
$this->assertResponseStatus(200);
|
||||
$metadata = json_decode($content);
|
||||
$this->assertTrue(!is_null($metadata));
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user