Update getEventsCSV format

added columns

* moderator_id
* moderator_fullname
* moderator_email
* speaker_ids
* speaker_fullnames
* speaker_emails

Change-Id: I2522c3760e283ead815d1185e7b403485891e940
Signed-off-by: smarcet <smarcet@gmail.com>
This commit is contained in:
smarcet 2021-06-29 14:18:07 -03:00
parent 30253954b7
commit 21469e60a6
4 changed files with 59 additions and 6 deletions

View File

@ -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

View File

@ -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'));;

View File

@ -306,7 +306,7 @@ class Presentation extends SummitEvent
}
/**
* @return ArrayCollection
* @return ArrayCollection|PresentationSpeaker[]
*/
public function getSpeakers()
{

View File

@ -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