Added Affiliation data to speaker json
Change-Id: I46286e55c8d9a67a267276b5f18025d1adc87408
This commit is contained in:
parent
ce175eb5be
commit
aeb15ac0ca
@ -80,6 +80,16 @@ class PresentationSpeakerSerializer extends SilverStripeSerializer
|
|||||||
$values['last_name'] = $last_name;
|
$values['last_name'] = $last_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$affiliations = [];
|
||||||
|
if($speaker->hasMember()) {
|
||||||
|
$member = $speaker->getMember();
|
||||||
|
foreach ($member->getCurrentAffiliations() as $affiliation) {
|
||||||
|
$affiliations[] = SerializerRegistry::getInstance()->getSerializer($affiliation)->serialize('organization');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$values['affiliations'] = $affiliations;
|
||||||
|
|
||||||
if (!empty($expand)) {
|
if (!empty($expand)) {
|
||||||
foreach (explode(',', $expand) as $relation) {
|
foreach (explode(',', $expand) as $relation) {
|
||||||
switch (trim($relation)) {
|
switch (trim($relation)) {
|
||||||
|
@ -89,16 +89,17 @@ final class SerializerRegistry
|
|||||||
$this->registry['SummitLocationImage'] = SummitLocationImageSerializer::class;
|
$this->registry['SummitLocationImage'] = SummitLocationImageSerializer::class;
|
||||||
|
|
||||||
// member
|
// member
|
||||||
$this->registry['Member'] = [
|
$this->registry['Member'] = [
|
||||||
self::SerializerType_Public => PublicMemberSerializer::class,
|
self::SerializerType_Public => PublicMemberSerializer::class,
|
||||||
self::SerializerType_Private => OwnMemberSerializer::class
|
self::SerializerType_Private => OwnMemberSerializer::class
|
||||||
];
|
];
|
||||||
$this->registry['Group'] = GroupSerializer::class;
|
|
||||||
$this->registry['Affiliation'] = AffiliationSerializer::class;
|
$this->registry['Group'] = GroupSerializer::class;
|
||||||
$this->registry['Organization'] = OrganizationSerializer::class;
|
$this->registry['Affiliation'] = AffiliationSerializer::class;
|
||||||
|
$this->registry['Organization'] = OrganizationSerializer::class;
|
||||||
|
|
||||||
// push notification
|
// push notification
|
||||||
$this->registry['SummitPushNotification'] = SummitPushNotificationSerializer::class;
|
$this->registry['SummitPushNotification'] = SummitPushNotificationSerializer::class;
|
||||||
|
|
||||||
// teams
|
// teams
|
||||||
$this->registry['ChatTeam'] = ChatTeamSerializer::class;
|
$this->registry['ChatTeam'] = ChatTeamSerializer::class;
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
**/
|
**/
|
||||||
|
|
||||||
use Doctrine\Common\Collections\ArrayCollection;
|
use Doctrine\Common\Collections\ArrayCollection;
|
||||||
|
use Doctrine\Common\Collections\Criteria;
|
||||||
use Doctrine\ORM\Mapping as ORM;
|
use Doctrine\ORM\Mapping as ORM;
|
||||||
use models\exceptions\ValidationException;
|
use models\exceptions\ValidationException;
|
||||||
use models\summit\Summit;
|
use models\summit\Summit;
|
||||||
@ -48,6 +49,20 @@ class Member extends SilverstripeBaseModel
|
|||||||
return $this->affiliations;
|
return $this->affiliations;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Affiliation[]
|
||||||
|
*/
|
||||||
|
public function getCurrentAffiliations(){
|
||||||
|
$criteria = Criteria::create()
|
||||||
|
->where(Criteria::expr()->eq("is_current", true))
|
||||||
|
->andWhere(Criteria::expr()->eq("end_date", null))
|
||||||
|
->orderBy([
|
||||||
|
"start_date" => Criteria::ASC,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return $this->affiliations->matching($criteria);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Group[]
|
* @return Group[]
|
||||||
*/
|
*/
|
||||||
@ -446,7 +461,7 @@ class Member extends SilverstripeBaseModel
|
|||||||
->select('distinct f')
|
->select('distinct f')
|
||||||
->from('models\summit\SummitEventFeedback','f')
|
->from('models\summit\SummitEventFeedback','f')
|
||||||
->join('f.event','e')
|
->join('f.event','e')
|
||||||
->join('f.owner','o')
|
->join('f.owner','o')
|
||||||
->join('e.summit','s')
|
->join('e.summit','s')
|
||||||
->where('s.id = :summit_id and o.id = :owner_id and e.published = 1')
|
->where('s.id = :summit_id and o.id = :owner_id and e.published = 1')
|
||||||
->setParameter('summit_id', $summit->getId())
|
->setParameter('summit_id', $summit->getId())
|
||||||
|
@ -128,7 +128,7 @@ final class OAuth2SummitApiTest extends ProtectedApiTest
|
|||||||
);
|
);
|
||||||
|
|
||||||
$content = $response->getContent();
|
$content = $response->getContent();
|
||||||
$summit = json_decode($content);
|
$summit = json_decode($content);
|
||||||
$this->assertTrue(!is_null($summit));
|
$this->assertTrue(!is_null($summit));
|
||||||
$this->assertTrue(count($summit->schedule) > 0);
|
$this->assertTrue(count($summit->schedule) > 0);
|
||||||
$this->assertResponseStatus(200);
|
$this->assertResponseStatus(200);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user