diff --git a/.github/workflows/check-dependencies.yml b/.github/workflows/check-dependencies.yml index 6206602229..1c379619ea 100644 --- a/.github/workflows/check-dependencies.yml +++ b/.github/workflows/check-dependencies.yml @@ -26,7 +26,7 @@ jobs: - uses: shivammathur/setup-php@v2 with: - php-version: '8.3.13' + php-version: '8.4.6' tools: composer:2.8.0 coverage: xdebug diff --git a/.github/workflows/continuous-integration-optional.yml b/.github/workflows/continuous-integration-optional.yml index f3d50855da..62ec1a4a7a 100644 --- a/.github/workflows/continuous-integration-optional.yml +++ b/.github/workflows/continuous-integration-optional.yml @@ -21,7 +21,7 @@ jobs: - uses: shivammathur/setup-php@v2 with: - php-version: '8.3.13' + php-version: '8.4.6' tools: composer:2.8.0 coverage: xdebug @@ -36,7 +36,7 @@ jobs: - uses: shivammathur/setup-php@v2 with: - php-version: '8.3.13' + php-version: '8.4.6' tools: composer:2.8.0 coverage: xdebug @@ -66,7 +66,7 @@ jobs: - uses: shivammathur/setup-php@v2 with: - php-version: '8.3.13' + php-version: '8.4.6' tools: composer:2.8.0 coverage: xdebug @@ -114,7 +114,7 @@ jobs: - uses: shivammathur/setup-php@v2 with: - php-version: '8.3.13' + php-version: '8.4.6' tools: composer:2.8.0 coverage: xdebug diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 57668a5685..75f697f854 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -40,7 +40,7 @@ jobs: ".github/workflows/continuous-integration.yml" ] do_not_skip: '["workflow_dispatch", "schedule"]' - + frontend-check-needed: runs-on: ubuntu-latest outputs: @@ -56,7 +56,7 @@ jobs: ".github/workflows/continuous-integration.yml" ] do_not_skip: '["workflow_dispatch", "schedule"]' - + e2e-check-needed: runs-on: ubuntu-latest outputs: @@ -79,7 +79,7 @@ jobs: ".env.ci" ] do_not_skip: '["workflow_dispatch", "schedule"]' - + api-cs-check: name: 'Lint: API (php-cs-fixer)' runs-on: ubuntu-latest @@ -91,7 +91,7 @@ jobs: - uses: shivammathur/setup-php@v2 with: - php-version: '8.3.13' + php-version: '8.4.6' tools: composer:2.8.0 coverage: none @@ -110,7 +110,7 @@ jobs: - run: composer install --no-interaction --no-plugins --no-scripts --prefer-dist working-directory: api - - run: php vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php -v --dry-run --diff + - run: PHP_CS_FIXER_IGNORE_ENV=1 php vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php -v --dry-run --diff working-directory: api frontend-eslint: @@ -264,7 +264,7 @@ jobs: - uses: shivammathur/setup-php@v2 with: - php-version: '8.3.13' + php-version: '8.4.6' extensions: intl-73.1 tools: composer:2.8.0 coverage: pcov @@ -490,7 +490,7 @@ jobs: with: github-token: ${{ secrets.GITHUB_TOKEN }} parallel-finished: true - carryforward: "api,frontend,print,pdf" + carryforward: 'api,frontend,print,pdf' fail-on-error: false workflow-success: diff --git a/api/Dockerfile b/api/Dockerfile index d8b5a469f1..300c6c02be 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -3,7 +3,7 @@ # Adapted from https://github.com/api-platform/api-platform/blob/fa1c5808305d7cadbf7b8392e0fddb6e80fb2092/api/Dockerfile # Versions -FROM dunglas/frankenphp:1.2-php8.3.13 AS frankenphp_upstream +FROM dunglas/frankenphp:1.5-php8.4.6 AS frankenphp_upstream # the different stages of this Dockerfile are meant to be built into separate images # https://docs.docker.com/develop/develop-images/multistage-build/#stop-at-a-specific-build-stage diff --git a/api/composer.json b/api/composer.json index 26d09920a6..17cfbcb085 100644 --- a/api/composer.json +++ b/api/composer.json @@ -2,10 +2,10 @@ "type": "project", "license": "MIT", "require": { - "php": ">=8.1.0", + "php": ">=8.4.0", "ext-ctype": "*", "ext-iconv": "*", - "api-platform/core": "3.4.17", + "api-platform/core": "4.1.7", "composer/package-versions-deprecated": "1.11.99", "cweagans/composer-patches": "1.7.3", "doctrine/common": "3.5.0", @@ -21,7 +21,7 @@ "league/oauth2-google": "4.0.1", "lexik/jwt-authentication-bundle": "3.1.1", "nelmio/cors-bundle": "2.5.0", - "phpdocumentor/reflection-docblock": "5.5.1", + "phpdocumentor/reflection-docblock": "5.6.1", "phpmyadmin/sql-parser": "5.11.0", "ramsey/uuid": "4.7.6", "rize/uri-template": "0.4.0", @@ -53,7 +53,7 @@ }, "require-dev": { "brianium/paratest": "v7.8.3", - "friendsofphp/php-cs-fixer": "3.69.1", + "friendsofphp/php-cs-fixer": "3.75.0", "hautelook/alice-bundle": "2.15.1", "justinrainbow/json-schema": "6.4.1", "php-coveralls/php-coveralls": "2.7.0", @@ -61,7 +61,7 @@ "phpstan/phpstan": "2.1.11", "phpunit/phpunit": "11.5.17", "rector/rector": "2.0.11", - "psalm/phar": "5.26.1", + "psalm/phar": "6.10.0", "spatie/phpunit-snapshot-assertions": "5.1.8", "symfony/browser-kit": "7.2.4", "symfony/css-selector": "7.2.0", @@ -109,8 +109,8 @@ "symfony/polyfill-php71": "*" }, "scripts": { - "cs-check": "php-cs-fixer fix --dry-run", - "cs-fix": "php-cs-fixer fix", + "cs-check": "PHP_CS_FIXER_IGNORE_ENV=1 php-cs-fixer fix --dry-run", + "cs-fix": "PHP_CS_FIXER_IGNORE_ENV=1 php-cs-fixer fix", "test": [ "Composer\\Config::disableProcessTimeout", "vendor/bin/phpunit -d memory_limit=-1 -c phpunit.xml.dist" diff --git a/api/composer.lock b/api/composer.lock index 6914bebc69..5e607a8e32 100644 --- a/api/composer.lock +++ b/api/composer.lock @@ -4,36 +4,36 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "230015475dacbb30e5a3a269bcfc9844", + "content-hash": "2c90a252dcc369d481585f01a9892b43", "packages": [ { "name": "api-platform/core", - "version": "v3.4.17", + "version": "v4.1.7", "source": { "type": "git", "url": "https://github.com/api-platform/core.git", - "reference": "c5fb664d17ed9ae919394514ea69a5039d2ad9ab" + "reference": "83d005a2b355bbac2d90eb3a8fb3ca5152fb9284" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/core/zipball/c5fb664d17ed9ae919394514ea69a5039d2ad9ab", - "reference": "c5fb664d17ed9ae919394514ea69a5039d2ad9ab", + "url": "https://api.github.com/repos/api-platform/core/zipball/83d005a2b355bbac2d90eb3a8fb3ca5152fb9284", + "reference": "83d005a2b355bbac2d90eb3a8fb3ca5152fb9284", "shasum": "" }, "require": { "doctrine/inflector": "^1.0 || ^2.0", - "php": ">=8.1", + "php": ">=8.2", "psr/cache": "^1.0 || ^2.0 || ^3.0", "psr/container": "^1.0 || ^2.0", "symfony/deprecation-contracts": "^3.1", - "symfony/http-foundation": "^6.4 || ^7.1", - "symfony/http-kernel": "^6.4 || ^7.1", - "symfony/property-access": "^6.4 || ^7.1", + "symfony/http-foundation": "^6.4 || ^7.0", + "symfony/http-kernel": "^6.4 || ^7.0", + "symfony/property-access": "^6.4 || ^7.0", "symfony/property-info": "^6.4 || ^7.1", - "symfony/serializer": "^6.4 || ^7.1", + "symfony/serializer": "^6.4 || ^7.0", "symfony/translation-contracts": "^3.3", "symfony/web-link": "^6.4 || ^7.1", - "willdurand/negotiation": "^3.0" + "willdurand/negotiation": "^3.1" }, "conflict": { "doctrine/common": "<3.2.2", @@ -41,7 +41,6 @@ "doctrine/mongodb-odm": "<2.4", "doctrine/orm": "<2.14.0", "doctrine/persistence": "<1.3", - "elasticsearch/elasticsearch": ">=8.0,<8.4", "phpspec/prophecy": "<1.15", "phpunit/phpunit": "<9.5", "symfony/framework-bundle": "6.4.6 || 7.0.6", @@ -71,88 +70,77 @@ "api-platform/validator": "self.version" }, "require-dev": { - "api-platform/doctrine-common": "^3.4 || ^4.0", - "api-platform/doctrine-odm": "^3.4 || ^4.0", - "api-platform/doctrine-orm": "^3.4 || ^4.0", - "api-platform/documentation": "^3.4 || ^4.0", - "api-platform/elasticsearch": "^3.4 || ^4.0", - "api-platform/graphql": "^3.4 || ^4.0", - "api-platform/http-cache": "^3.4 || ^4.0", - "api-platform/hydra": "^3.4 || ^4.0", - "api-platform/json-api": "^3.3 || ^4.0", - "api-platform/json-schema": "^3.4 || ^4.0", - "api-platform/jsonld": "^3.4 || ^4.0", - "api-platform/metadata": "^3.4 || ^4.0", - "api-platform/openapi": "^3.4 || ^4.0", - "api-platform/parameter-validator": "^3.4", - "api-platform/ramsey-uuid": "^3.4 || ^4.0", - "api-platform/serializer": "^3.4 || ^4.0", - "api-platform/state": "^3.4 || ^4.0", - "api-platform/validator": "^3.4 || ^4.0", "behat/behat": "^3.11", "behat/mink": "^1.9", "doctrine/cache": "^1.11 || ^2.1", "doctrine/common": "^3.2.2", - "doctrine/dbal": "^3.4.0 || ^4.0", - "doctrine/doctrine-bundle": "^1.12 || ^2.0", - "doctrine/mongodb-odm": "^2.2", - "doctrine/mongodb-odm-bundle": "^4.0 || ^5.0", - "doctrine/orm": "^2.14 || ^3.0", - "elasticsearch/elasticsearch": "^7.11 || ^8.4", + "doctrine/dbal": "^4.0", + "doctrine/doctrine-bundle": "^2.11", + "doctrine/mongodb-odm": "^2.10", + "doctrine/mongodb-odm-bundle": "^5.0", + "doctrine/orm": "^2.17 || ^3.0", + "elasticsearch/elasticsearch": "^7.17 || ^8.4", "friends-of-behat/mink-browserkit-driver": "^1.3.1", "friends-of-behat/mink-extension": "^2.2", "friends-of-behat/symfony-extension": "^2.1", - "guzzlehttp/guzzle": "^6.0 || ^7.1", + "guzzlehttp/guzzle": "^6.0 || ^7.0", + "illuminate/config": "^11.0 || ^12.0", + "illuminate/contracts": "^11.0 || ^12.0", + "illuminate/database": "^11.0 || ^12.0", + "illuminate/http": "^11.0 || ^12.0", + "illuminate/pagination": "^11.0 || ^12.0", + "illuminate/routing": "^11.0 || ^12.0", + "illuminate/support": "^11.0 || ^12.0", "jangregor/phpstan-prophecy": "^1.0", - "justinrainbow/json-schema": "^5.2.1", - "phpspec/prophecy-phpunit": "^2.0", + "justinrainbow/json-schema": "^5.2.11", + "laravel/framework": "^11.0 || ^12.0", + "orchestra/testbench": "^9.1", + "phpspec/prophecy-phpunit": "^2.2", "phpstan/extension-installer": "^1.1", - "phpstan/phpdoc-parser": "^1.13|^2.0", + "phpstan/phpdoc-parser": "^1.29 || ^2.0", "phpstan/phpstan": "^1.10", "phpstan/phpstan-doctrine": "^1.0", "phpstan/phpstan-phpunit": "^1.0", "phpstan/phpstan-symfony": "^1.0", - "phpunit/phpunit": "^9.6", + "phpunit/phpunit": "^11.2", "psr/log": "^1.0 || ^2.0 || ^3.0", - "ramsey/uuid": "^3.9.7 || ^4.0", - "ramsey/uuid-doctrine": "^1.4 || ^2.0 || ^3.0", - "sebastian/comparator": "<5.0", - "soyuka/contexts": "v3.3.9", - "soyuka/pmu": "^0.0.12", + "ramsey/uuid": "^4.7", + "ramsey/uuid-doctrine": "^2.0", + "soyuka/contexts": "^3.3.10", + "soyuka/pmu": "^0.0.15", "soyuka/stubs-mongodb": "^1.0", - "symfony/asset": "^6.4 || ^7.1", - "symfony/browser-kit": "^6.4 || ^7.1", - "symfony/cache": "^6.4 || ^7.1", - "symfony/config": "^6.4 || ^7.1", - "symfony/console": "^6.4 || ^7.1", - "symfony/css-selector": "^6.4 || ^7.1", - "symfony/dependency-injection": "^6.4 || ^7.1", - "symfony/doctrine-bridge": "^6.4 || ^7.1", - "symfony/dom-crawler": "^6.4 || ^7.1", - "symfony/error-handler": "^6.4 || ^7.1", - "symfony/event-dispatcher": "^6.4 || ^7.1", - "symfony/expression-language": "^6.4 || ^7.1", - "symfony/finder": "^6.4 || ^7.1", - "symfony/form": "^6.4 || ^7.1", - "symfony/framework-bundle": "^6.4 || ^7.1", - "symfony/http-client": "^6.4 || ^7.1", - "symfony/intl": "^6.4 || ^7.1", + "symfony/asset": "^6.4 || ^7.0", + "symfony/browser-kit": "^6.4 || ^7.0", + "symfony/cache": "^6.4 || ^7.0", + "symfony/config": "^6.4 || ^7.0", + "symfony/console": "^6.4 || ^7.0", + "symfony/css-selector": "^6.4 || ^7.0", + "symfony/dependency-injection": "^6.4 || ^7.0", + "symfony/doctrine-bridge": "^6.4.2 || ^7.0.2", + "symfony/dom-crawler": "^6.4 || ^7.0", + "symfony/error-handler": "^6.4 || ^7.0", + "symfony/event-dispatcher": "^6.4 || ^7.0", + "symfony/expression-language": "^6.4 || ^7.0", + "symfony/finder": "^6.4 || ^7.0", + "symfony/form": "^6.4 || ^7.0", + "symfony/framework-bundle": "^6.4 || ^7.0", + "symfony/http-client": "^6.4 || ^7.0", + "symfony/intl": "^6.4 || ^7.0", "symfony/maker-bundle": "^1.24", "symfony/mercure-bundle": "*", - "symfony/messenger": "^6.4 || ^7.1", - "symfony/phpunit-bridge": "^6.4.1 || ^7.1", - "symfony/routing": "^6.4 || ^7.1", - "symfony/security-bundle": "^6.4 || ^7.1", - "symfony/security-core": "^6.4 || ^7.1", - "symfony/stopwatch": "^6.4 || ^7.1", - "symfony/string": "^6.4 || ^7.1", - "symfony/twig-bundle": "^6.4 || ^7.1", - "symfony/uid": "^6.4 || ^7.1", - "symfony/validator": "^6.4 || ^7.1", - "symfony/web-profiler-bundle": "^6.4 || ^7.1", - "symfony/yaml": "^6.4 || ^7.1", + "symfony/messenger": "^6.4 || ^7.0", + "symfony/routing": "^6.4 || ^7.0", + "symfony/security-bundle": "^6.4 || ^7.0", + "symfony/security-core": "^6.4 || ^7.0", + "symfony/stopwatch": "^6.4 || ^7.0", + "symfony/string": "^6.4 || ^7.0", + "symfony/twig-bundle": "^6.4 || ^7.0", + "symfony/uid": "^6.4 || ^7.0", + "symfony/validator": "^6.4 || ^7.0", + "symfony/web-profiler-bundle": "^6.4 || ^7.0", + "symfony/yaml": "^6.4 || ^7.0", "twig/twig": "^1.42.3 || ^2.12 || ^3.0", - "webonyx/graphql-php": "^14.0 || ^15.0" + "webonyx/graphql-php": "^15.0" }, "suggest": { "doctrine/mongodb-odm-bundle": "To support MongoDB. Only versions 4.0 and later are supported.", @@ -193,6 +181,9 @@ } }, "autoload": { + "files": [ + "src/JsonLd/HydraContext.php" + ], "psr-4": { "ApiPlatform\\": "src/" } @@ -217,15 +208,17 @@ "graphql", "hal", "jsonapi", + "laravel", "openapi", "rest", - "swagger" + "swagger", + "symfony" ], "support": { "issues": "https://github.com/api-platform/core/issues", - "source": "https://github.com/api-platform/core/tree/v3.4.17" + "source": "https://github.com/api-platform/core/tree/v4.1.7" }, - "time": "2025-04-07T08:40:57+00:00" + "time": "2025-04-11T09:53:03+00:00" }, { "name": "behat/transliterator", @@ -3650,16 +3643,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.5.1", + "version": "5.6.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "0c70d2c566e899666f367ab7b80986beb3581e6f" + "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/0c70d2c566e899666f367ab7b80986beb3581e6f", - "reference": "0c70d2c566e899666f367ab7b80986beb3581e6f", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8", + "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8", "shasum": "" }, "require": { @@ -3668,7 +3661,7 @@ "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.2", "phpdocumentor/type-resolver": "^1.7", - "phpstan/phpdoc-parser": "^1.7", + "phpstan/phpdoc-parser": "^1.7|^2.0", "webmozart/assert": "^1.9.1" }, "require-dev": { @@ -3708,9 +3701,9 @@ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.5.1" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.1" }, - "time": "2024-11-06T11:58:54+00:00" + "time": "2024-12-07T09:39:29+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -10777,16 +10770,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.69.1", + "version": "v3.75.0", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "13b0c0eede38c11cd674b080f2b485d0f14ffa9f" + "reference": "399a128ff2fdaf4281e4e79b755693286cdf325c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/13b0c0eede38c11cd674b080f2b485d0f14ffa9f", - "reference": "13b0c0eede38c11cd674b080f2b485d0f14ffa9f", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/399a128ff2fdaf4281e4e79b755693286cdf325c", + "reference": "399a128ff2fdaf4281e4e79b755693286cdf325c", "shasum": "" }, "require": { @@ -10794,6 +10787,7 @@ "composer/semver": "^3.4", "composer/xdebug-handler": "^3.0.3", "ext-filter": "*", + "ext-hash": "*", "ext-json": "*", "ext-tokenizer": "*", "fidry/cpu-core-counter": "^1.2", @@ -10816,18 +10810,18 @@ "symfony/stopwatch": "^5.4 || ^6.4 || ^7.0" }, "require-dev": { - "facile-it/paraunit": "^1.3.1 || ^2.5", - "infection/infection": "^0.29.10", - "justinrainbow/json-schema": "^5.3 || ^6.0", + "facile-it/paraunit": "^1.3.1 || ^2.6", + "infection/infection": "^0.29.14", + "justinrainbow/json-schema": "^5.3 || ^6.2", "keradus/cli-executor": "^2.1", "mikey179/vfsstream": "^1.6.12", "php-coveralls/php-coveralls": "^2.7", "php-cs-fixer/accessible-object": "^1.1", "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.6", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.6", - "phpunit/phpunit": "^9.6.22 || ^10.5.45 || ^11.5.7", - "symfony/var-dumper": "^5.4.48 || ^6.4.18 || ^7.2.0", - "symfony/yaml": "^5.4.45 || ^6.4.18 || ^7.2.0" + "phpunit/phpunit": "^9.6.22 || ^10.5.45 || ^11.5.12", + "symfony/var-dumper": "^5.4.48 || ^6.4.18 || ^7.2.3", + "symfony/yaml": "^5.4.45 || ^6.4.18 || ^7.2.3" }, "suggest": { "ext-dom": "For handling output formats in XML", @@ -10868,7 +10862,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.69.1" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.75.0" }, "funding": [ { @@ -10876,7 +10870,7 @@ "type": "github" } ], - "time": "2025-02-18T23:57:43+00:00" + "time": "2025-03-31T18:40:42+00:00" }, { "name": "hautelook/alice-bundle", @@ -12191,20 +12185,20 @@ }, { "name": "psalm/phar", - "version": "5.26.1", + "version": "6.10.0", "source": { "type": "git", "url": "https://github.com/psalm/phar.git", - "reference": "8a38e7ad04499a0ccd2c506fd1da6fc01fff4547" + "reference": "17ae70dd523f392966b60210e67708a3a5df129b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/psalm/phar/zipball/8a38e7ad04499a0ccd2c506fd1da6fc01fff4547", - "reference": "8a38e7ad04499a0ccd2c506fd1da6fc01fff4547", + "url": "https://api.github.com/repos/psalm/phar/zipball/17ae70dd523f392966b60210e67708a3a5df129b", + "reference": "17ae70dd523f392966b60210e67708a3a5df129b", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^8.2" }, "conflict": { "vimeo/psalm": "*" @@ -12220,9 +12214,9 @@ "description": "Composer-based Psalm Phar", "support": { "issues": "https://github.com/psalm/phar/issues", - "source": "https://github.com/psalm/phar/tree/5.26.1" + "source": "https://github.com/psalm/phar/tree/6.10.0" }, - "time": "2024-09-09T16:22:43+00:00" + "time": "2025-03-31T10:19:54+00:00" }, { "name": "react/cache", @@ -14466,7 +14460,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=8.1.0", + "php": ">=8.4.0", "ext-ctype": "*", "ext-iconv": "*" }, diff --git a/api/config/packages/api_platform.yaml b/api/config/packages/api_platform.yaml index 92dc27e7b0..6ba88d8b69 100644 --- a/api/config/packages/api_platform.yaml +++ b/api/config/packages/api_platform.yaml @@ -28,9 +28,6 @@ api_platform: versions: [3] defaults: stateless: true - extra_properties: - standard_put: true - rfc_7807_compliant_errors: true pagination_enabled: false itemOperations: [ 'get', 'patch', 'delete' ] collection_operations: @@ -41,7 +38,6 @@ api_platform: skip_null_values: false order: createTime: DESC - keep_legacy_inflector: false # On API-Platform Update - test, if this config is still needed. # See PR 5948: https://github.com/ecamp/ecamp3/pull/5948 @@ -50,6 +46,4 @@ api_platform: Symfony\Component\Serializer\Exception\ExceptionInterface: 400 ApiPlatform\Metadata\Exception\InvalidArgumentException: 400 ApiPlatform\ParameterValidator\Exception\ValidationExceptionInterface: 400 - Doctrine\ORM\OptimisticLockException: 409 - # Legacy - ApiPlatform\Exception\InvalidArgumentException: 400 \ No newline at end of file + Doctrine\ORM\OptimisticLockException: 409 \ No newline at end of file diff --git a/api/migrations/dev-data/Version202410111836.php b/api/migrations/dev-data/Version202410111836.php index 1b292d9a44..bb8fba2f40 100644 --- a/api/migrations/dev-data/Version202410111836.php +++ b/api/migrations/dev-data/Version202410111836.php @@ -16,14 +16,6 @@ public function getDescription(): string { public function up(Schema $schema): void { // START PHP CODE - $this->addSql(createTruncateDatabaseCommand()); - - $statements = getStatementsForMigrationFile(); - foreach ($statements as $statement) { - if (trim($statement)) { - $this->addSql($statement); - } - } // END PHP CODE } diff --git a/api/migrations/dev-data/Version202504121559.php b/api/migrations/dev-data/Version202504121559.php new file mode 100644 index 0000000000..76d5f1b268 --- /dev/null +++ b/api/migrations/dev-data/Version202504121559.php @@ -0,0 +1,31 @@ +addSql(createTruncateDatabaseCommand()); + + $statements = getStatementsForMigrationFile(); + foreach ($statements as $statement) { + if (trim($statement)) { + $this->addSql($statement); + } + } + // END PHP CODE + } + + public function down(Schema $schema): void {} +} diff --git a/api/migrations/dev-data/data.sql b/api/migrations/dev-data/data.sql index bacf030504..f2ee9f894b 100644 --- a/api/migrations/dev-data/data.sql +++ b/api/migrations/dev-data/data.sql @@ -2,22 +2,22 @@ -INSERT INTO public.profile (id, email, firstname, surname, nickname, language, color, abbreviation, roles, createtime, updatetime, googleid, pbsmidataid, cevidbid, untrustedemail, untrustedemailkeyhash, jubladbid) VALUES - ('711ad2e96f9f', 'admin@example.com', 'Admi', 'Nistrator', 'Administrator', 'de', NULL, NULL, '["ROLE_USER", "ROLE_ADMIN"]', '2022-01-23 16:19:10', '2022-01-23 16:19:10', NULL, NULL, NULL, NULL, NULL, NULL), - ('5e387cad273d', 'test@example.com', 'Robert', 'Baden-Powell', 'Bi-Pi', 'de-CH-scout', '#6a209b', '⚜️', '["ROLE_USER"]', '2022-01-23 16:19:10', '2023-08-08 09:11:11', NULL, NULL, NULL, NULL, NULL, NULL), - ('0870635edda6', 'idefix@example.com', 'Tremaine', 'Kohler', 'Idefix', 'en', NULL, NULL, '["ROLE_USER"]', '2022-01-23 16:19:10', '2022-02-04 19:18:43', NULL, NULL, NULL, NULL, NULL, NULL), - ('4cda72af2704', 'et@example.com', 'Karlie', 'Terry', 'ET', 'en', NULL, NULL, '["ROLE_USER"]', '2022-01-23 16:19:10', '2022-02-04 19:21:43', NULL, NULL, NULL, NULL, NULL, NULL), - ('22dce794d4e2', 'snoopy@example.com', 'Pat', 'Fadel', 'Snoopy', 'en', NULL, NULL, '["ROLE_USER"]', '2022-01-23 16:19:10', '2022-02-04 19:19:40', NULL, NULL, NULL, NULL, NULL, NULL), - ('d46337a76a2c', 'salamander@example.com', 'Fritz', 'Müller', 'Salamander', 'de', NULL, NULL, '["ROLE_USER"]', '2022-02-04 19:26:22', '2022-02-04 23:08:12', NULL, NULL, NULL, NULL, NULL, NULL), - ('f9f1a2f9af25', 'baghira@example.com', 'Zora', 'Steuber', 'Baghira', 'en', NULL, NULL, '["ROLE_USER"]', '2022-01-23 16:19:10', '2022-02-04 19:18:01', NULL, NULL, NULL, NULL, NULL, NULL), - ('7d03c967be7e', 'castor@example.com', 'Hans', 'Muster', 'Castor', 'de', NULL, 'C', '["ROLE_USER"]', '2022-02-04 19:25:07', '2022-02-04 23:07:57', NULL, NULL, NULL, NULL, NULL, NULL), - ('d36197370d44', 'sed@example.com', 'Clifford', 'Beier', 'sed', 'en', NULL, NULL, '["ROLE_USER"]', '2022-01-23 16:19:10', '2022-01-23 16:19:10', NULL, NULL, NULL, NULL, NULL, NULL), - ('e5433660140b', 'sit@example.com', 'Wanda', 'Koelpin', 'sit', 'en', NULL, NULL, '["ROLE_USER"]', '2022-01-23 16:19:10', '2022-01-23 16:19:10', NULL, NULL, NULL, NULL, NULL, NULL), - ('4bc441dc4b29', 'luke@skywalker.com', 'Luke', 'Skywalker', NULL, 'en', NULL, NULL, '["ROLE_USER"]', '2023-08-12 16:43:34', '2023-08-12 16:43:34', NULL, NULL, NULL, NULL, NULL, NULL), - ('5552108bf43e', 'john@wick.com', 'John', 'Wick', NULL, 'en', NULL, NULL, '["ROLE_USER"]', '2023-08-12 16:46:43', '2023-08-12 16:46:43', NULL, NULL, NULL, NULL, NULL, NULL), - ('abfcbcbd4566', 'clark@kent.com', 'Clark', 'Kent', NULL, 'en', NULL, NULL, '["ROLE_USER"]', '2023-08-12 16:49:27', '2023-08-12 16:49:27', NULL, NULL, NULL, NULL, NULL, NULL), - ('3f3fa9319dd2', 'bruce@wayne.com', 'Bruce', 'Wayne', NULL, 'en', NULL, NULL, '["ROLE_USER"]', '2023-08-12 16:55:28', '2023-08-12 16:55:28', NULL, NULL, NULL, NULL, NULL, NULL), - ('51245d0e2ad4', 'felicity@smoak.com', 'Felicity', 'Smoak', NULL, 'en', NULL, NULL, '["ROLE_USER"]', '2023-08-12 16:59:38', '2023-08-12 16:59:38', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO public.profile (id, email, firstname, surname, nickname, language, roles, createtime, updatetime, googleid, pbsmidataid, cevidbid, untrustedemail, untrustedemailkeyhash, jubladbid, color, abbreviation) VALUES + ('711ad2e96f9f', 'admin@example.com', 'Admi', 'Nistrator', 'Administrator', 'de', '["ROLE_USER", "ROLE_ADMIN"]', '2022-01-23 16:19:10', '2022-01-23 16:19:10', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), + ('5e387cad273d', 'test@example.com', 'Robert', 'Baden-Powell', 'Bi-Pi', 'de-CH-scout', '["ROLE_USER"]', '2022-01-23 16:19:10', '2023-08-08 09:11:11', NULL, NULL, NULL, NULL, NULL, NULL, '#6a209b', '⚜️'), + ('0870635edda6', 'idefix@example.com', 'Tremaine', 'Kohler', 'Idefix', 'en', '["ROLE_USER"]', '2022-01-23 16:19:10', '2022-02-04 19:18:43', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), + ('4cda72af2704', 'et@example.com', 'Karlie', 'Terry', 'ET', 'en', '["ROLE_USER"]', '2022-01-23 16:19:10', '2022-02-04 19:21:43', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), + ('22dce794d4e2', 'snoopy@example.com', 'Pat', 'Fadel', 'Snoopy', 'en', '["ROLE_USER"]', '2022-01-23 16:19:10', '2022-02-04 19:19:40', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), + ('d46337a76a2c', 'salamander@example.com', 'Fritz', 'Müller', 'Salamander', 'de', '["ROLE_USER"]', '2022-02-04 19:26:22', '2022-02-04 23:08:12', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), + ('f9f1a2f9af25', 'baghira@example.com', 'Zora', 'Steuber', 'Baghira', 'en', '["ROLE_USER"]', '2022-01-23 16:19:10', '2022-02-04 19:18:01', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), + ('7d03c967be7e', 'castor@example.com', 'Hans', 'Muster', 'Castor', 'de', '["ROLE_USER"]', '2022-02-04 19:25:07', '2022-02-04 23:07:57', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'C'), + ('d36197370d44', 'sed@example.com', 'Clifford', 'Beier', 'sed', 'en', '["ROLE_USER"]', '2022-01-23 16:19:10', '2022-01-23 16:19:10', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), + ('e5433660140b', 'sit@example.com', 'Wanda', 'Koelpin', 'sit', 'en', '["ROLE_USER"]', '2022-01-23 16:19:10', '2022-01-23 16:19:10', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), + ('4bc441dc4b29', 'luke@skywalker.com', 'Luke', 'Skywalker', NULL, 'en', '["ROLE_USER"]', '2023-08-12 16:43:34', '2023-08-12 16:43:34', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), + ('5552108bf43e', 'john@wick.com', 'John', 'Wick', NULL, 'en', '["ROLE_USER"]', '2023-08-12 16:46:43', '2023-08-12 16:46:43', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), + ('abfcbcbd4566', 'clark@kent.com', 'Clark', 'Kent', NULL, 'en', '["ROLE_USER"]', '2023-08-12 16:49:27', '2023-08-12 16:49:27', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), + ('3f3fa9319dd2', 'bruce@wayne.com', 'Bruce', 'Wayne', NULL, 'en', '["ROLE_USER"]', '2023-08-12 16:55:28', '2023-08-12 16:55:28', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), + ('51245d0e2ad4', 'felicity@smoak.com', 'Felicity', 'Smoak', NULL, 'en', '["ROLE_USER"]', '2023-08-12 16:59:38', '2023-08-12 16:59:38', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); @@ -49,7 +49,7 @@ Port Asiaton, MN 44798-0182', '10529', 'New Kaylinfort', '2022-01-23 16:19:10', ('e5027d852487', NULL, true, NULL, 'J+S', '', '', '', '', '', '2022-01-23 16:19:10', '2022-02-04 21:45:19', '3b41dca5c568', '3b41dca5c568', NULL, NULL, NULL, NULL, NULL, NULL, false), ('9c2447aefe38', 'e5027d852487', false, 'Lorem ipsum', 'Lorem ipsum dolor sit amet', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit', 'Lorem ipsum', 'Mainstreet 123', '1234', 'Kongo', '2023-08-12 17:41:55', '2023-08-12 17:45:10', '9145944210a7', '9145944210a7', 'Testinator', 'Summer Tent', 'Max Mustermann', NULL, NULL, NULL, false), ('5d28f99890bc', 'e5027d852487', false, 'PBS CH 361-25', 'Basiskurs Wolfsstufe 2025', 'Auf den Spuren von BiPi', 'Oskar Hugentobler', 'Rainweg 23', '1999', 'Les Bois', '2023-08-08 09:22:58', '2024-09-28 16:14:25', '9145944210a7', '9145944210a7', 'Pfadi Gryfenberg', 'Sommerlager', 'Andrea Schneider', 'JS-CH PBS CH 361-25', 'Basiskurs', 'Sandro Bodruzzi', true), - ('25a82475e0b7', '5d28f99890bc', true, NULL, 'J+S Kurs', '', NULL, NULL, NULL, NULL, '2024-09-28 21:19:13', '2024-09-28 21:23:05', '3b41dca5c568', '3b41dca5c568', '', NULL, NULL, NULL, NULL, NULL, true); + ('25a82475e0b7', '5d28f99890bc', true, NULL, 'J+S Kurs', '', NULL, NULL, NULL, NULL, '2024-09-28 21:19:13', '2024-09-28 21:23:05', '3b41dca5c568', '3b41dca5c568', '', NULL, NULL, NULL, NULL, NULL, true); @@ -1749,12 +1749,12 @@ INSERT INTO public.category_contenttype (category_id, contenttype_id) VALUES -INSERT INTO public.checklist (id, createtime, updatetime, name, campid, isprototype) VALUES - ('000100000000', '2024-09-28 10:00:00', '2024-09-28 10:00:00', 'PBS Basiskurs Wolfsstufe', NULL, true), - ('000200000000', '2024-09-28 10:00:00', '2024-09-28 10:00:00', 'PBS Basiskurs Pfadistufe', NULL, true), - ('000300000000', '2024-09-28 10:00:00', '2024-09-28 10:00:00', 'PBS Aufbaukurs Wolfsstufe', NULL, true), - ('000400000000', '2024-09-28 10:00:00', '2024-09-28 10:00:00', 'PBS Aufbaukurs Pfadistufe', NULL, true), - ('ebbd0c61eb85', '2024-09-28 16:41:19', '2024-09-28 16:41:19', 'Ausbildungsziele', '5d28f99890bc', false); +INSERT INTO public.checklist (id, createtime, updatetime, name, campid, isprototype, checklistprototypeid) VALUES + ('000100000000', '2024-09-28 10:00:00', '2024-09-28 10:00:00', 'PBS Basiskurs Wolfsstufe', NULL, true, NULL), + ('000200000000', '2024-09-28 10:00:00', '2024-09-28 10:00:00', 'PBS Basiskurs Pfadistufe', NULL, true, NULL), + ('000300000000', '2024-09-28 10:00:00', '2024-09-28 10:00:00', 'PBS Aufbaukurs Wolfsstufe', NULL, true, NULL), + ('000400000000', '2024-09-28 10:00:00', '2024-09-28 10:00:00', 'PBS Aufbaukurs Pfadistufe', NULL, true, NULL), + ('ebbd0c61eb85', '2024-09-28 16:41:19', '2024-09-28 16:41:19', 'Ausbildungsziele', '5d28f99890bc', false, NULL); diff --git a/api/psalm.xml b/api/psalm.xml index 3b6d9b6b57..09f4cd8c50 100644 --- a/api/psalm.xml +++ b/api/psalm.xml @@ -6,6 +6,7 @@ cacheDirectory="./.cache" findUnusedBaselineEntry="true" findUnusedCode="false" + ensureOverrideAttribute="false" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://getpsalm.org/schema/config" xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd" diff --git a/api/src/Doctrine/Filter/ExpressionDateTimeFilter.php b/api/src/Doctrine/Filter/ExpressionDateTimeFilter.php index f43f91cafc..7dedbabc8b 100644 --- a/api/src/Doctrine/Filter/ExpressionDateTimeFilter.php +++ b/api/src/Doctrine/Filter/ExpressionDateTimeFilter.php @@ -6,7 +6,7 @@ use ApiPlatform\Doctrine\Common\Filter\DateFilterTrait; use ApiPlatform\Doctrine\Orm\Filter\AbstractFilter; use ApiPlatform\Doctrine\Orm\Util\QueryNameGeneratorInterface; -use ApiPlatform\Exception\InvalidArgumentException; +use ApiPlatform\Metadata\Exception\InvalidArgumentException; use ApiPlatform\Metadata\Operation; use Doctrine\ORM\Query\Expr\Join; use Doctrine\ORM\QueryBuilder; diff --git a/api/src/Entity/Camp.php b/api/src/Entity/Camp.php index e9e82f69dc..d183eee36a 100644 --- a/api/src/Entity/Camp.php +++ b/api/src/Entity/Camp.php @@ -420,9 +420,13 @@ public function getCamp(): ?Camp { * * @return CampCollaboration[] */ - #[ApiProperty(writable: false, example: '["/camp_collaborations/1a2b3c4d"]')] + #[ApiProperty( + writable: false, + uriTemplate: CampCollaboration::CAMP_SUBRESOURCE_URI_TEMPLATE, + example: '["/camps/1a2b3c4d/camp_collaborations"]' + )] public function getCampCollaborations(): array { - return $this->collaborations->getValues(); + return []; } /** diff --git a/api/src/Entity/CampCollaboration.php b/api/src/Entity/CampCollaboration.php index aeeb4304c7..a13659fc4a 100644 --- a/api/src/Entity/CampCollaboration.php +++ b/api/src/Entity/CampCollaboration.php @@ -9,6 +9,7 @@ use ApiPlatform\Metadata\Delete; use ApiPlatform\Metadata\Get; use ApiPlatform\Metadata\GetCollection; +use ApiPlatform\Metadata\Link; use ApiPlatform\Metadata\Patch; use ApiPlatform\Metadata\Post; use ApiPlatform\OpenApi\Model\Operation as OpenApiOperation; @@ -60,6 +61,18 @@ security: 'is_fully_authenticated()', normalizationContext: self::COLLECTION_NORMALIZATION_CONTEXT ), + new GetCollection( + uriTemplate: self::CAMP_SUBRESOURCE_URI_TEMPLATE, + uriVariables: [ + 'campId' => new Link( + toProperty: 'camp', + fromClass: Camp::class, + security: 'is_granted("CAMP_COLLABORATOR", camp) or is_granted("CAMP_IS_PROTOTYPE", camp)' + ), + ], + security: 'is_fully_authenticated()', + normalizationContext: self::COLLECTION_NORMALIZATION_CONTEXT + ), new Post( processor: CampCollaborationCreateProcessor::class, denormalizationContext: ['groups' => ['write', 'create']], @@ -88,6 +101,8 @@ #[ORM\UniqueConstraint(name: 'inviteEmail_camp_unique', fields: ['inviteEmail', 'camp'])] #[ORM\Index(columns: ['status'])] class CampCollaboration extends BaseEntity implements BelongsToCampInterface { + public const CAMP_SUBRESOURCE_URI_TEMPLATE = '/camps/{campId}/camp_collaborations{._format}'; + public const ITEM_NORMALIZATION_CONTEXT = [ 'groups' => ['read', 'CampCollaboration:User'], 'swagger_definition_name' => 'read', diff --git a/api/src/HttpCache/PurgeHttpCacheListener.php b/api/src/HttpCache/PurgeHttpCacheListener.php index c3f5b8c989..498e90d462 100644 --- a/api/src/HttpCache/PurgeHttpCacheListener.php +++ b/api/src/HttpCache/PurgeHttpCacheListener.php @@ -14,11 +14,9 @@ namespace App\HttpCache; -use ApiPlatform\Api\IriConverterInterface as LegacyIriConverterInterface; -use ApiPlatform\Api\ResourceClassResolverInterface as LegacyResourceClassResolverInterface; -use ApiPlatform\Exception\InvalidArgumentException; -use ApiPlatform\Exception\RuntimeException; use ApiPlatform\Metadata\ApiResource; +use ApiPlatform\Metadata\Exception\InvalidArgumentException; +use ApiPlatform\Metadata\Exception\RuntimeException; use ApiPlatform\Metadata\GetCollection; use ApiPlatform\Metadata\IriConverterInterface; use ApiPlatform\Metadata\Link; @@ -46,7 +44,7 @@ final class PurgeHttpCacheListener { public const IRI_RELATION_DELIMITER = '#'; - public function __construct(private readonly IriConverterInterface|LegacyIriConverterInterface $iriConverter, private readonly LegacyResourceClassResolverInterface|ResourceClassResolverInterface $resourceClassResolver, private readonly PropertyAccessorInterface $propertyAccessor, private readonly ResourceMetadataCollectionFactoryInterface $resourceMetadataCollectionFactory, private readonly CacheManager $cacheManager) {} + public function __construct(private readonly IriConverterInterface $iriConverter, private readonly ResourceClassResolverInterface $resourceClassResolver, private readonly PropertyAccessorInterface $propertyAccessor, private readonly ResourceMetadataCollectionFactoryInterface $resourceMetadataCollectionFactory, private readonly CacheManager $cacheManager) {} /** * Collects tags from the previous and the current version of the updated entities to purge related documents. diff --git a/api/src/Metadata/Resource/Factory/UriTemplateFactory.php b/api/src/Metadata/Resource/Factory/UriTemplateFactory.php index 442bd86cb7..cca8d1f42f 100644 --- a/api/src/Metadata/Resource/Factory/UriTemplateFactory.php +++ b/api/src/Metadata/Resource/Factory/UriTemplateFactory.php @@ -2,8 +2,7 @@ namespace App\Metadata\Resource\Factory; -use ApiPlatform\Api\UrlGeneratorInterface; -use ApiPlatform\Exception\ResourceClassNotFoundException; +use ApiPlatform\Metadata\Exception\ResourceClassNotFoundException; use ApiPlatform\Metadata\Get; use ApiPlatform\Metadata\GetCollection; use ApiPlatform\Metadata\HttpOperation; @@ -11,6 +10,7 @@ use ApiPlatform\Metadata\Resource\Factory\ResourceMetadataCollectionFactoryInterface; use ApiPlatform\Metadata\Resource\Factory\ResourceNameCollectionFactoryInterface; use ApiPlatform\Metadata\Resource\ResourceMetadataCollection; +use ApiPlatform\Metadata\UrlGeneratorInterface; use ApiPlatform\State\Pagination\PaginationOptions; use App\Metadata\Resource\OperationHelper; use Psr\Container\ContainerInterface; diff --git a/api/src/Serializer/Normalizer/RelatedCollectionLinkNormalizer.php b/api/src/Serializer/Normalizer/RelatedCollectionLinkNormalizer.php index 38ee62344a..a3dc591b75 100644 --- a/api/src/Serializer/Normalizer/RelatedCollectionLinkNormalizer.php +++ b/api/src/Serializer/Normalizer/RelatedCollectionLinkNormalizer.php @@ -5,7 +5,7 @@ use ApiPlatform\Doctrine\Common\Filter\SearchFilterInterface; use ApiPlatform\Doctrine\Common\PropertyHelperTrait; use ApiPlatform\Doctrine\Orm\Filter\SearchFilter; -use ApiPlatform\Exception\ResourceClassNotFoundException; +use ApiPlatform\Metadata\Exception\ResourceClassNotFoundException; use ApiPlatform\Metadata\GetCollection; use ApiPlatform\Metadata\IriConverterInterface; use ApiPlatform\Metadata\Operation; diff --git a/api/src/Serializer/PreventAutomaticEmbeddingPropertyMetadataFactory.php b/api/src/Serializer/PreventAutomaticEmbeddingPropertyMetadataFactory.php index f436472dd2..21e2b3dc0f 100644 --- a/api/src/Serializer/PreventAutomaticEmbeddingPropertyMetadataFactory.php +++ b/api/src/Serializer/PreventAutomaticEmbeddingPropertyMetadataFactory.php @@ -87,6 +87,9 @@ public function create(string $resourceClass, string $property, array $options = $apiProperty->getGenId(), $apiProperty->getUriTemplate(), $apiProperty->getProperty(), + $apiProperty->getPolicy(), + $apiProperty->getSerialize(), + $apiProperty->getHydra(), $apiProperty->getExtraProperties() ); } diff --git a/api/src/Serializer/SerializerContextBuilder.php b/api/src/Serializer/SerializerContextBuilder.php index 51ce5509f1..1d0c370f04 100644 --- a/api/src/Serializer/SerializerContextBuilder.php +++ b/api/src/Serializer/SerializerContextBuilder.php @@ -2,7 +2,7 @@ namespace App\Serializer; -use ApiPlatform\Serializer\SerializerContextBuilderInterface; +use ApiPlatform\State\SerializerContextBuilderInterface; use Symfony\Component\HttpFoundation\Request; /** diff --git a/api/src/Util/CamelPascalNamingStrategy.php b/api/src/Util/CamelPascalNamingStrategy.php index c0d96ec1b7..2d103e8527 100644 --- a/api/src/Util/CamelPascalNamingStrategy.php +++ b/api/src/Util/CamelPascalNamingStrategy.php @@ -44,8 +44,8 @@ public function joinColumnName($propertyName, $className = null): string { * @param null|string $referencedColumnName a property */ public function joinKeyColumnName($entityName, $referencedColumnName = null): string { - return $this->classToCamelCase($entityName). - ucfirst($referencedColumnName ?: $this->referenceColumnName()); + return $this->classToCamelCase($entityName) + .ucfirst($referencedColumnName ?: $this->referenceColumnName()); } /** diff --git a/api/src/Validator/AllowTransition/AssertAllowTransitionsValidator.php b/api/src/Validator/AllowTransition/AssertAllowTransitionsValidator.php index 01e4624b45..c9c06dbbf0 100644 --- a/api/src/Validator/AllowTransition/AssertAllowTransitionsValidator.php +++ b/api/src/Validator/AllowTransition/AssertAllowTransitionsValidator.php @@ -11,8 +11,8 @@ class AssertAllowTransitionsValidator extends ConstraintValidator { public const TO_VIOLATION_MESSAGE = 'value must be one of {{ to }}, was {{ value }}'; - public const FROM_VIOLATION_MESSAGE = 'This value was previously in an unexpected state,'. - ' expected one of {{ from }}, but was {{ previousValue }}'; + public const FROM_VIOLATION_MESSAGE = 'This value was previously in an unexpected state,' + .' expected one of {{ from }}, but was {{ previousValue }}'; public function __construct(public RequestStack $requestStack) {} diff --git a/api/tests/Api/CampCollaborations/ListCampCollaborationsTest.php b/api/tests/Api/CampCollaborations/ListCampCollaborationsTest.php index d01c9f023e..17a2d064b1 100644 --- a/api/tests/Api/CampCollaborations/ListCampCollaborationsTest.php +++ b/api/tests/Api/CampCollaborations/ListCampCollaborationsTest.php @@ -71,6 +71,29 @@ public function testListCampCollaborationsFilteredByCampIsAllowedForCollaborator ], $response->toArray()['_links']['items']); } + public function testListCampCollaborationsAsCampSubResourceIsAllowedForCollaborator() { + $camp = static::getFixture('camp1'); + $response = static::createClientWithCredentials()->request('GET', "/camps/{$camp->getId()}/camp_collaborations"); + $this->assertResponseStatusCodeSame(200); + $this->assertJsonContains([ + 'totalItems' => 6, + '_links' => [ + 'items' => [], + ], + '_embedded' => [ + 'items' => [], + ], + ]); + $this->assertEqualsCanonicalizing([ + ['href' => $this->getIriFor('campCollaboration1manager')], + ['href' => $this->getIriFor('campCollaboration2member')], + ['href' => $this->getIriFor('campCollaboration3guest')], + ['href' => $this->getIriFor('campCollaboration4invited')], + ['href' => $this->getIriFor('campCollaboration5inactive')], + ['href' => $this->getIriFor('campCollaboration6manager')], + ], $response->toArray()['_links']['items']); + } + public function testListCampCollaborationsFilteredByCampIsDeniedForUnrelatedUser() { $camp = static::getFixture('camp1'); $response = static::createClientWithCredentials(['email' => static::$fixtures['user4unrelated']->getEmail()]) @@ -81,6 +104,15 @@ public function testListCampCollaborationsFilteredByCampIsDeniedForUnrelatedUser $this->assertArrayNotHasKey('items', $response->toArray()['_links']); } + public function testListCampCollaborationsAsCampSubResourceIsDeniedForUnrelatedUser() { + $camp = static::getFixture('camp1'); + static::createClientWithCredentials(['email' => static::$fixtures['user4unrelated']->getEmail()]) + ->request('GET', "/camps/{$camp->getId()}/camp_collaborations") + ; + + $this->assertResponseStatusCodeSame(404); + } + public function testListCampCollaborationsFilteredByCampIsDeniedForInactiveCollaborator() { $camp = static::getFixture('camp1'); $response = static::createClientWithCredentials(['email' => static::$fixtures['user5inactive']->getEmail()]) @@ -91,6 +123,15 @@ public function testListCampCollaborationsFilteredByCampIsDeniedForInactiveColla $this->assertArrayNotHasKey('items', $response->toArray()['_links']); } + public function testListCampCollaborationsAsCampSubResourceIsDeniedForInactiveCollaborator() { + $camp = static::getFixture('camp1'); + static::createClientWithCredentials(['email' => static::$fixtures['user5inactive']->getEmail()]) + ->request('GET', "/camps/{$camp->getId()}/camp_collaborations") + ; + + $this->assertResponseStatusCodeSame(404); + } + public function testListCampCollaborationsFilteredByCampPrototypeIsAllowedForUnrelatedUser() { $camp = static::getFixture('campPrototype'); $response = static::createClientWithCredentials()->request('GET', '/camp_collaborations?camp=%2Fcamps%2F'.$camp->getId()); diff --git a/api/tests/Api/MaterialItems/UpdateMaterialItemTest.php b/api/tests/Api/MaterialItems/UpdateMaterialItemTest.php index aaab79376f..7d072793bb 100644 --- a/api/tests/Api/MaterialItems/UpdateMaterialItemTest.php +++ b/api/tests/Api/MaterialItems/UpdateMaterialItemTest.php @@ -390,7 +390,7 @@ public function testPatchMaterialItemAcceptsLargeNumberForQuantity() { ]); } - public function testPatchMaterialItemDoesNotCrashForLargeNumberForQuantity() { + public function testPatchMaterialItemFailsForLargeNumberForQuantity() { $materialItem = static::getFixture('materialItem1'); static::createClientWithCredentials()->request( 'PATCH', @@ -407,10 +407,7 @@ public function testPatchMaterialItemDoesNotCrashForLargeNumberForQuantity() { ] ); - $this->assertResponseStatusCodeSame(200); - $this->assertJsonContains([ - 'quantity' => 0, - ]); + $this->assertResponseStatusCodeSame(400); } public function testPatchMaterialItemAllowsMissingUnit() { diff --git a/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml b/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml index f03bd49f56..eeec30957b 100644 --- a/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml +++ b/api/tests/Api/SnapshotTests/__snapshots__/ResponseSnapshotTest__testOpenApiSpecMatchesSnapshot__1.yml @@ -9975,6 +9975,104 @@ components: - parent - position type: object + ConstraintViolation-json: + deprecated: false + description: 'Unprocessable entity' + properties: + detail: + readOnly: true + type: string + instance: + readOnly: true + type: + - 'null' + - string + status: + default: 422 + example: 422 + type: integer + title: + readOnly: true + type: + - 'null' + - string + type: + readOnly: true + type: string + violations: + items: + properties: + message: + description: 'The message associated with the violation' + type: string + propertyPath: + description: 'The property path of the violation' + type: string + type: object + type: array + type: object + ConstraintViolation.jsonld-jsonld: + deprecated: false + description: 'Unprocessable entity' + properties: + '@context': + oneOf: + - + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string + description: + readOnly: true + type: string + detail: + readOnly: true + type: string + instance: + readOnly: true + type: + - 'null' + - string + status: + default: 422 + example: 422 + type: integer + title: + readOnly: true + type: + - 'null' + - string + type: + readOnly: true + type: string + violations: + items: + properties: + message: + description: 'The message associated with the violation' + type: string + propertyPath: + description: 'The property path of the violation' + type: string + type: object + type: array + type: object ContentNode-read: deprecated: false description: |- @@ -12391,6 +12489,96 @@ components: - campCollaboration - day type: object + Error: + deprecated: false + description: 'A representation of common errors.' + properties: + detail: + description: 'A human-readable explanation specific to this occurrence of the problem.' + readOnly: true + type: + - 'null' + - string + instance: + description: 'A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.' + readOnly: true + type: + - 'null' + - string + status: + default: 400 + example: 404 + type: number + title: + description: 'A short, human-readable summary of the problem.' + readOnly: true + type: + - 'null' + - string + type: + description: 'A URI reference that identifies the problem type' + readOnly: true + type: string + type: object + Error.jsonld: + deprecated: false + description: 'A representation of common errors.' + properties: + '@context': + oneOf: + - + additionalProperties: true + properties: + '@vocab': + type: string + hydra: + enum: ['http://www.w3.org/ns/hydra/core#'] + type: string + required: + - '@vocab' + - hydra + type: object + - + type: string + readOnly: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string + description: + readOnly: true + type: + - 'null' + - string + detail: + description: 'A human-readable explanation specific to this occurrence of the problem.' + readOnly: true + type: + - 'null' + - string + instance: + description: 'A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.' + readOnly: true + type: + - 'null' + - string + status: + default: 400 + example: 404 + type: number + title: + description: 'A short, human-readable summary of the problem.' + readOnly: true + type: + - 'null' + - string + type: + description: 'A URI reference that identifies the problem type' + readOnly: true + type: string + type: object Invitation-read: deprecated: false description: |- @@ -21952,12 +22140,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/Activity.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/Activity.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -21971,7 +22159,18 @@ paths: type: array description: 'Activity collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of Activity resources.' tags: - Activity @@ -22020,9 +22219,31 @@ paths: description: 'Activity resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a Activity resource.' tags: - Activity @@ -22048,9 +22269,31 @@ paths: 204: description: 'Activity resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the Activity resource.' tags: - Activity @@ -22091,9 +22334,31 @@ paths: $ref: '#/components/schemas/Activity-read_Activity.Category_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries_Activity.ContentNodes' description: 'Activity resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a Activity resource.' tags: - Activity @@ -22145,13 +22410,57 @@ paths: description: 'Activity resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Updates the Activity resource.' tags: - Activity @@ -22209,12 +22518,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/ActivityProgressLabel.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/ActivityProgressLabel.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -22228,7 +22537,18 @@ paths: type: array description: 'ActivityProgressLabel collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of ActivityProgressLabel resources.' tags: - ActivityProgressLabel @@ -22277,9 +22597,31 @@ paths: description: 'ActivityProgressLabel resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a ActivityProgressLabel resource.' tags: - ActivityProgressLabel @@ -22305,9 +22647,31 @@ paths: 204: description: 'ActivityProgressLabel resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the ActivityProgressLabel resource.' tags: - ActivityProgressLabel @@ -22348,12 +22712,34 @@ paths: $ref: '#/components/schemas/ActivityProgressLabel-read' description: 'ActivityProgressLabel resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' - summary: 'Retrieves a ActivityProgressLabel resource.' - tags: - - ActivityProgressLabel + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] + summary: 'Retrieves a ActivityProgressLabel resource.' + tags: + - ActivityProgressLabel patch: deprecated: false description: 'Updates the ActivityProgressLabel resource.' @@ -22402,13 +22788,57 @@ paths: description: 'ActivityProgressLabel resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Updates the ActivityProgressLabel resource.' tags: - ActivityProgressLabel @@ -22492,12 +22922,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/ActivityResponsible.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/ActivityResponsible.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -22511,7 +22941,18 @@ paths: type: array description: 'ActivityResponsible collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of ActivityResponsible resources.' tags: - ActivityResponsible @@ -22560,9 +23001,31 @@ paths: description: 'ActivityResponsible resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a ActivityResponsible resource.' tags: - ActivityResponsible @@ -22588,9 +23051,31 @@ paths: 204: description: 'ActivityResponsible resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the ActivityResponsible resource.' tags: - ActivityResponsible @@ -22631,9 +23116,31 @@ paths: $ref: '#/components/schemas/ActivityResponsible-read' description: 'ActivityResponsible resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a ActivityResponsible resource.' tags: - ActivityResponsible @@ -22770,11 +23277,44 @@ paths: description: 'UserActivation resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Request activation email again' tags: - UserActivation @@ -22819,11 +23359,44 @@ paths: description: 'ResetPassword resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Request Password-Reset-Mail' tags: - ResetPassword @@ -22865,9 +23438,31 @@ paths: $ref: '#/components/schemas/ResetPassword' description: 'ResetPassword resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a ResetPassword resource.' tags: - ResetPassword @@ -22919,13 +23514,57 @@ paths: description: 'ResetPassword resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Updates the ResetPassword resource.' tags: - ResetPassword @@ -23044,12 +23683,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/CampCollaboration.jsonld-read_CampCollaboration.Camp_CampCollaboration.User' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/CampCollaboration.jsonld-read_CampCollaboration.Camp_CampCollaboration.User' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -23063,7 +23702,18 @@ paths: type: array description: 'CampCollaboration collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of CampCollaboration resources.' tags: - CampCollaboration @@ -23112,9 +23762,31 @@ paths: description: 'CampCollaboration resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a CampCollaboration resource.' tags: - CampCollaboration @@ -23140,9 +23812,31 @@ paths: 204: description: 'CampCollaboration resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the CampCollaboration resource.' tags: - CampCollaboration @@ -23183,9 +23877,31 @@ paths: $ref: '#/components/schemas/CampCollaboration-read_CampCollaboration.User' description: 'CampCollaboration resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a CampCollaboration resource.' tags: - CampCollaboration @@ -23237,13 +23953,57 @@ paths: description: 'CampCollaboration resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Updates the CampCollaboration resource.' tags: - CampCollaboration @@ -23296,13 +24056,57 @@ paths: description: 'CampCollaboration resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Send the invitation email for this CampCollaboration again. Only possible, if the status is already invited.' tags: - CampCollaboration @@ -23360,12 +24164,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/Camp.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/Camp.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -23379,7 +24183,18 @@ paths: type: array description: 'Camp collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of Camp resources.' tags: - Camp @@ -23428,11 +24243,44 @@ paths: description: 'Camp resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a Camp resource.' tags: - Camp @@ -23502,12 +24350,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/Activity.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/Activity.jsonld-read_Activity.ActivityProgressLabel_Activity.ActivityResponsibles_Activity.ScheduleEntries' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -23521,7 +24369,18 @@ paths: type: array description: 'Activity collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of Activity resources.' tags: - Activity @@ -23591,12 +24450,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/ActivityProgressLabel.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/ActivityProgressLabel.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -23610,10 +24469,147 @@ paths: type: array description: 'ActivityProgressLabel collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of ActivityProgressLabel resources.' tags: - ActivityProgressLabel + '/camps/{campId}/camp_collaborations': + get: + deprecated: false + description: 'Retrieves the collection of CampCollaboration resources.' + operationId: api_camps_campIdcamp_collaborations_get_collection + parameters: + - + allowEmptyValue: false + allowReserved: false + deprecated: false + description: '' + explode: false + in: query + name: activityResponsibles.activity + required: false + schema: + type: string + style: form + - + allowEmptyValue: false + allowReserved: false + deprecated: false + description: '' + explode: false + in: query + name: camp + required: false + schema: + type: string + style: form + - + allowEmptyValue: false + allowReserved: false + deprecated: false + description: '' + explode: true + in: query + name: 'activityResponsibles.activity[]' + required: false + schema: + items: + type: string + type: array + style: form + - + allowEmptyValue: false + allowReserved: false + deprecated: false + description: '' + explode: true + in: query + name: 'camp[]' + required: false + schema: + items: + type: string + type: array + style: form + - + allowEmptyValue: false + allowReserved: false + deprecated: false + description: 'CampCollaboration identifier' + explode: false + in: path + name: campId + required: true + schema: + type: string + style: simple + responses: + 200: + content: + application/hal+json: + schema: + properties: + _embedded: { anyOf: [{ properties: { item: { items: { $ref: '#/components/schemas/CampCollaboration.jsonhal-read_CampCollaboration.Camp_CampCollaboration.User' }, type: array } }, type: object }, { type: object }] } + _links: { properties: { first: { properties: { href: { format: iri-reference, type: string } }, type: object }, last: { properties: { href: { format: iri-reference, type: string } }, type: object }, next: { properties: { href: { format: iri-reference, type: string } }, type: object }, previous: { properties: { href: { format: iri-reference, type: string } }, type: object }, self: { properties: { href: { format: iri-reference, type: string } }, type: object } }, type: object } + itemsPerPage: { minimum: 0, type: integer } + totalItems: { minimum: 0, type: integer } + required: + - _embedded + - _links + type: object + application/json: + schema: + items: + $ref: '#/components/schemas/CampCollaboration-read_CampCollaboration.Camp_CampCollaboration.User' + type: array + application/ld+json: + schema: + properties: + member: { items: { $ref: '#/components/schemas/CampCollaboration.jsonld-read_CampCollaboration.Camp_CampCollaboration.User' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } + required: + - member + type: object + application/vnd.api+json: + schema: + items: + $ref: '#/components/schemas/CampCollaboration.jsonapi' + type: array + text/html: + schema: + items: + $ref: '#/components/schemas/CampCollaboration-read_CampCollaboration.Camp_CampCollaboration.User' + type: array + description: 'CampCollaboration collection' + 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + links: [] + summary: 'Retrieves the collection of CampCollaboration resources.' + tags: + - CampCollaboration '/camps/{campId}/categories': get: deprecated: false @@ -23680,12 +24676,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/Category.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/Category.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -23793,12 +24789,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/Checklist.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/Checklist.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -23836,9 +24832,31 @@ paths: 204: description: 'Camp resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the Camp resource.' tags: - Camp @@ -23879,9 +24897,31 @@ paths: $ref: '#/components/schemas/Camp-read_Camp.Periods_Period.Days_Camp.CampCollaborations_CampCollaboration.User' description: 'Camp resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a Camp resource.' tags: - Camp @@ -23933,13 +24973,57 @@ paths: description: 'Camp resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Updates the Camp resource.' tags: - Camp @@ -23997,12 +25081,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/Category.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/Category.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -24016,7 +25100,18 @@ paths: type: array description: 'Category collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of Category resources.' tags: - Category @@ -24065,9 +25160,31 @@ paths: description: 'Category resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a Category resource.' tags: - Category @@ -24093,9 +25210,31 @@ paths: 204: description: 'Category resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the Category resource.' tags: - Category @@ -24136,9 +25275,31 @@ paths: $ref: '#/components/schemas/Category-read_Category.PreferredContentTypes_Category.ContentNodes' description: 'Category resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a Category resource.' tags: - Category @@ -24183,20 +25344,64 @@ paths: $ref: '#/components/schemas/Category.jsonld-read_Category.PreferredContentTypes_Category.ContentNodes' application/vnd.api+json: schema: - $ref: '#/components/schemas/Category.jsonapi' - text/html: + $ref: '#/components/schemas/Category.jsonapi' + text/html: + schema: + $ref: '#/components/schemas/Category-read_Category.PreferredContentTypes_Category.ContentNodes' + description: 'Category resource updated' + links: [] + 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Invalid input' + links: [] + 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + links: [] + 404: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] + 422: + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: schema: - $ref: '#/components/schemas/Category-read_Category.PreferredContentTypes_Category.ContentNodes' - description: 'Category resource updated' + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' links: [] - 400: - description: 'Invalid input' - 403: - description: Forbidden - 404: - description: 'Resource not found' - 422: - description: 'Unprocessable entity' summary: 'Updates the Category resource.' tags: - Category @@ -24280,12 +25485,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/ChecklistItem.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/ChecklistItem.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -24299,7 +25504,18 @@ paths: type: array description: 'ChecklistItem collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of ChecklistItem resources.' tags: - ChecklistItem @@ -24348,9 +25564,31 @@ paths: description: 'ChecklistItem resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a ChecklistItem resource.' tags: - ChecklistItem @@ -24376,9 +25614,31 @@ paths: 204: description: 'ChecklistItem resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the ChecklistItem resource.' tags: - ChecklistItem @@ -24419,9 +25679,31 @@ paths: $ref: '#/components/schemas/ChecklistItem-read' description: 'ChecklistItem resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a ChecklistItem resource.' tags: - ChecklistItem @@ -24473,13 +25755,57 @@ paths: description: 'ChecklistItem resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Updates the ChecklistItem resource.' tags: - ChecklistItem @@ -24563,12 +25889,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/Checklist.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/Checklist.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -24582,7 +25908,18 @@ paths: type: array description: 'Checklist collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of Checklist resources.' tags: - Checklist @@ -24631,9 +25968,31 @@ paths: description: 'Checklist resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a Checklist resource.' tags: - Checklist @@ -24729,12 +26088,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/ChecklistItem.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/ChecklistItem.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -24772,9 +26131,31 @@ paths: 204: description: 'Checklist resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the Checklist resource.' tags: - Checklist @@ -24815,9 +26196,31 @@ paths: $ref: '#/components/schemas/Checklist-read' description: 'Checklist resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a Checklist resource.' tags: - Checklist @@ -24869,13 +26272,57 @@ paths: description: 'Checklist resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Updates the Checklist resource.' tags: - Checklist @@ -24983,12 +26430,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/ChecklistNode.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/ChecklistNode.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -25002,7 +26449,18 @@ paths: type: array description: 'ChecklistNode collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of ChecklistNode resources.' tags: - ChecklistNode @@ -25051,9 +26509,31 @@ paths: description: 'ChecklistNode resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a ChecklistNode resource.' tags: - ChecklistNode @@ -25079,9 +26559,31 @@ paths: 204: description: 'ChecklistNode resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the ChecklistNode resource.' tags: - ChecklistNode @@ -25122,9 +26624,31 @@ paths: $ref: '#/components/schemas/ChecklistNode-read' description: 'ChecklistNode resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a ChecklistNode resource.' tags: - ChecklistNode @@ -25169,20 +26693,64 @@ paths: $ref: '#/components/schemas/ChecklistNode.jsonld-read' application/vnd.api+json: schema: - $ref: '#/components/schemas/ChecklistNode.jsonapi' - text/html: + $ref: '#/components/schemas/ChecklistNode.jsonapi' + text/html: + schema: + $ref: '#/components/schemas/ChecklistNode-read' + description: 'ChecklistNode resource updated' + links: [] + 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Invalid input' + links: [] + 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + links: [] + 404: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] + 422: + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: schema: - $ref: '#/components/schemas/ChecklistNode-read' - description: 'ChecklistNode resource updated' + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' links: [] - 400: - description: 'Invalid input' - 403: - description: Forbidden - 404: - description: 'Resource not found' - 422: - description: 'Unprocessable entity' summary: 'Updates the ChecklistNode resource.' tags: - ChecklistNode @@ -25290,12 +26858,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/ColumnLayout.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/ColumnLayout.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -25309,7 +26877,18 @@ paths: type: array description: 'ColumnLayout collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of ColumnLayout resources.' tags: - ColumnLayout @@ -25358,9 +26937,31 @@ paths: description: 'ColumnLayout resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a ColumnLayout resource.' tags: - ColumnLayout @@ -25386,9 +26987,31 @@ paths: 204: description: 'ColumnLayout resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the ColumnLayout resource.' tags: - ColumnLayout @@ -25429,9 +27052,31 @@ paths: $ref: '#/components/schemas/ColumnLayout-read' description: 'ColumnLayout resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a ColumnLayout resource.' tags: - ColumnLayout @@ -25483,13 +27128,57 @@ paths: description: 'ColumnLayout resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Updates the ColumnLayout resource.' tags: - ColumnLayout @@ -25597,12 +27286,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/MaterialNode.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/MaterialNode.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -25616,7 +27305,18 @@ paths: type: array description: 'MaterialNode collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of MaterialNode resources.' tags: - MaterialNode @@ -25665,9 +27365,31 @@ paths: description: 'MaterialNode resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a MaterialNode resource.' tags: - MaterialNode @@ -25693,9 +27415,31 @@ paths: 204: description: 'MaterialNode resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the MaterialNode resource.' tags: - MaterialNode @@ -25736,9 +27480,31 @@ paths: $ref: '#/components/schemas/MaterialNode-read' description: 'MaterialNode resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a MaterialNode resource.' tags: - MaterialNode @@ -25790,13 +27556,57 @@ paths: description: 'MaterialNode resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Updates the MaterialNode resource.' tags: - MaterialNode @@ -25904,12 +27714,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/MultiSelect.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/MultiSelect.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -25923,7 +27733,18 @@ paths: type: array description: 'MultiSelect collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of MultiSelect resources.' tags: - MultiSelect @@ -25972,9 +27793,31 @@ paths: description: 'MultiSelect resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a MultiSelect resource.' tags: - MultiSelect @@ -26000,9 +27843,31 @@ paths: 204: description: 'MultiSelect resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the MultiSelect resource.' tags: - MultiSelect @@ -26043,9 +27908,31 @@ paths: $ref: '#/components/schemas/MultiSelect-read' description: 'MultiSelect resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a MultiSelect resource.' tags: - MultiSelect @@ -26081,29 +27968,73 @@ paths: content: application/hal+json: schema: - $ref: '#/components/schemas/MultiSelect.jsonhal-read' + $ref: '#/components/schemas/MultiSelect.jsonhal-read' + application/json: + schema: + $ref: '#/components/schemas/MultiSelect-read' + application/ld+json: + schema: + $ref: '#/components/schemas/MultiSelect.jsonld-read' + application/vnd.api+json: + schema: + $ref: '#/components/schemas/MultiSelect.jsonapi' + text/html: + schema: + $ref: '#/components/schemas/MultiSelect-read' + description: 'MultiSelect resource updated' + links: [] + 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Invalid input' + links: [] + 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + links: [] + 404: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] + 422: + content: application/json: schema: - $ref: '#/components/schemas/MultiSelect-read' + $ref: '#/components/schemas/ConstraintViolation-json' application/ld+json: schema: - $ref: '#/components/schemas/MultiSelect.jsonld-read' - application/vnd.api+json: - schema: - $ref: '#/components/schemas/MultiSelect.jsonapi' - text/html: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: schema: - $ref: '#/components/schemas/MultiSelect-read' - description: 'MultiSelect resource updated' + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' links: [] - 400: - description: 'Invalid input' - 403: - description: Forbidden - 404: - description: 'Resource not found' - 422: - description: 'Unprocessable entity' summary: 'Updates the MultiSelect resource.' tags: - MultiSelect @@ -26211,12 +28142,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/ResponsiveLayout.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/ResponsiveLayout.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -26230,7 +28161,18 @@ paths: type: array description: 'ResponsiveLayout collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of ResponsiveLayout resources.' tags: - ResponsiveLayout @@ -26279,9 +28221,31 @@ paths: description: 'ResponsiveLayout resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a ResponsiveLayout resource.' tags: - ResponsiveLayout @@ -26307,9 +28271,31 @@ paths: 204: description: 'ResponsiveLayout resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the ResponsiveLayout resource.' tags: - ResponsiveLayout @@ -26350,9 +28336,31 @@ paths: $ref: '#/components/schemas/ResponsiveLayout-read' description: 'ResponsiveLayout resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a ResponsiveLayout resource.' tags: - ResponsiveLayout @@ -26404,13 +28412,57 @@ paths: description: 'ResponsiveLayout resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Updates the ResponsiveLayout resource.' tags: - ResponsiveLayout @@ -26518,12 +28570,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/SingleText.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/SingleText.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -26537,7 +28589,18 @@ paths: type: array description: 'SingleText collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of SingleText resources.' tags: - SingleText @@ -26586,9 +28649,31 @@ paths: description: 'SingleText resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a SingleText resource.' tags: - SingleText @@ -26614,9 +28699,31 @@ paths: 204: description: 'SingleText resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the SingleText resource.' tags: - SingleText @@ -26657,9 +28764,31 @@ paths: $ref: '#/components/schemas/SingleText-read' description: 'SingleText resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a SingleText resource.' tags: - SingleText @@ -26711,13 +28840,57 @@ paths: description: 'SingleText resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Updates the SingleText resource.' tags: - SingleText @@ -26825,12 +28998,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/Storyboard.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/Storyboard.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -26844,7 +29017,18 @@ paths: type: array description: 'Storyboard collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of Storyboard resources.' tags: - Storyboard @@ -26893,9 +29077,31 @@ paths: description: 'Storyboard resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a Storyboard resource.' tags: - Storyboard @@ -26921,9 +29127,31 @@ paths: 204: description: 'Storyboard resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the Storyboard resource.' tags: - Storyboard @@ -26964,9 +29192,31 @@ paths: $ref: '#/components/schemas/Storyboard-read' description: 'Storyboard resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a Storyboard resource.' tags: - Storyboard @@ -27005,26 +29255,70 @@ paths: $ref: '#/components/schemas/Storyboard.jsonhal-read' application/json: schema: - $ref: '#/components/schemas/Storyboard-read' + $ref: '#/components/schemas/Storyboard-read' + application/ld+json: + schema: + $ref: '#/components/schemas/Storyboard.jsonld-read' + application/vnd.api+json: + schema: + $ref: '#/components/schemas/Storyboard.jsonapi' + text/html: + schema: + $ref: '#/components/schemas/Storyboard-read' + description: 'Storyboard resource updated' + links: [] + 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Invalid input' + links: [] + 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + links: [] + 404: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' application/ld+json: schema: - $ref: '#/components/schemas/Storyboard.jsonld-read' - application/vnd.api+json: - schema: - $ref: '#/components/schemas/Storyboard.jsonapi' - text/html: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: schema: - $ref: '#/components/schemas/Storyboard-read' - description: 'Storyboard resource updated' + $ref: '#/components/schemas/Error' + description: 'Not found' links: [] - 400: - description: 'Invalid input' - 403: - description: Forbidden - 404: - description: 'Resource not found' 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Updates the Storyboard resource.' tags: - Storyboard @@ -27132,12 +29426,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/ContentNode.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/ContentNode.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -27151,7 +29445,18 @@ paths: type: array description: 'ContentNode collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of ContentNode resources.' tags: - ContentNode @@ -27235,12 +29540,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/ContentType.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/ContentType.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -27294,7 +29599,18 @@ paths: $ref: '#/components/schemas/ContentType-read' description: 'ContentType resource' 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a ContentType resource.' tags: - ContentType @@ -27378,12 +29694,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/DayResponsible.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/DayResponsible.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -27397,7 +29713,18 @@ paths: type: array description: 'DayResponsible collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of DayResponsible resources.' tags: - DayResponsible @@ -27446,9 +29773,31 @@ paths: description: 'DayResponsible resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a DayResponsible resource.' tags: - DayResponsible @@ -27474,9 +29823,31 @@ paths: 204: description: 'DayResponsible resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the DayResponsible resource.' tags: - DayResponsible @@ -27517,9 +29888,31 @@ paths: $ref: '#/components/schemas/DayResponsible-read' description: 'DayResponsible resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a DayResponsible resource.' tags: - DayResponsible @@ -27603,12 +29996,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/Day.jsonld-read_Day.DayResponsibles' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/Day.jsonld-read_Day.DayResponsibles' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -27622,7 +30015,18 @@ paths: type: array description: 'Day collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of Day resources.' tags: - Day @@ -27718,12 +30122,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/DayResponsible.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/DayResponsible.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -27777,9 +30181,31 @@ paths: $ref: '#/components/schemas/Day-read_Day.DayResponsibles' description: 'Day resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a Day resource.' tags: - Day @@ -27832,13 +30258,57 @@ paths: description: 'Invitation resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Accept an Invitation.' tags: - Invitation @@ -27880,7 +30350,18 @@ paths: $ref: '#/components/schemas/Invitation-read' description: 'Invitation resource' 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a Invitation resource.' tags: - Invitation @@ -27933,11 +30414,44 @@ paths: description: 'Invitation resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Reject an Invitation.' tags: - Invitation @@ -28033,12 +30547,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/MaterialItem.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/MaterialItem.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -28052,7 +30566,18 @@ paths: type: array description: 'MaterialItem collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of MaterialItem resources.' tags: - MaterialItem @@ -28101,9 +30626,31 @@ paths: description: 'MaterialItem resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a MaterialItem resource.' tags: - MaterialItem @@ -28129,9 +30676,31 @@ paths: 204: description: 'MaterialItem resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the MaterialItem resource.' tags: - MaterialItem @@ -28172,9 +30741,31 @@ paths: $ref: '#/components/schemas/MaterialItem-read' description: 'MaterialItem resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a MaterialItem resource.' tags: - MaterialItem @@ -28216,23 +30807,67 @@ paths: $ref: '#/components/schemas/MaterialItem-read' application/ld+json: schema: - $ref: '#/components/schemas/MaterialItem.jsonld-read' - application/vnd.api+json: + $ref: '#/components/schemas/MaterialItem.jsonld-read' + application/vnd.api+json: + schema: + $ref: '#/components/schemas/MaterialItem.jsonapi' + text/html: + schema: + $ref: '#/components/schemas/MaterialItem-read' + description: 'MaterialItem resource updated' + links: [] + 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Invalid input' + links: [] + 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + links: [] + 404: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] + 422: + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: schema: - $ref: '#/components/schemas/MaterialItem.jsonapi' - text/html: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: schema: - $ref: '#/components/schemas/MaterialItem-read' - description: 'MaterialItem resource updated' + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' links: [] - 400: - description: 'Invalid input' - 403: - description: Forbidden - 404: - description: 'Resource not found' - 422: - description: 'Unprocessable entity' summary: 'Updates the MaterialItem resource.' tags: - MaterialItem @@ -28290,12 +30925,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/MaterialList.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/MaterialList.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -28309,7 +30944,18 @@ paths: type: array description: 'MaterialList collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of MaterialList resources.' tags: - MaterialList @@ -28358,9 +31004,31 @@ paths: description: 'MaterialList resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a MaterialList resource.' tags: - MaterialList @@ -28386,9 +31054,31 @@ paths: 204: description: 'MaterialList resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the MaterialList resource.' tags: - MaterialList @@ -28429,9 +31119,31 @@ paths: $ref: '#/components/schemas/MaterialList-read' description: 'MaterialList resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a MaterialList resource.' tags: - MaterialList @@ -28483,13 +31195,57 @@ paths: description: 'MaterialList resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Updates the MaterialList resource.' tags: - MaterialList @@ -28547,12 +31303,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/Period.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/Period.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -28566,7 +31322,18 @@ paths: type: array description: 'Period collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of Period resources.' tags: - Period @@ -28615,9 +31382,31 @@ paths: description: 'Period resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a Period resource.' tags: - Period @@ -28643,9 +31432,31 @@ paths: 204: description: 'Period resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the Period resource.' tags: - Period @@ -28686,9 +31497,31 @@ paths: $ref: '#/components/schemas/Period-read_Period.Camp_Period.Days' description: 'Period resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a Period resource.' tags: - Period @@ -28740,13 +31573,57 @@ paths: description: 'Period resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Updates the Period resource.' tags: - Period @@ -28842,12 +31719,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/Day.jsonld-read_Day.DayResponsibles' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/Day.jsonld-read_Day.DayResponsibles' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -28861,7 +31738,18 @@ paths: type: array description: 'Day collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of Day resources.' tags: - Day @@ -29053,12 +31941,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/ScheduleEntry.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/ScheduleEntry.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -29072,7 +31960,18 @@ paths: type: array description: 'ScheduleEntry collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of ScheduleEntry resources.' tags: - ScheduleEntry @@ -29104,12 +32003,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/PersonalInvitation.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/PersonalInvitation.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -29123,7 +32022,18 @@ paths: type: array description: 'PersonalInvitation collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of PersonalInvitation resources.' tags: - PersonalInvitation @@ -29165,7 +32075,18 @@ paths: $ref: '#/components/schemas/PersonalInvitation-read' description: 'PersonalInvitation resource' 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a PersonalInvitation resource.' tags: - PersonalInvitation @@ -29218,13 +32139,57 @@ paths: description: 'PersonalInvitation resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Accept a personal invitation.' tags: - PersonalInvitation @@ -29277,11 +32242,44 @@ paths: description: 'PersonalInvitation resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Reject a personal invitation.' tags: - PersonalInvitation @@ -29365,12 +32363,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/Profile.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/Profile.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -29384,7 +32382,18 @@ paths: type: array description: 'Profile collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of Profile resources.' tags: - Profile @@ -29426,9 +32435,31 @@ paths: $ref: '#/components/schemas/Profile-read' description: 'Profile resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a Profile resource.' tags: - Profile @@ -29480,13 +32511,57 @@ paths: description: 'Profile resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Updates the Profile resource.' tags: - Profile @@ -29666,12 +32741,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/ScheduleEntry.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/ScheduleEntry.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -29685,7 +32760,18 @@ paths: type: array description: 'ScheduleEntry collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of ScheduleEntry resources.' tags: - ScheduleEntry @@ -29734,9 +32820,31 @@ paths: description: 'ScheduleEntry resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a ScheduleEntry resource.' tags: - ScheduleEntry @@ -29762,9 +32870,31 @@ paths: 204: description: 'ScheduleEntry resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the ScheduleEntry resource.' tags: - ScheduleEntry @@ -29805,9 +32935,31 @@ paths: $ref: '#/components/schemas/ScheduleEntry-read_ScheduleEntry.Activity' description: 'ScheduleEntry resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a ScheduleEntry resource.' tags: - ScheduleEntry @@ -29859,13 +33011,57 @@ paths: description: 'ScheduleEntry resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Updates the ScheduleEntry resource.' tags: - ScheduleEntry @@ -29897,12 +33093,12 @@ paths: application/ld+json: schema: properties: - 'hydra:member': { items: { $ref: '#/components/schemas/User.jsonld-read' }, type: array } - 'hydra:search': { properties: { '@type': { type: string }, 'hydra:mapping': { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, 'hydra:template': { type: string }, 'hydra:variableRepresentation': { type: string } }, type: object } - 'hydra:totalItems': { minimum: 0, type: integer } - 'hydra:view': { example: { '@id': string, 'hydra:first': string, 'hydra:last': string, 'hydra:next': string, 'hydra:previous': string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, 'hydra:first': { format: iri-reference, type: string }, 'hydra:last': { format: iri-reference, type: string }, 'hydra:next': { format: iri-reference, type: string }, 'hydra:previous': { format: iri-reference, type: string } }, type: object } + member: { items: { $ref: '#/components/schemas/User.jsonld-read' }, type: array } + search: { properties: { '@type': { type: string }, mapping: { items: { properties: { '@type': { type: string }, property: { type: ['null', string] }, required: { type: boolean }, variable: { type: string } }, type: object }, type: array }, template: { type: string }, variableRepresentation: { type: string } }, type: object } + totalItems: { minimum: 0, type: integer } + view: { example: { '@id': string, first: string, last: string, next: string, previous: string, type: string }, properties: { '@id': { format: iri-reference, type: string }, '@type': { type: string }, first: { format: iri-reference, type: string }, last: { format: iri-reference, type: string }, next: { format: iri-reference, type: string }, previous: { format: iri-reference, type: string } }, type: object } required: - - 'hydra:member' + - member type: object application/vnd.api+json: schema: @@ -29916,7 +33112,18 @@ paths: type: array description: 'User collection' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] summary: 'Retrieves the collection of User resources.' tags: - User @@ -29965,11 +33172,44 @@ paths: description: 'User resource created' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Creates a User resource.' tags: - User @@ -29995,9 +33235,31 @@ paths: 204: description: 'User resource deleted' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Removes the User resource.' tags: - User @@ -30038,9 +33300,31 @@ paths: $ref: '#/components/schemas/User-read' description: 'User resource' 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] summary: 'Retrieves a User resource.' tags: - User @@ -30092,13 +33376,57 @@ paths: description: 'User resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 403: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: Forbidden + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Updates the User resource.' tags: - User @@ -30151,11 +33479,44 @@ paths: description: 'User resource updated' links: [] 400: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' description: 'Invalid input' + links: [] 404: - description: 'Resource not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + description: 'Not found' + links: [] 422: - description: 'Unprocessable entity' + content: + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + description: 'An error occurred' + links: [] summary: 'Updates the User resource.' tags: - User @@ -30164,5 +33525,120 @@ servers: - description: '' url: / -tags: [] +tags: + - + description: |- + A ChecklistItem + A Checklist contains a Tree-Structure of ChecklistItems. + name: ChecklistItem + - + description: |- + A Checklist + Tree-Structure with ChecklistItems. + name: Checklist + - + description: |- + A calendar event in a period of the camp, at which some activity will take place. The start time + is specified as an offset in minutes from the period's start time. + name: ScheduleEntry + - + description: |- + A day in a time period of a camp. This is represented as a reference to the time period + along with a number of days offset from the period's starting date. This is to make it + easier to move the whole periods to different dates. Days are created automatically when + creating or updating periods, and are not writable through the API directly. + name: Day + - + description: |- + A list of material items that someone needs to bring to the camp. A material list + is automatically created for each person collaborating on the camp. + name: MaterialList + - + description: 'A person that has some whole-day responsibility on a day in the camp.' + name: DayResponsible + - + description: 'A person that is responsible for planning or carrying out an activity.' + name: ActivityResponsible + - + description: |- + A person using eCamp. + The properties available for all other eCamp users are here. + name: User + - + description: 'A physical item that is needed for carrying out a programme or camp.' + name: MaterialItem + - + description: |- + A piece of information that is part of a programme. ContentNodes may store content such as + one or multiple free text fields, or any other necessary data. Content nodes may also be used + to define layouts. For this purpose, a content node may offer so-called slots, into which other + content nodes may be inserted. In return, a content node may be nested inside a slot in a parent + container content node. This way, a tree of content nodes makes up a complete programme. + name: ContentNode + - + description: 'A piece of programme that will be carried out once or multiple times in a camp.' + name: Activity + - + description: |- + A time period in which the programme of a camp will take place. There may be multiple + periods in a camp, but they may not overlap. A period is made up of one or more full days. + name: Period + - + description: |- + A type of programme, such as sports activities or meal times, is called a category. A category + determines color and numbering scheme of the associated activities, and is used for marking + "similar" activities. A category may contain some skeleton programme which is used as a blueprint + when creating a new activity in the category. + name: Category + - + description: 'A user participating in some way in the planning or realization of a camp.' + name: CampCollaboration + - + description: |- + An invitation for a person to collaborate in a camp. The person may or may not + already have an account. + name: Invitation + - + description: 'An invitation for a person who already has an account to collaborate in a camp.' + name: PersonalInvitation + - + description: |- + Defines a type of content that can be present in a content node tree. A content type + determines what data can be stored in content nodes of this type, as well as validation, + available slots and jsonConfig settings. + name: ContentType + - + description: |- + Progress labels in a camp. + To each activity one label can be assigned. + name: ActivityProgressLabel + - + description: |- + The main entity that eCamp is designed to manage. Contains programme which may be + distributed across multiple time periods. + name: Camp + - + description: |- + The profile of a person using eCamp. + The properties available to related eCamp users are here. + Related means that they were or are collaborators in the same camp. + name: Profile + - + name: ChecklistNode + - + name: ColumnLayout + - + name: MaterialNode + - + name: MultiSelect + - + name: ResetPassword + - + name: ResponsiveLayout + - + name: SingleText + - + name: Storyboard + - + name: UserActivation webhooks: [] diff --git a/api/tests/Api/SnapshotTests/__snapshots__/test_EndpointPerformanceTest__testPerformanceDidNotChangeForStableEndpoints__1.yml b/api/tests/Api/SnapshotTests/__snapshots__/test_EndpointPerformanceTest__testPerformanceDidNotChangeForStableEndpoints__1.yml index 24e2ff6931..a36a795d0c 100644 --- a/api/tests/Api/SnapshotTests/__snapshots__/test_EndpointPerformanceTest__testPerformanceDidNotChangeForStableEndpoints__1.yml +++ b/api/tests/Api/SnapshotTests/__snapshots__/test_EndpointPerformanceTest__testPerformanceDidNotChangeForStableEndpoints__1.yml @@ -4,7 +4,7 @@ /activity_progress_labels/item: 7 /activity_responsibles: 6 /activity_responsibles/item: 8 -/camps: 20 +/camps: 15 /camps/item: 19 /camp_collaborations: 16 /camp_collaborations/item: 7 @@ -25,7 +25,7 @@ /material_lists: 6 /material_lists/item: 7 /periods: 6 -/periods/item: 15 +/periods/item: 12 /profiles: 6 /profiles/item: 6 /schedule_entries: 23 @@ -35,7 +35,7 @@ '/activity_progress_labels?camp=': 6 '/activity_responsibles?activity.camp=': 6 '/camp_collaborations?camp=': 10 -'/camp_collaborations?activityResponsibles.activity=': 12 +'/camp_collaborations?activityResponsibles.activity=': 9 '/categories?camp=': 9 '/content_types?categories=': 6 '/day_responsibles?day.period=': 6 diff --git a/api/tests/Serializer/Normalizer/UriTemplateNormalizerTest.php b/api/tests/Serializer/Normalizer/UriTemplateNormalizerTest.php index 71e4a61c28..b65177a8e2 100644 --- a/api/tests/Serializer/Normalizer/UriTemplateNormalizerTest.php +++ b/api/tests/Serializer/Normalizer/UriTemplateNormalizerTest.php @@ -2,9 +2,9 @@ namespace App\Tests\Serializer\Normalizer; -use ApiPlatform\Api\Entrypoint; -use ApiPlatform\Api\UrlGeneratorInterface; +use ApiPlatform\Documentation\Entrypoint; use ApiPlatform\Metadata\Resource\ResourceNameCollection; +use ApiPlatform\Metadata\UrlGeneratorInterface; use App\Entity\Activity; use App\Entity\Camp; use App\Metadata\Resource\Factory\UriTemplateFactory; diff --git a/api/tests/Serializer/PreventAutomaticEmbeddingPropertyMetadataFactoryTest.php b/api/tests/Serializer/PreventAutomaticEmbeddingPropertyMetadataFactoryTest.php index 9e1edee490..ae2b2bbe31 100644 --- a/api/tests/Serializer/PreventAutomaticEmbeddingPropertyMetadataFactoryTest.php +++ b/api/tests/Serializer/PreventAutomaticEmbeddingPropertyMetadataFactoryTest.php @@ -42,6 +42,9 @@ public function testCreateResetsReadableLinkAndWritableLinkToNull() { true, 'uriTemplate', 'property', + 'policy', + ['serialize'], + true, ['extraProperties'] ); $decorated->expects($this->once()) @@ -83,6 +86,9 @@ public function testCreateResetsReadableLinkAndWritableLinkToNull() { $this->assertEquals($apiProperty->getGenId(), $result->getGenId()); $this->assertEquals($apiProperty->getUriTemplate(), $result->getUriTemplate()); $this->assertEquals($apiProperty->getProperty(), $result->getProperty()); + $this->assertEquals($apiProperty->getPolicy(), $result->getPolicy()); + $this->assertEquals($apiProperty->getSerialize(), $result->getSerialize()); + $this->assertEquals($apiProperty->getHydra(), $result->getHydra()); $this->assertEquals($apiProperty->getExtraProperties(), $result->getExtraProperties()); } } diff --git a/api/tests/Serializer/SerializerContextBuilderTest.php b/api/tests/Serializer/SerializerContextBuilderTest.php index ff64107c84..5a09cb9048 100644 --- a/api/tests/Serializer/SerializerContextBuilderTest.php +++ b/api/tests/Serializer/SerializerContextBuilderTest.php @@ -2,7 +2,7 @@ namespace App\Tests\Serializer; -use ApiPlatform\Serializer\SerializerContextBuilderInterface; +use ApiPlatform\State\SerializerContextBuilderInterface; use App\Serializer\SerializerContextBuilder; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; diff --git a/docker-compose.yml b/docker-compose.yml index 54d3fc8041..518600d74e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -181,7 +181,7 @@ services: - FUNCTION_ENABLE_INCOGNITO_MODE=true e2e: - image: cypress/included:13.16.1@sha256:af5ec80651fdccf65fc928832a49c08933db187fb8cea5cac15cc412801c45cb + image: cypress/included:13.17.0@sha256:128490f34f1f2f7c0bab4dd1dbc4eaf0435ba99fe3e0f538d8ecb98b92e34d0f profiles: ['e2e'] container_name: 'ecamp3-e2e' environment: diff --git a/e2e/package-lock.json b/e2e/package-lock.json index 0608ab7c0d..4e869f3c67 100644 --- a/e2e/package-lock.json +++ b/e2e/package-lock.json @@ -10,7 +10,7 @@ "@eslint/compat": "1.2.8", "@eslint/eslintrc": "3.3.1", "@eslint/js": "9.24.0", - "cypress": "13.16.1", + "cypress": "13.17.0", "cypress-terminal-report": "7.1.0", "cypress-wait-until": "3.0.2", "eslint": "9.24.0", @@ -1373,9 +1373,9 @@ } }, "node_modules/cypress": { - "version": "13.16.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.16.1.tgz", - "integrity": "sha512-17FtCaz0cx7ssWYKXzGB0Vub8xHwpVPr+iPt2fHhLMDhVAPVrplD+rTQsZUsfb19LVBn5iwkEUFjQ1yVVJXsLA==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.17.0.tgz", + "integrity": "sha512-5xWkaPurwkIljojFidhw8lFScyxhtiFHl/i/3zov+1Z5CmY4t9tjIdvSXfu82Y3w7wt0uR9KkucbhkVvJZLQSA==", "dev": true, "hasInstallScript": true, "license": "MIT", diff --git a/e2e/package.json b/e2e/package.json index 1a86606337..9153a8f538 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -16,7 +16,7 @@ "@eslint/compat": "1.2.8", "@eslint/eslintrc": "3.3.1", "@eslint/js": "9.24.0", - "cypress": "13.16.1", + "cypress": "13.17.0", "cypress-terminal-report": "7.1.0", "cypress-wait-until": "3.0.2", "eslint": "9.24.0", diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 07777781ae..6b949ec8d1 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -33,6 +33,7 @@ "@tiptap/extension-underline": "2.11.7", "@tiptap/pm": "2.11.7", "@tiptap/vue-2": "2.11.7", + "@unhead/vue": "^1.11.20", "@zxcvbn-ts/core": "3.0.4", "@zxcvbn-ts/language-common": "3.0.4", "@zxcvbn-ts/language-de": "3.0.2", @@ -4063,6 +4064,63 @@ "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", "license": "MIT" }, + "node_modules/@unhead/dom": { + "version": "1.11.20", + "resolved": "https://registry.npmjs.org/@unhead/dom/-/dom-1.11.20.tgz", + "integrity": "sha512-jgfGYdOH+xHJF/j8gudjsYu3oIjFyXhCWcgKaw3vQnT616gSqyqnGQGOItL+BQtQZACKNISwIfx5PuOtztMKLA==", + "license": "MIT", + "dependencies": { + "@unhead/schema": "1.11.20", + "@unhead/shared": "1.11.20" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + } + }, + "node_modules/@unhead/schema": { + "version": "1.11.20", + "resolved": "https://registry.npmjs.org/@unhead/schema/-/schema-1.11.20.tgz", + "integrity": "sha512-0zWykKAaJdm+/Y7yi/Yds20PrUK7XabLe9c3IRcjnwYmSWY6z0Cr19VIs3ozCj8P+GhR+/TI2mwtGlueCEYouA==", + "license": "MIT", + "dependencies": { + "hookable": "^5.5.3", + "zhead": "^2.2.4" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + } + }, + "node_modules/@unhead/shared": { + "version": "1.11.20", + "resolved": "https://registry.npmjs.org/@unhead/shared/-/shared-1.11.20.tgz", + "integrity": "sha512-1MOrBkGgkUXS+sOKz/DBh4U20DNoITlJwpmvSInxEUNhghSNb56S0RnaHRq0iHkhrO/cDgz2zvfdlRpoPLGI3w==", + "license": "MIT", + "dependencies": { + "@unhead/schema": "1.11.20", + "packrup": "^0.1.2" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + } + }, + "node_modules/@unhead/vue": { + "version": "1.11.20", + "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-1.11.20.tgz", + "integrity": "sha512-sqQaLbwqY9TvLEGeq8Fd7+F2TIuV3nZ5ihVISHjWpAM3y7DwNWRU7NmT9+yYT+2/jw1Vjwdkv5/HvDnvCLrgmg==", + "license": "MIT", + "dependencies": { + "@unhead/schema": "1.11.20", + "@unhead/shared": "1.11.20", + "hookable": "^5.5.3", + "unhead": "1.11.20" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + }, + "peerDependencies": { + "vue": ">=2.7 || >=3" + } + }, "node_modules/@vitejs/plugin-vue2": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue2/-/plugin-vue2-2.3.3.tgz", @@ -7610,6 +7668,12 @@ "he": "bin/he" } }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "license": "MIT" + }, "node_modules/hsl-to-hex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/hsl-to-hex/-/hsl-to-hex-1.0.0.tgz", @@ -9520,6 +9584,15 @@ "dev": true, "license": "BlueOak-1.0.0" }, + "node_modules/packrup": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/packrup/-/packrup-0.1.2.tgz", + "integrity": "sha512-ZcKU7zrr5GlonoS9cxxrb5HVswGnyj6jQvwFBa6p5VFw7G71VAHcUKL5wyZSU/ECtPM/9gacWxy2KFQKt1gMNA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + } + }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -11472,6 +11545,21 @@ "node": ">=18.17" } }, + "node_modules/unhead": { + "version": "1.11.20", + "resolved": "https://registry.npmjs.org/unhead/-/unhead-1.11.20.tgz", + "integrity": "sha512-3AsNQC0pjwlLqEYHLjtichGWankK8yqmocReITecmpB1H0aOabeESueyy+8X1gyJx4ftZVwo9hqQ4O3fPWffCA==", + "license": "MIT", + "dependencies": { + "@unhead/dom": "1.11.20", + "@unhead/schema": "1.11.20", + "@unhead/shared": "1.11.20", + "hookable": "^5.5.3" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + } + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", @@ -12617,6 +12705,15 @@ "resolved": "https://registry.npmjs.org/yoga-layout/-/yoga-layout-2.0.1.tgz", "integrity": "sha512-tT/oChyDXelLo2A+UVnlW9GU7CsvFMaEnd9kVFsaiCQonFAXd3xrHhkLYu+suwwosrAEQ746xBU+HvYtm1Zs2Q==", "license": "MIT" + }, + "node_modules/zhead": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/zhead/-/zhead-2.2.4.tgz", + "integrity": "sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + } } } } diff --git a/frontend/package.json b/frontend/package.json index 74fbad6255..592c91e9bf 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -46,6 +46,7 @@ "@tiptap/extension-underline": "2.11.7", "@tiptap/pm": "2.11.7", "@tiptap/vue-2": "2.11.7", + "@unhead/vue": "1.11.20", "@zxcvbn-ts/core": "3.0.4", "@zxcvbn-ts/language-common": "3.0.4", "@zxcvbn-ts/language-de": "3.0.2", diff --git a/frontend/src/components/activity/ScheduleEntry.vue b/frontend/src/components/activity/ScheduleEntry.vue index d34e66ea5a..4f58836003 100644 --- a/frontend/src/components/activity/ScheduleEntry.vue +++ b/frontend/src/components/activity/ScheduleEntry.vue @@ -360,6 +360,15 @@ export default { loading: true, } }, + head() { + return { + title: () => + `${this.scheduleEntry.number ? this.scheduleEntry.number + ' ' : ''}[${this.category.short}]: ${this.activity.title}`, + templateParams: { + section: this.camp.shortTitle, + }, + } + }, computed: { activity() { return this.api.get().activities({ id: this.activityId }) diff --git a/frontend/src/main.js b/frontend/src/main.js index e77d73f82c..5714f00f51 100644 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -4,6 +4,8 @@ import router from '@/router.js' import { vuetifyLoader, auth, + head, + unhead, storeLoader, formBaseComponents, ignoreNativeBindingWarnMessages, @@ -36,6 +38,7 @@ if (env && env.SENTRY_FRONTEND_DSN) { } Vue.use(auth) +Vue.use(head) Vue.use(formBaseComponents) Vue.use(ignoreNativeBindingWarnMessages) Vue.use(storeLoader) @@ -57,5 +60,6 @@ new Vue({ store, vuetify, i18n, + unhead, render: (h) => h(App), }).$mount('#app') diff --git a/frontend/src/plugins/head.js b/frontend/src/plugins/head.js new file mode 100644 index 0000000000..7f80df1abe --- /dev/null +++ b/frontend/src/plugins/head.js @@ -0,0 +1,23 @@ +import { createHead, useHead } from '@unhead/vue' +export { UnheadPlugin as head } from '@unhead/vue/vue2' +import { getEnv } from '@/environment.js' + +const env = getEnv().SENTRY_ENVIRONMENT.split('.')[0] +const environment = + env === 'app' || env === '' + ? null + : env.match('^pr[0-9]+') + ? `[${env.toUpperCase()}]` + : `[${env.substring(0, 1).toUpperCase() + env.substring(1)}]` + +export const unhead = createHead() + +useHead({ + templateParams: { + site: 'eCamp v3', + separator: '·', + environment, + section: null, + }, + titleTemplate: '%environment %s %separator %section %separator %site', +}) diff --git a/frontend/src/plugins/index.js b/frontend/src/plugins/index.js index b7cd7383ee..69e6fe5b20 100644 --- a/frontend/src/plugins/index.js +++ b/frontend/src/plugins/index.js @@ -7,3 +7,4 @@ export { default as i18n } from './i18n' export { default as veeValidate } from './veeValidate' export { default as dayjs } from './dayjs' export { default as color } from './color' +export { head, unhead } from './head' diff --git a/frontend/src/views/CampCreate.vue b/frontend/src/views/CampCreate.vue index 3dbf86680c..c4a0cab638 100644 --- a/frontend/src/views/CampCreate.vue +++ b/frontend/src/views/CampCreate.vue @@ -16,5 +16,10 @@ export default { CampCreate, ContentCard, }, + head() { + return { + title: this.$tc('views.campCreate.title'), + } + }, } diff --git a/frontend/src/views/Camps.vue b/frontend/src/views/Camps.vue index e8a86d9ae3..3c42e7fa23 100644 --- a/frontend/src/views/Camps.vue +++ b/frontend/src/views/Camps.vue @@ -97,6 +97,11 @@ export default { isAdmin: false, } }, + head() { + return { + title: this.$tc('views.camps.title'), + } + }, computed: { camps() { return this.api.get().camps() diff --git a/frontend/src/views/Invitations.vue b/frontend/src/views/Invitations.vue index b0a234afbc..0fa795a5c5 100644 --- a/frontend/src/views/Invitations.vue +++ b/frontend/src/views/Invitations.vue @@ -32,6 +32,11 @@ export default { UserMeta, ContentCard, }, + head() { + return { + title: this.$tc('views.invitations.personalInvitations'), + } + }, computed: { loading() { return this.api.get().personalInvitations().loading diff --git a/frontend/src/views/PageNotFound.vue b/frontend/src/views/PageNotFound.vue index 198897f44f..021a19ebae 100644 --- a/frontend/src/views/PageNotFound.vue +++ b/frontend/src/views/PageNotFound.vue @@ -42,6 +42,11 @@ export default { hasHistory: false, } }, + head() { + return { + title: '404', + } + }, mounted() { if (window.history.length && window.history.length >= 1) { this.hasHistory = true diff --git a/frontend/src/views/Profile.vue b/frontend/src/views/Profile.vue index d2389d1dc8..beabc2683e 100644 --- a/frontend/src/views/Profile.vue +++ b/frontend/src/views/Profile.vue @@ -96,6 +96,11 @@ export default { props: { emailVerificationKey: { type: String, required: false, default: null }, }, + head() { + return { + title: this.$tc('views.profile.profile'), + } + }, computed: { ...mapGetters({ user: 'getLoggedInUser', diff --git a/frontend/src/views/camp/CampProgram.vue b/frontend/src/views/camp/CampProgram.vue index 770c4ea76b..10f9fa2efd 100644 --- a/frontend/src/views/camp/CampProgram.vue +++ b/frontend/src/views/camp/CampProgram.vue @@ -184,6 +184,15 @@ export default { }, } }, + head() { + return { + title: () => + this.$tc('views.camp.campProgram.title') + ': ' + this.period.description, + templateParams: { + section: this.camp.shortTitle, + }, + } + }, computed: { camp() { return this.period.camp() diff --git a/frontend/src/views/camp/Dashboard.vue b/frontend/src/views/camp/Dashboard.vue index f44332a0b5..f30d61e1b0 100644 --- a/frontend/src/views/camp/Dashboard.vue +++ b/frontend/src/views/camp/Dashboard.vue @@ -182,6 +182,14 @@ export default { }, } }, + head() { + return { + title: this.$tc('views.camp.dashboard.activities'), + templateParams: { + section: this.camp.shortTitle, + }, + } + }, computed: { periods() { return keyBy(this.camp.periods().items, '_meta.self') diff --git a/frontend/src/views/camp/Invitation.vue b/frontend/src/views/camp/Invitation.vue index 7f6c4e63d2..c43ce6e9cb 100644 --- a/frontend/src/views/camp/Invitation.vue +++ b/frontend/src/views/camp/Invitation.vue @@ -117,6 +117,12 @@ export default { data: () => ({ invitationFound: undefined, }), + head() { + return { + title: this.$tc('views.camp.invitation.title'), + templateParams: { section: () => this.invite?.campTitle ?? null }, + } + }, computed: { invite() { return this.invitationFound === true ? this.invitation : null diff --git a/frontend/src/views/camp/Story.vue b/frontend/src/views/camp/Story.vue index 80cf07862e..1b99f6e778 100644 --- a/frontend/src/views/camp/Story.vue +++ b/frontend/src/views/camp/Story.vue @@ -56,6 +56,14 @@ export default { period: { type: Object, required: true }, camp: { type: Object, required: true }, }, + head() { + return { + title: this.$tc('views.camp.story.title'), + templateParams: { + section: this.camp.shortTitle, + }, + } + }, computed: { printConfig() { return { diff --git a/frontend/src/views/camp/admin/Activity.vue b/frontend/src/views/camp/admin/Activity.vue index 69787d5f1f..d8df376227 100644 --- a/frontend/src/views/camp/admin/Activity.vue +++ b/frontend/src/views/camp/admin/Activity.vue @@ -30,5 +30,13 @@ export default { props: { camp: { type: Object, required: true }, }, + head() { + return { + title: this.$tc('views.camp.admin.activity.title'), + templateParams: { + section: this.camp.shortTitle, + }, + } + }, } diff --git a/frontend/src/views/camp/admin/AdminMaterialLists.vue b/frontend/src/views/camp/admin/AdminMaterialLists.vue index 3bee9b7a2d..428d440f7b 100644 --- a/frontend/src/views/camp/admin/AdminMaterialLists.vue +++ b/frontend/src/views/camp/admin/AdminMaterialLists.vue @@ -40,6 +40,14 @@ export default { props: { camp: { type: Object, required: true }, }, + head() { + return { + title: this.$tc('views.camp.admin.adminMaterialLists.title'), + templateParams: { + section: this.camp.shortTitle, + }, + } + }, computed: { materialLists() { return this.camp.materialLists() diff --git a/frontend/src/views/camp/admin/Checklists.vue b/frontend/src/views/camp/admin/Checklists.vue index f232209e80..73a22a449e 100644 --- a/frontend/src/views/camp/admin/Checklists.vue +++ b/frontend/src/views/camp/admin/Checklists.vue @@ -13,6 +13,14 @@ export default { props: { camp: { type: Object, required: true }, }, + head() { + return { + title: this.$tc('entity.checklist.name', 2), + templateParams: { + section: this.camp.shortTitle, + }, + } + }, computed: { checklistCollection() { return this.camp.checklists() diff --git a/frontend/src/views/camp/admin/Collaborators.vue b/frontend/src/views/camp/admin/Collaborators.vue index 71e0cf2f08..fd685cdc66 100644 --- a/frontend/src/views/camp/admin/Collaborators.vue +++ b/frontend/src/views/camp/admin/Collaborators.vue @@ -46,6 +46,14 @@ export default { props: { camp: { type: Object, required: true }, }, + head() { + return { + title: this.$tc('views.camp.admin.collaborators.title'), + templateParams: { + section: this.camp.shortTitle, + }, + } + }, computed: { collaborators() { return this.camp.campCollaborations().items diff --git a/frontend/src/views/camp/admin/Info.vue b/frontend/src/views/camp/admin/Info.vue index bc6d86feca..57b3a6dcec 100644 --- a/frontend/src/views/camp/admin/Info.vue +++ b/frontend/src/views/camp/admin/Info.vue @@ -48,6 +48,14 @@ export default { data: () => ({ openPanels: [], }), + head() { + return { + title: this.$tc('views.camp.admin.info.title'), + templateParams: { + section: this.camp.shortTitle, + }, + } + }, mounted() { this.camp._meta.load.then((camp) => { if ( diff --git a/frontend/src/views/camp/admin/Print.vue b/frontend/src/views/camp/admin/Print.vue index 810b60cc42..6017da3e52 100644 --- a/frontend/src/views/camp/admin/Print.vue +++ b/frontend/src/views/camp/admin/Print.vue @@ -30,6 +30,14 @@ export default { data() { return {} }, + head() { + return { + title: this.$tc('views.camp.admin.print.title'), + templateParams: { + section: this.camp.shortTitle, + }, + } + }, } diff --git a/frontend/src/views/camp/category/Category.vue b/frontend/src/views/camp/category/Category.vue index 966b420f1e..4093aae602 100644 --- a/frontend/src/views/camp/category/Category.vue +++ b/frontend/src/views/camp/category/Category.vue @@ -147,6 +147,14 @@ export default { openPanels: [0, 1], } }, + head() { + return { + title: () => this.category.short + ': ' + this.category.title, + templateParams: { + section: this.camp.shortTitle, + }, + } + }, computed: { contentNodes() { return this.category.contentNodes() diff --git a/frontend/src/views/camp/checklistOverview/ChecklistLists.vue b/frontend/src/views/camp/checklistOverview/ChecklistLists.vue index 13b6068abd..e556598754 100644 --- a/frontend/src/views/camp/checklistOverview/ChecklistLists.vue +++ b/frontend/src/views/camp/checklistOverview/ChecklistLists.vue @@ -31,6 +31,14 @@ export default { props: { camp: { type: Object, required: true }, }, + head() { + return { + title: this.$tc('views.camp.checklistOverview.checklistLists.title'), + templateParams: { + section: this.camp.shortTitle, + }, + } + }, computed: { checklists() { return this.camp.checklists() diff --git a/frontend/src/views/camp/checklistOverview/ChecklistOverview.vue b/frontend/src/views/camp/checklistOverview/ChecklistOverview.vue index c131a6a699..222018dcc9 100644 --- a/frontend/src/views/camp/checklistOverview/ChecklistOverview.vue +++ b/frontend/src/views/camp/checklistOverview/ChecklistOverview.vue @@ -46,6 +46,14 @@ export default { indexedChecklistItems: {}, } }, + head() { + return { + title: () => this.checklist.name, + templateParams: { + section: this.camp.shortTitle, + }, + } + }, watch: { checklist: { handler(newVal, oldVal) { diff --git a/frontend/src/views/camp/material/MaterialDetail.vue b/frontend/src/views/camp/material/MaterialDetail.vue index 060167a470..1f419abac7 100644 --- a/frontend/src/views/camp/material/MaterialDetail.vue +++ b/frontend/src/views/camp/material/MaterialDetail.vue @@ -87,5 +87,13 @@ export default { setup(props) { return useMaterialViewHelper(props.camp, true) }, + head() { + return { + title: () => this.materialList.name, + templateParams: { + section: this.camp.shortTitle, + }, + } + }, } diff --git a/frontend/src/views/camp/material/MaterialOverview.vue b/frontend/src/views/camp/material/MaterialOverview.vue index eaf7324f01..283a85f340 100644 --- a/frontend/src/views/camp/material/MaterialOverview.vue +++ b/frontend/src/views/camp/material/MaterialOverview.vue @@ -83,5 +83,13 @@ export default { setup(props) { return useMaterialViewHelper(props.camp) }, + head() { + return { + title: this.$tc('views.camp.material.materialOverview.title'), + templateParams: { + section: this.camp.shortTitle, + }, + } + }, } diff --git a/renovate.json b/renovate.json index 6d6f7b1931..4d64f63c47 100644 --- a/renovate.json +++ b/renovate.json @@ -6,7 +6,7 @@ ], "constraints": { "node": "22.14.0", - "php": "8.3.13" + "php": "8.4.6" }, "automergeType": "branch", "rebaseWhen": "conflicted",