From 21469e60a64b2fb833a78e70e679c582628e5755 Mon Sep 17 00:00:00 2001 From: smarcet Date: Tue, 29 Jun 2021 14:18:07 -0300 Subject: [PATCH] Update getEventsCSV format added columns * moderator_id * moderator_fullname * moderator_email * speaker_ids * speaker_fullnames * speaker_emails Change-Id: I2522c3760e283ead815d1185e7b403485891e940 Signed-off-by: smarcet --- .../OAuth2SummitEventsApiController.php | 9 +++-- .../AdminPresentationCSVSerializer.php | 34 +++++++++++++++++++ .../Events/Presentations/Presentation.php | 2 +- tests/OAuth2SummitEventsApiTest.php | 20 +++++++++-- 4 files changed, 59 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitEventsApiController.php b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitEventsApiController.php index d04f6521..7d26fd26 100644 --- a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitEventsApiController.php +++ b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitEventsApiController.php @@ -132,10 +132,15 @@ final class OAuth2SummitEventsApiController extends OAuth2ProtectedController { try { - $strategy = new RetrieveAllSummitEventsBySummitCSVStrategy($this->repository, $this->event_repository, $this->resource_server_context); + $strategy = new RetrieveAllSummitEventsBySummitCSVStrategy + ( + $this->repository, + $this->event_repository, + $this->resource_server_context + ); $response = $strategy->getEvents(['summit_id' => $summit_id]); - $filename = "events-" . date('Ymd'); + $filename = "activities-" . date('Ymd'); $list = $response->toArray(null, [], ['none'],[],SerializerRegistry::SerializerType_CSV); return $this->export diff --git a/app/ModelSerializers/Summit/Presentation/AdminPresentationCSVSerializer.php b/app/ModelSerializers/Summit/Presentation/AdminPresentationCSVSerializer.php index 29f69bd4..622d7c18 100644 --- a/app/ModelSerializers/Summit/Presentation/AdminPresentationCSVSerializer.php +++ b/app/ModelSerializers/Summit/Presentation/AdminPresentationCSVSerializer.php @@ -39,6 +39,39 @@ final class AdminPresentationCSVSerializer extends AdminPresentationSerializer $serializerType = SerializerRegistry::SerializerType_Private; } + $values['moderator_id'] = ""; + $values['moderator_full_name'] = ""; + $values['moderator_email'] = ""; + + if($presentation->hasModerator()){ + unset($values['moderator_speaker_id']); + + $values['moderator_id'] = $presentation->getModerator()->getId(); + $values['moderator_full_name'] = $presentation->getModerator()->getFullName(); + $values['moderator_email'] = $presentation->getModerator()->getEmail(); + } + + $values['speaker_ids'] = ""; + $values['speaker_fullnames'] = ""; + $values['speaker_emails'] = ""; + + if($presentation->getSpeakers()->count() > 0){ + + $speaker_ids = []; + $speaker_fullnames = []; + $speaker_emails = []; + + foreach ($presentation->getSpeakers() as $speaker) { + $speaker_ids[] = $speaker->getId(); + $speaker_fullnames[] = $speaker->getFullName(); + $speaker_emails[] = $speaker->getEmail(); + } + + $values['speaker_ids'] = implode("|", $speaker_ids); + $values['speaker_fullnames'] = implode("|", $speaker_fullnames); + $values['speaker_emails'] = implode("|", $speaker_emails); + } + if(isset($values['description'])){ $values['description'] = strip_tags($values['description']); } @@ -49,6 +82,7 @@ final class AdminPresentationCSVSerializer extends AdminPresentationSerializer // add video column $values['video'] = ''; $values['public_video'] = ''; + foreach ($presentation->getMediaUploads() as $mediaUpload) { if($mediaUpload->getMediaUploadType()->isVideo()) { $media_upload_csv = SerializerRegistry::getInstance()->getSerializer($mediaUpload, $serializerType)->serialize(AbstractSerializer::filterExpandByPrefix($expand, 'media_uploads'));; diff --git a/app/Models/Foundation/Summit/Events/Presentations/Presentation.php b/app/Models/Foundation/Summit/Events/Presentations/Presentation.php index 7c73a072..d3baa0be 100644 --- a/app/Models/Foundation/Summit/Events/Presentations/Presentation.php +++ b/app/Models/Foundation/Summit/Events/Presentations/Presentation.php @@ -306,7 +306,7 @@ class Presentation extends SummitEvent } /** - * @return ArrayCollection + * @return ArrayCollection|PresentationSpeaker[] */ public function getSpeakers() { diff --git a/tests/OAuth2SummitEventsApiTest.php b/tests/OAuth2SummitEventsApiTest.php index 215606ff..3fea8c3d 100644 --- a/tests/OAuth2SummitEventsApiTest.php +++ b/tests/OAuth2SummitEventsApiTest.php @@ -14,6 +14,20 @@ final class OAuth2SummitEventsApiTest extends ProtectedApiTest { + use InsertSummitTestData; + + protected function setUp():void + { + parent::setUp(); + self::insertTestData(); + } + + protected function tearDown():void + { + self::clearTestData(); + parent::tearDown(); + } + public function testPostEvent($summit_id = 23, $location_id = 0, $type_id = 0, $track_id = 0, $start_date = 1477645200, $end_date = 1477647600) { $params = array @@ -476,11 +490,11 @@ final class OAuth2SummitEventsApiTest extends ProtectedApiTest { $params = array ( - 'id' => 31, + 'id' => self::$summit->getId(), //'expand' => 'feedback', - 'filter' => [ + /*'filter' => [ 'published==1' - ] + ]*/ ); $headers = array