-
Tobias Gross-Vogt authoredTobias Gross-Vogt authored
CourseAttendee.php 3.72 KiB
<?php
declare(strict_types=1);
namespace Dbp\Relay\BaseCourseBundle\Entity;
use ApiPlatform\Core\Annotation\ApiProperty;
use ApiPlatform\Core\Annotation\ApiResource;
use Dbp\Relay\BaseCourseBundle\Controller\GetAttendeesByCourse;
use Symfony\Component\Serializer\Annotation\Groups;
/**
* @ApiResource(
* collectionOperations={
* "get" = {
* "path" = "/course_attendees",
* "security" = "is_granted('IS_AUTHENTICATED_FULLY')",
* "openapi_context" = {
* "tags" = {"BaseCourse"}
* }
* },
* "get_bycourse" = {
* "method" = "GET",
* "path" = "/base/courses/{identifier}/attendees",
* "security" = "is_granted('IS_AUTHENTICATED_FULLY')",
* "pagination_client_partial" = true,
* "controller" = GetAttendeesByCourse::class,
* "read" = false,
* "normalization_context" = {
* "jsonld_embed_context" = true,
* "groups" = {"CourseAttendee:output"}
* },
* "openapi_context" = {
* "tags" = {"BaseCourse"},
* "summary" = "Get the attendees of a course.",
* "parameters" = {
* {"name" = "identifier", "in" = "path", "description" = "Resource identifier", "required" = true, "type" = "string", "example" = "257571"},
* {"name" = "lang", "in" = "query", "description" = "Language of result", "type" = "string", "enum" = {"de", "en"}, "example" = "de"},
* {"name" = "partial", "in" = "query", "description" = "Enable partial pagination", "type" = "bool", "example" = "false"}
* }
* }
* }
* },
* itemOperations={
* "get" = {
* "path" = "/course_attendees/{identifier}",
* "security" = "is_granted('IS_AUTHENTICATED_FULLY')",
* "openapi_context" = {
* "tags" = {"BaseCourse"}
* }
* }
* },
* iri="http://schema.org/Person",
* shortName="CourseAttendee",
* description="A person attending a course",
* normalizationContext={
* "groups" = {"CourseAttendee:output"},
* "jsonld_embed_context" = true,
* }
* )
*/
class CourseAttendee
{
/**
* @ApiProperty(identifier=true)
* @Groups({"CourseAttendee:output"})
*
* @var string
*/
private $identifier;
/**
* @ApiProperty(iri="http://schema.org/givenName")
* @Groups({"CourseAttendee:output"})
*
* @var string
*/
private $givenName;
/**
* @var string
* @ApiProperty(iri="http://schema.org/familyName")
* @Groups({"CourseAttendee:output"})
*
* @var string
*/
private $familyName;
/**
* @ApiProperty(iri="http://schema.org/email")
* @Groups({"CourseAttendee:output"})
*
* @var string
*/
private $email;
public function setIdentifier(string $identifier): void
{
$this->identifier = $identifier;
}
public function getIdentifier(): ?string
{
return $this->identifier;
}
public function getGivenName(): ?string
{
return $this->givenName;
}
public function setGivenName(string $givenName): void
{
$this->givenName = $givenName;
}
public function getFamilyName(): ?string
{
return $this->familyName;
}
public function setFamilyName(string $familyName): void
{
$this->familyName = $familyName;
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(string $email): void
{
$this->email = $email;
}
}