Participants collection - store instances of ParticipantShort instead of Participant

Related to fetch full data of participant of given survey
This commit is contained in:
Meritoo
2017-10-01 20:46:31 +02:00
parent e43712f218
commit f5334f816f
5 changed files with 95 additions and 13 deletions

View File

@@ -51,7 +51,7 @@ class Participants extends Collection
/**
* Adds participants of given survey
*
* @param Collection $participants Participants to add. Collection of Participant classes.
* @param Collection $participants Participants to add. Collection of ParticipantShort classes.
* @param int $surveyId ID of survey
* @return $this
*/

View File

@@ -103,4 +103,26 @@ class ParticipantShort extends BaseItem
{
return $this->email;
}
/**
* Returns short data of participant created from full data of participant
*
* @param Participant $participant Full data of participant
* @return $this
*/
public static function fromParticipant(Participant $participant)
{
$info = [
'firstname' => $participant->getFirstName(),
'lastname' => $participant->getLastName(),
'email' => $participant->getEmail(),
];
$data = [
'tid' => $participant->getId(),
'participant_info' => $info,
];
return new self($data);
}
}

View File

@@ -164,9 +164,16 @@ class ParticipantService
->run(MethodType::ADD_PARTICIPANTS, $arguments)
->getData();
/* @var Participant $addedParticipant */
$addedParticipant = $participantCollection->getFirst();
$participants = new Collection([
ParticipantShort::fromParticipant($addedParticipant),
]);
$this
->allParticipants
->addParticipants($participantCollection, $surveyId);
->addParticipants($participants, $surveyId);
return $participantCollection->getFirst();
}