Added endpoint get speakers summits assistance by summit
GET /api/v1/summits/{id}/speakers-assistances * filter id (==) on_site_phone (==, =@), speaker_email (==, =@) speaker (==, =@ ) is_confirmed (==) registered (==) confirmation_date (>, <, >=,<=) * order id is_confirmed confirmation_date created registered * expand summit, speaker Change-Id: I02a58e1b551319d36bd6e8ada9b98274c18c48f9
This commit is contained in:
@@ -0,0 +1,157 @@
|
||||
<?php namespace App\Http\Controllers;
|
||||
/**
|
||||
* Copyright 2018 OpenStack Foundation
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
use App\Models\Foundation\Summit\Repositories\IPresentationSpeakerSummitAssistanceConfirmationRequestRepository;
|
||||
use Illuminate\Support\Facades\Input;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use models\exceptions\EntityNotFoundException;
|
||||
use models\exceptions\ValidationException;
|
||||
use models\oauth2\IResourceServerContext;
|
||||
use models\summit\ISummitRepository;
|
||||
use ModelSerializers\SerializerRegistry;
|
||||
use utils\FilterParser;
|
||||
use utils\OrderParser;
|
||||
use utils\PagingInfo;
|
||||
|
||||
/**
|
||||
* Class OAuth2SummitSpeakersAssistanceApiController
|
||||
* @package App\Http\Controllers
|
||||
*/
|
||||
final class OAuth2SummitSpeakersAssistanceApiController extends OAuth2ProtectedController
|
||||
{
|
||||
/**
|
||||
* @var ISummitRepository
|
||||
*/
|
||||
private $summit_repository;
|
||||
|
||||
/**
|
||||
* @var IPresentationSpeakerSummitAssistanceConfirmationRequestRepository
|
||||
*/
|
||||
private $speakers_assistance_repository;
|
||||
|
||||
/**
|
||||
* OAuth2SummitSpeakersAssistanceApiController constructor.
|
||||
* @param ISummitRepository $summit_repository
|
||||
* @param IPresentationSpeakerSummitAssistanceConfirmationRequestRepository $speakers_assistance_repository
|
||||
* @param IResourceServerContext $resource_server_context
|
||||
*/
|
||||
public function __construct
|
||||
(
|
||||
ISummitRepository $summit_repository,
|
||||
IPresentationSpeakerSummitAssistanceConfirmationRequestRepository $speakers_assistance_repository,
|
||||
IResourceServerContext $resource_server_context
|
||||
) {
|
||||
parent::__construct($resource_server_context);
|
||||
$this->summit_repository = $summit_repository;
|
||||
$this->speakers_assistance_repository = $speakers_assistance_repository;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $summit_id
|
||||
* @return mixed
|
||||
*/
|
||||
public function getBySummit($summit_id){
|
||||
try {
|
||||
$summit = SummitFinderStrategyFactory::build($this->summit_repository, $this->resource_server_context)->find($summit_id);
|
||||
if (is_null($summit)) return $this->error404();
|
||||
|
||||
$values = Input::all();
|
||||
|
||||
$rules = array
|
||||
(
|
||||
'page' => 'integer|min:1',
|
||||
'per_page' => 'required_with:page|integer|min:10|max:100',
|
||||
);
|
||||
|
||||
$validation = Validator::make($values, $rules);
|
||||
|
||||
if ($validation->fails())
|
||||
{
|
||||
$messages = $validation->messages()->toArray();
|
||||
|
||||
return $this->error412($messages);
|
||||
}
|
||||
|
||||
// default values
|
||||
$page = 1;
|
||||
$per_page = 10;
|
||||
|
||||
if (Input::has('page'))
|
||||
{
|
||||
$page = intval(Input::get('page'));
|
||||
$per_page = intval(Input::get('per_page'));
|
||||
}
|
||||
|
||||
$filter = null;
|
||||
|
||||
if (Input::has('filter'))
|
||||
{
|
||||
$filter = FilterParser::parse(Input::get('filter'), [
|
||||
'id' => ['=='],
|
||||
'on_site_phone' => ['==', '=@'],
|
||||
'speaker_email' => ['==', '=@'],
|
||||
'speaker' => ['==', '=@'],
|
||||
'is_confirmed' => ['=='],
|
||||
'registered' => ['=='],
|
||||
'confirmation_date' => ['>', '<', '>=', '<=']
|
||||
]);
|
||||
}
|
||||
|
||||
$order = null;
|
||||
if (Input::has('order'))
|
||||
{
|
||||
$order = OrderParser::parse(Input::get('order'), [
|
||||
'id',
|
||||
'is_confirmed',
|
||||
'confirmation_date',
|
||||
'created',
|
||||
'registered',
|
||||
]);
|
||||
}
|
||||
|
||||
$serializer_type = SerializerRegistry::SerializerType_Private;
|
||||
$result = $this->speakers_assistance_repository->getBySummit($summit, new PagingInfo($page, $per_page), $filter, $order);
|
||||
|
||||
return $this->ok
|
||||
(
|
||||
$result->toArray
|
||||
(
|
||||
Request::input('expand', ''),
|
||||
[],
|
||||
[],
|
||||
[
|
||||
'summit' => $summit,
|
||||
'serializer_type' => $serializer_type
|
||||
],
|
||||
$serializer_type
|
||||
)
|
||||
);
|
||||
}
|
||||
catch(ValidationException $ex1){
|
||||
Log::warning($ex1);
|
||||
return $this->error412($ex1->getMessages());
|
||||
}
|
||||
catch(EntityNotFoundException $ex2)
|
||||
{
|
||||
Log::warning($ex2);
|
||||
return $this->error404(array('message'=> $ex2->getMessage()));
|
||||
}
|
||||
catch (\Exception $ex)
|
||||
{
|
||||
Log::error($ex);
|
||||
return $this->error500($ex);
|
||||
}
|
||||
}
|
||||
}
|
@@ -214,6 +214,12 @@ Route::group([
|
||||
});
|
||||
});
|
||||
|
||||
// speakers assistance
|
||||
Route::group(['prefix' => 'speakers-assistances'], function () {
|
||||
Route::get('', [ 'middleware' => 'auth.user:administrators|summit-front-end-administrators', 'uses' => 'OAuth2SummitSpeakersAssistanceApiController@getBySummit']);
|
||||
});
|
||||
|
||||
|
||||
// events
|
||||
Route::group(array('prefix' => 'events'), function () {
|
||||
|
||||
|
@@ -11,18 +11,61 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
|
||||
use models\summit\PresentationSpeakerSummitAssistanceConfirmationRequest;
|
||||
|
||||
/**
|
||||
* Class PresentationSpeakerSummitAssistanceConfirmationRequestSerializer
|
||||
* @package ModelSerializers
|
||||
*/
|
||||
final class PresentationSpeakerSummitAssistanceConfirmationRequestSerializer extends SilverStripeSerializer
|
||||
final class PresentationSpeakerSummitAssistanceConfirmationRequestSerializer
|
||||
extends SilverStripeSerializer
|
||||
{
|
||||
protected static $array_mappings = [
|
||||
'OnSitePhone' => 'on_site_phone:json_string',
|
||||
'Registered' => 'registered:json_boolean',
|
||||
'Confirmed' => 'is_confirmed:json_boolean',
|
||||
'CheckedIn' => 'checked_in:json_boolean',
|
||||
'SummitId' => 'summit_id:json_int',
|
||||
'SpeakerId' => 'speaker_id:json_int',
|
||||
'OnSitePhone' => 'on_site_phone:json_string',
|
||||
'Registered' => 'registered:json_boolean',
|
||||
'Confirmed' => 'is_confirmed:json_boolean',
|
||||
'CheckedIn' => 'checked_in:json_boolean',
|
||||
'SummitId' => 'summit_id:json_int',
|
||||
'SpeakerId' => 'speaker_id:json_int',
|
||||
'ConfirmationDate' => 'confirmation_date:datetime_epoch',
|
||||
];
|
||||
|
||||
/**
|
||||
* @param null $expand
|
||||
* @param array $fields
|
||||
* @param array $relations
|
||||
* @param array $params
|
||||
* @return array
|
||||
*/
|
||||
public function serialize($expand = null, array $fields = array(), array $relations = array(), array $params = array() )
|
||||
{
|
||||
if(!count($relations)) $relations = $this->getAllowedRelations();
|
||||
|
||||
$request = $this->object;
|
||||
|
||||
if(!$request instanceof PresentationSpeakerSummitAssistanceConfirmationRequest) return [];
|
||||
|
||||
$serializer_type = SerializerRegistry::SerializerType_Public;
|
||||
|
||||
if(isset($params['serializer_type']))
|
||||
$serializer_type = $params['serializer_type'];
|
||||
|
||||
$values = parent::serialize($expand, $fields, $relations, $params);
|
||||
|
||||
if (!empty($expand)) {
|
||||
foreach (explode(',', $expand) as $relation) {
|
||||
switch (trim($relation)) {
|
||||
case 'speaker': {
|
||||
if(isset($values['speaker_id']) && intval($values['speaker_id']) > 0 ){
|
||||
unset($values['speaker_id']);
|
||||
$values['speaker'] = SerializerRegistry::getInstance()->getSerializer($request->getSpeaker(), $serializer_type)->serialize();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $values;
|
||||
}
|
||||
}
|
@@ -15,7 +15,7 @@ use models\utils\SilverstripeBaseModel;
|
||||
use Doctrine\ORM\Mapping AS ORM;
|
||||
/**
|
||||
* Class PresentationSpeakerSummitAssistanceConfirmationRequest
|
||||
* @ORM\Entity
|
||||
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrinePresentationSpeakerSummitAssistanceConfirmationRequestRepository")
|
||||
* @ORM\Table(name="PresentationSpeakerSummitAssistanceConfirmationRequest")
|
||||
* @package models\summit
|
||||
*/
|
||||
@@ -45,6 +45,12 @@ class PresentationSpeakerSummitAssistanceConfirmationRequest extends Silverstrip
|
||||
*/
|
||||
private $checked_in;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="ConfirmationDate", type="datetime")
|
||||
* @var \DateTime
|
||||
*/
|
||||
private $confirmation_date;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="PresentationSpeaker")
|
||||
* @ORM\JoinColumn(name="SpeakerID", referencedColumnName="ID")
|
||||
@@ -145,4 +151,20 @@ class PresentationSpeakerSummitAssistanceConfirmationRequest extends Silverstrip
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \DateTime
|
||||
*/
|
||||
public function getConfirmationDate()
|
||||
{
|
||||
return $this->confirmation_date;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \DateTime $confirmation_date
|
||||
*/
|
||||
public function setConfirmationDate(\DateTime $confirmation_date)
|
||||
{
|
||||
$this->confirmation_date = $confirmation_date;
|
||||
}
|
||||
}
|
@@ -0,0 +1,35 @@
|
||||
<?php namespace App\Models\Foundation\Summit\Repositories;
|
||||
/**
|
||||
* Copyright 2018 OpenStack Foundation
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
use models\summit\Summit;
|
||||
use models\utils\IBaseRepository;
|
||||
use utils\Filter;
|
||||
use utils\Order;
|
||||
use utils\PagingInfo;
|
||||
use utils\PagingResponse;
|
||||
/**
|
||||
* Interface IPresentationSpeakerSummitAssistanceConfirmationRequestRepository
|
||||
* @package App\Models\Foundation\Summit\Repositories
|
||||
*/
|
||||
interface IPresentationSpeakerSummitAssistanceConfirmationRequestRepository
|
||||
extends IBaseRepository
|
||||
{
|
||||
/**
|
||||
* @param Summit $summit
|
||||
* @param PagingInfo $paging_info
|
||||
* @param Filter|null $filter
|
||||
* @param Order|null $order
|
||||
* @return PagingResponse
|
||||
*/
|
||||
public function getBySummit(Summit $summit, PagingInfo $paging_info, Filter $filter = null, Order $order = null);
|
||||
}
|
@@ -11,6 +11,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
use App\Models\Foundation\Summit\Repositories\IPresentationSpeakerSummitAssistanceConfirmationRequestRepository;
|
||||
use Illuminate\Support\Facades\App;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use LaravelDoctrine\ORM\Facades\EntityManager;
|
||||
@@ -22,6 +23,7 @@ use models\main\Group;
|
||||
use models\main\Organization;
|
||||
use models\summit\ISummitRegistrationPromoCodeRepository;
|
||||
use models\summit\ISummitTicketTypeRepository;
|
||||
use models\summit\PresentationSpeakerSummitAssistanceConfirmationRequest;
|
||||
use models\summit\SpeakerRegistrationRequest;
|
||||
use models\summit\SpeakerSummitRegistrationPromoCode;
|
||||
use models\summit\SummitRegistrationPromoCode;
|
||||
@@ -254,5 +256,12 @@ final class RepositoriesProvider extends ServiceProvider
|
||||
return EntityManager::getRepository(SummitRegistrationPromoCode::class);
|
||||
}
|
||||
);
|
||||
|
||||
App::singleton(
|
||||
IPresentationSpeakerSummitAssistanceConfirmationRequestRepository::class,
|
||||
function(){
|
||||
return EntityManager::getRepository(PresentationSpeakerSummitAssistanceConfirmationRequest::class);
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
@@ -0,0 +1,132 @@
|
||||
<?php namespace App\Repositories\Summit;
|
||||
/**
|
||||
* Copyright 2018 OpenStack Foundation
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
use App\Models\Foundation\Summit\Repositories\IPresentationSpeakerSummitAssistanceConfirmationRequestRepository;
|
||||
use App\Repositories\SilverStripeDoctrineRepository;
|
||||
use models\summit\PresentationSpeakerSummitAssistanceConfirmationRequest;
|
||||
use models\summit\Summit;
|
||||
use utils\DoctrineFilterMapping;
|
||||
use Doctrine\ORM\Query\Expr\Join;
|
||||
use utils\Filter;
|
||||
use utils\Order;
|
||||
use utils\PagingInfo;
|
||||
use utils\PagingResponse;
|
||||
use Doctrine\ORM\Tools\Pagination\Paginator;
|
||||
/**
|
||||
* Class DoctrinePresentationSpeakerSummitAssistanceConfirmationRequestRepository
|
||||
* @package App\Repositories\Summit
|
||||
*/
|
||||
final class DoctrinePresentationSpeakerSummitAssistanceConfirmationRequestRepository
|
||||
extends SilverStripeDoctrineRepository
|
||||
implements IPresentationSpeakerSummitAssistanceConfirmationRequestRepository
|
||||
{
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
protected function getBaseEntity()
|
||||
{
|
||||
return PresentationSpeakerSummitAssistanceConfirmationRequest::class;
|
||||
}
|
||||
|
||||
protected function getFilterMappings()
|
||||
{
|
||||
return [
|
||||
'id' => 'r.id:json_int',
|
||||
'on_site_phone' => 'r.on_site_phone:json_string',
|
||||
'is_confirmed' => 'r.is_confirmed',
|
||||
'registered' => 'r.registered',
|
||||
'confirmation_date' => 'r.confirmation_date:datetime_epoch',
|
||||
'speaker' => new DoctrineFilterMapping
|
||||
(
|
||||
"( concat(spkr.first_name, ' ', spkr.last_name) :operator ':value' ".
|
||||
"OR concat(spmm.first_name, ' ', spmm.last_name) :operator ':value' ".
|
||||
"OR spkr.first_name :operator ':value' ".
|
||||
"OR spkr.last_name :operator ':value' ".
|
||||
"OR spmm.first_name :operator ':value' ".
|
||||
"OR spmm.last_name :operator ':value' )"
|
||||
),
|
||||
'speaker_email' => new DoctrineFilterMapping
|
||||
(
|
||||
"(sprr.email :operator ':value' OR spmm.email :operator ':value')"
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
protected function getOrderMappings()
|
||||
{
|
||||
return [
|
||||
'created' => 'r.created',
|
||||
'confirmation_date' => 'r.confirmation_date',
|
||||
'id' => 'r.id',
|
||||
'is_confirmed' => 'r.is_confirmed',
|
||||
'registered' => 'r.registered'
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Summit $summit
|
||||
* @param PagingInfo $paging_info
|
||||
* @param Filter|null $filter
|
||||
* @param Order|null $order
|
||||
* @return PagingResponse
|
||||
*/
|
||||
public function getBySummit(Summit $summit, PagingInfo $paging_info, Filter $filter = null, Order $order = null)
|
||||
{
|
||||
$query = $this->getEntityManager()
|
||||
->createQueryBuilder()
|
||||
->select("r")
|
||||
->from(PresentationSpeakerSummitAssistanceConfirmationRequest::class, "r")
|
||||
->leftJoin('r.summit', 's')
|
||||
->leftJoin('r.speaker', 'spkr')
|
||||
->leftJoin('spkr.member', "spmm", Join::LEFT_JOIN)
|
||||
->leftJoin('spkr.registration_request', "sprr", Join::LEFT_JOIN)
|
||||
->where("s.id = :summit_id");
|
||||
|
||||
$query->setParameter("summit_id", $summit->getId());
|
||||
|
||||
if(!is_null($filter)){
|
||||
$filter->apply2Query($query, $this->getFilterMappings());
|
||||
}
|
||||
|
||||
if (!is_null($order)) {
|
||||
$order->apply2Query($query, $this->getOrderMappings());
|
||||
} else {
|
||||
//default order
|
||||
$query = $query->addOrderBy("r.id",'ASC');
|
||||
}
|
||||
|
||||
$query = $query
|
||||
->setFirstResult($paging_info->getOffset())
|
||||
->setMaxResults($paging_info->getPerPage());
|
||||
|
||||
$paginator = new Paginator($query, $fetchJoinCollection = true);
|
||||
$total = $paginator->count();
|
||||
$data = [];
|
||||
|
||||
foreach($paginator as $entity)
|
||||
$data[] = $entity;
|
||||
|
||||
return new PagingResponse
|
||||
(
|
||||
$total,
|
||||
$paging_info->getPerPage(),
|
||||
$paging_info->getCurrentPage(),
|
||||
$paging_info->getLastPage($total),
|
||||
$data
|
||||
);
|
||||
}
|
||||
}
|
@@ -13,7 +13,6 @@
|
||||
**/
|
||||
use App\Repositories\SilverStripeDoctrineRepository;
|
||||
use Doctrine\ORM\Query\Expr\Join;
|
||||
use Doctrine\ORM\QueryBuilder;
|
||||
use models\summit\ISummitRegistrationPromoCodeRepository;
|
||||
use models\summit\MemberSummitRegistrationPromoCode;
|
||||
use models\summit\SpeakerSummitRegistrationPromoCode;
|
||||
@@ -22,8 +21,6 @@ use models\summit\Summit;
|
||||
use models\summit\SummitRegistrationPromoCode;
|
||||
use utils\DoctrineFilterMapping;
|
||||
use utils\DoctrineInstanceOfFilterMapping;
|
||||
use utils\DoctrineJoinFilterMapping;
|
||||
use utils\DoctrineLeftJoinFilterMapping;
|
||||
use utils\Filter;
|
||||
use utils\Order;
|
||||
use utils\PagingInfo;
|
||||
|
@@ -687,7 +687,6 @@ class ApiEndpointsSeeder extends Seeder
|
||||
'route' => '/api/v1/summits/{id}/promo-codes',
|
||||
'http_method' => 'GET',
|
||||
'scopes' => [
|
||||
sprintf(SummitScopes::ReadSummitData, $current_realm),
|
||||
sprintf(SummitScopes::ReadAllSummitData, $current_realm)
|
||||
],
|
||||
],
|
||||
@@ -696,7 +695,6 @@ class ApiEndpointsSeeder extends Seeder
|
||||
'route' => '/api/v1/summits/{id}/promo-codes/{promo_code_id}',
|
||||
'http_method' => 'GET',
|
||||
'scopes' => [
|
||||
sprintf(SummitScopes::ReadSummitData, $current_realm),
|
||||
sprintf(SummitScopes::ReadAllSummitData, $current_realm)
|
||||
],
|
||||
],
|
||||
@@ -741,10 +739,17 @@ class ApiEndpointsSeeder extends Seeder
|
||||
'route' => '/api/v1/summits/{id}/promo-codes/metadata',
|
||||
'http_method' => 'GET',
|
||||
'scopes' => [
|
||||
sprintf(SummitScopes::ReadSummitData, $current_realm),
|
||||
sprintf(SummitScopes::ReadAllSummitData, $current_realm)
|
||||
],
|
||||
]
|
||||
],
|
||||
array(
|
||||
'name' => 'get-speaker-assistances-by-summit',
|
||||
'route' => '/api/v1/summits/{id}/speakers-assistances',
|
||||
'http_method' => 'GET',
|
||||
'scopes' => [
|
||||
sprintf(SummitScopes::ReadAllSummitData, $current_realm)
|
||||
],
|
||||
),
|
||||
]);
|
||||
}
|
||||
|
||||
|
85
tests/OAuth2SpeakersAssistancesApiTest.php
Normal file
85
tests/OAuth2SpeakersAssistancesApiTest.php
Normal file
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright 2018 OpenStack Foundation
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
|
||||
/**
|
||||
* Class OAuth2SpeakersAssistancesApiTest
|
||||
*/
|
||||
class OAuth2SpeakersAssistancesApiTest extends ProtectedApiTest
|
||||
{
|
||||
public function testGetAllBySummit($summit_id = 23){
|
||||
|
||||
$params = [
|
||||
|
||||
'id' => $summit_id,
|
||||
'page' => 1,
|
||||
'per_page' => 10,
|
||||
'order' => '+id',
|
||||
'expand' => 'speaker,summit'
|
||||
];
|
||||
|
||||
$headers = [
|
||||
"HTTP_Authorization" => " Bearer " . $this->access_token,
|
||||
"CONTENT_TYPE" => "application/json"
|
||||
];
|
||||
|
||||
$response = $this->action(
|
||||
"GET",
|
||||
"OAuth2SummitSpeakersAssistanceApiController@getBySummit",
|
||||
$params,
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
$headers
|
||||
);
|
||||
|
||||
$content = $response->getContent();
|
||||
$this->assertResponseStatus(200);
|
||||
$assistances = json_decode($content);
|
||||
$this->assertTrue(!is_null($assistances));
|
||||
}
|
||||
|
||||
public function testGetAllBySummitAndConfirmed($summit_id = 23){
|
||||
|
||||
$params = [
|
||||
|
||||
'id' => $summit_id,
|
||||
'page' => 1,
|
||||
'per_page' => 10,
|
||||
'filter' => 'is_confirmed==1',
|
||||
'order' => '+id',
|
||||
'expand' => 'speaker'
|
||||
];
|
||||
|
||||
$headers = [
|
||||
"HTTP_Authorization" => " Bearer " . $this->access_token,
|
||||
"CONTENT_TYPE" => "application/json"
|
||||
];
|
||||
|
||||
$response = $this->action(
|
||||
"GET",
|
||||
"OAuth2SummitSpeakersAssistanceApiController@getBySummit",
|
||||
$params,
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
$headers
|
||||
);
|
||||
|
||||
$content = $response->getContent();
|
||||
$this->assertResponseStatus(200);
|
||||
$assistances = json_decode($content);
|
||||
$this->assertTrue(!is_null($assistances));
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user