Added new Endpoint Update Speaker
PUT /api/v1/summits/{summit_id}/speakers/{speaker_id}
Change-Id: I8d071826c5e039a7fea1d033113c64de4ffbdf73
This commit is contained in:
@@ -254,7 +254,6 @@ final class OAuth2SummitSpeakersApiController extends OAuth2ProtectedController
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function addSpeaker($summit_id){
|
||||
try {
|
||||
if(!Request::isJson()) return $this->error403();
|
||||
@@ -315,4 +314,68 @@ final class OAuth2SummitSpeakersApiController extends OAuth2ProtectedController
|
||||
return $this->error500($ex);
|
||||
}
|
||||
}
|
||||
|
||||
public function updateSpeaker($summit_id, $speaker_id){
|
||||
try {
|
||||
if(!Request::isJson()) return $this->error403();
|
||||
$data = Input::json();
|
||||
|
||||
$summit = SummitFinderStrategyFactory::build($this->repository, $this->resource_server_context)->find($summit_id);
|
||||
if (is_null($summit)) return $this->error404();
|
||||
|
||||
$speaker = CheckSpeakerStrategyFactory::build(CheckSpeakerStrategyFactory::Me, $this->resource_server_context)->check($speaker_id, $summit);
|
||||
if (is_null($speaker)) return $this->error404();
|
||||
|
||||
$rules = array
|
||||
(
|
||||
'title' => 'sometimes|string|max:100',
|
||||
'first_name' => 'sometimes|string|max:100',
|
||||
'last_name' => 'sometimes|string|max:100',
|
||||
'bio' => 'sometimes|string',
|
||||
'irc' => 'sometimes|string|max:50',
|
||||
'twitter' => 'sometimes|string|max:50',
|
||||
'member_id' => 'sometimes|integer',
|
||||
'email' => 'sometimes|string|max:50',
|
||||
'on_site_phone' => 'sometimes|string|max:50',
|
||||
'registered' => 'sometimes|boolean',
|
||||
'confirmed' => 'sometimes|boolean',
|
||||
'checked_in' => 'sometimes|boolean',
|
||||
'registration_code' => 'sometimes|string',
|
||||
);
|
||||
|
||||
// Creates a Validator instance and validates the data.
|
||||
$validation = Validator::make($data->all(), $rules);
|
||||
|
||||
if ($validation->fails()) {
|
||||
$messages = $validation->messages()->toArray();
|
||||
|
||||
return $this->error412
|
||||
(
|
||||
$messages
|
||||
);
|
||||
}
|
||||
|
||||
$fields = [
|
||||
'title',
|
||||
'bio',
|
||||
];
|
||||
|
||||
$speaker = $this->service->updateSpeaker($summit, $speaker, HTMLCleaner::cleanData($data->all(), $fields));
|
||||
|
||||
return $this->created(SerializerRegistry::getInstance()->getSerializer($speaker)->serialize());
|
||||
}
|
||||
catch (ValidationException $ex1) {
|
||||
Log::warning($ex1);
|
||||
return $this->error412(array($ex1->getMessage()));
|
||||
}
|
||||
catch(EntityNotFoundException $ex2)
|
||||
{
|
||||
Log::warning($ex2);
|
||||
return $this->error404(array('message'=> $ex2->getMessage()));
|
||||
}
|
||||
catch (Exception $ex) {
|
||||
Log::error($ex);
|
||||
return $this->error500($ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user