/** * @param User $user * @param EmbedBag $includes * @return array */ private function getIncludes(User $user, EmbedBag $includes) { $embed = ['badges' => []]; if ($includes->has('badges')) { foreach ($user->getBadges() as $userBadge) { $embed['badges'][] = $this->badgeTransformer->transform($userBadge->getBadge(), new EmbedBag()); } } else { foreach ($user->getBadges() as $userBadge) { $embed['badges'][] = $userBadge->getBadge()->getId(); } } return ['_embed' => $embed]; }
/** * @ApiDoc( * description = "Badges list of a given user (scope: public)", * section = "User - Public data", * parameters={ * { "name"="login", "dataType"="string", "required"=true, "description"="User login" } * } * ) * * @Route("/public/users/{login}/badges", name="api_public_users_badges") * @Method("GET") */ public function badgesAction(User $user) { $badges = []; foreach ($user->getBadges() as $userBadge) { $badges[] = $userBadge->getBadge(); } return $this->format(['data' => $this->get('etu.api.badge.transformer')->transform($badges)]); }