/** * @param User|Organization $user */ public function __construct($user) { if ($user == NULL) { $user = new User(); $user->setIsReadOnly(true); } $this->user = $user; $this->memberships = $this->user instanceof User ? $this->user->getMemberships() : array(); }
/** * @param Organization $orga * @param EmbedBag $includes * @return array */ private function getIncludes(Organization $orga, EmbedBag $includes) { $embed = ['members' => []]; if ($includes->has('members')) { foreach ($orga->getMemberships() as $membership) { $embed['members'][] = $this->orgaMemberTransformer->transform($membership, new EmbedBag(['user'])); } } else { foreach ($orga->getMemberships() as $membership) { $embed['members'][] = $this->orgaMemberTransformer->transform($membership, new EmbedBag()); } } return ['_embed' => $embed]; }
/** * View a given organization members and their associated informations. * * @ApiDoc( * section = "Organization - Public data", * description = "List of a given organization members (scope: public)", * parameters={ * { "name"="login", "dataType"="string", "required"=true, "description"="Organization login" } * } * ) * * @Route("/public/orgas/{login}/members", name="api_public_orgas_members") * @Method("GET") */ public function membersAction(Organization $orga) { return $this->format(['data' => $this->get('etu.api.orga_member.transformer')->transform($orga->getMemberships()->toArray(), new EmbedBag(['user']))]); }