-
Tobias Gross-Vogt authoredTobias Gross-Vogt authored
Course.php 3.48 KiB
<?php
declare(strict_types=1);
namespace Dbp\Relay\BaseCourseBundle\Entity;
use ApiPlatform\Core\Annotation\ApiResource;
use Dbp\Relay\BaseCourseBundle\Controller\GetCoursesByOrganization;
use Dbp\Relay\BaseCourseBundle\Controller\GetCoursesByPerson;
use Symfony\Component\Serializer\Annotation\Groups;
/**
* @ApiResource(
* collectionOperations={
* "get" = {
* "path" = "/base/courses",
* "openapi_context" = {
* "tags" = {"BaseCourse"},
* "parameters" = {
* {"name" = "lang", "in" = "query", "description" = "Language of result", "type" = "string", "enum" = {"de", "en"}, "example" = "de"},
* {"name" = "term", "in" = "query", "description" = "Teaching term", "type" = "string", "enum" = {"W", "S"}, "example" = "W"},
* }
* }
* },
* "get_by_organization" = {
* "method" = "GET",
* "path" = "/base/organizations/{identifier}/courses",
* "controller" = GetCoursesByOrganization::class,
* "read" = false,
* "openapi_context" = {
* "tags" = {"BaseCourse"},
* "summary" = "Get the Courses related to an organization.",
* "parameters" = {
* {"name" = "lang", "in" = "query", "description" = "Language of result", "type" = "string", "enum" = {"de", "en"}, "example" = "de"},
* {"name" = "identifier", "in" = "path", "description" = "Id of Organization", "required" = true, "type" = "string", "example" = "123456"},
* {"name" = "term", "in" = "query", "description" = "Teaching term", "type" = "string", "enum" = {"W", "S"}, "example" = "W"},
* }
* },
* },
* "get_by_person" = {
* "method" = "GET",
* "path" = "/base/people/{identifier}/courses",
* "controller" = GetCoursesByPerson::class,
* "read" = false,
* "openapi_context" = {
* "tags" = {"BaseCourse"},
* "summary" = "Get the Courses related to a person.",
* "parameters" = {
* {"name" = "lang", "in" = "query", "description" = "Language of result", "type" = "string", "enum" = {"de", "en"}, "example" = "de"},
* {"name" = "identifier", "in" = "path", "description" = "Id of person", "required" = true, "type" = "string", "example" = "woody007"},
* {"name" = "term", "in" = "query", "description" = "Teaching term", "type" = "string", "enum" = {"W", "S"}, "example" = "W"},
* }
* },
* },
* },
* itemOperations={
* "get" = {
* "path" = "/base/courses/{identifier}",
* "openapi_context" = {
* "tags" = {"BaseCourse"},
* "parameters" = {
* {"name" = "identifier", "in" = "path", "description" = "Id of course", "required" = true, "type" = "string", "example" = "257571"},
* {"name" = "lang", "in" = "query", "description" = "Language of result", "type" = "string", "enum" = {"de", "en"}, "example" = "de"}
* }
* }
* }
* },
* iri="https://schema.org/Course",
* normalizationContext={"groups" = {"BaseCourse:output"}, "jsonld_embed_context" = true},
* )
*/
class Course implements CourseInterface
{
use CourseTrait;
}