From 385eb335d4c7cfd1b0d1723dade066a0b2b2f18e Mon Sep 17 00:00:00 2001 From: Art4 Date: Wed, 5 Dec 2018 14:30:35 +0100 Subject: [PATCH 01/12] bump version --- apiary.apib | 156 +++++++++--------- docs/pages/api/api_endpoint_comments.md | 4 +- docs/pages/api/api_endpoint_events.md | 8 +- docs/pages/api/api_endpoint_friends.md | 4 +- docs/pages/api/api_endpoint_me.md | 2 +- .../pages/api/api_endpoint_object_comments.md | 4 +- docs/pages/api/api_endpoint_object_friends.md | 4 +- docs/pages/api/api_endpoint_object_posts.md | 8 +- docs/pages/api/api_endpoint_posts.md | 4 +- docs/pages/api/api_endpoint_stats.md | 16 +- docs/pages/api/api_endpoint_users.md | 4 +- docs/pages/api/api_general_versions.md | 1 + errors.apib | 72 ++++---- features/core/errors.feature | 32 ++-- features/core/events.feature | 4 +- features/core/friends.feature | 4 +- features/core/objects_comments.feature | 2 +- features/core/objects_posts.feature | 8 +- features/core/posts.feature | 16 +- package-lock.json | 2 +- package.json | 2 +- src/Core/FeatureContext.php | 2 +- 22 files changed, 180 insertions(+), 179 deletions(-) diff --git a/apiary.apib b/apiary.apib index b953752..c14119e 100644 --- a/apiary.apib +++ b/apiary.apib @@ -5,7 +5,7 @@ HOST: https://api.youthweb.net Dies ist die offizielle API von [youthweb.net](https://youthweb.net). -Aktuelle Version: 0.13 (2018-12-16) +Aktuelle Version: 0.14 (XXXX-XX-XX) Status: Alpha @@ -17,7 +17,7 @@ Diese Header müssen bei jedem Request angegeben werden: ``` Content-Type: application/vnd.api+json -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 ``` ## Authentication @@ -43,14 +43,14 @@ Ein Comment Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -70,14 +70,14 @@ Ein Comment Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -94,14 +94,14 @@ Ein Comment Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -121,14 +121,14 @@ Ein Comment Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -145,14 +145,14 @@ Ein Comment Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -175,14 +175,14 @@ Ein Comment Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -207,14 +207,14 @@ Ein Event Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -228,13 +228,13 @@ Ein Event Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Response 401 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes (Unauthorized Error) @@ -249,14 +249,14 @@ Ein Event Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -273,14 +273,14 @@ Ein Event Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -302,14 +302,14 @@ Ein Event Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -323,13 +323,13 @@ Ein Event Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Response 401 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes (Unauthorized Error) @@ -344,14 +344,14 @@ Ein Event Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -368,14 +368,14 @@ Ein Event Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -395,14 +395,14 @@ Ein Event Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -419,14 +419,14 @@ Ein Event Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -454,14 +454,14 @@ Ein Post Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -475,13 +475,13 @@ Ein Post Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Response 403 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes (Forbidden Error) @@ -491,13 +491,13 @@ Ein Post Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Response 404 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes (Not Found Error) @@ -512,14 +512,14 @@ Ein Post Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -536,14 +536,14 @@ Ein Post Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -563,14 +563,14 @@ Ein Post Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -591,14 +591,14 @@ Ein Post Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -619,14 +619,14 @@ Ein Post Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -643,14 +643,14 @@ Ein Post Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -673,13 +673,13 @@ Liefert Statistiken zu den Accounts. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -708,13 +708,13 @@ Liefert Statistiken zum Forum + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -738,13 +738,13 @@ Liefert Statistiken zu den Gruppen. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -777,14 +777,14 @@ Ein User Objekt hat die folgenden Attribute + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -803,14 +803,14 @@ Liefert die Posts von der Pinnwand eines Users + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -824,7 +824,7 @@ Liefert die Posts von der Pinnwand eines Users + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Attributes @@ -835,7 +835,7 @@ Liefert die Posts von der Pinnwand eines Users + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Location: /posts/d5a5a2c3-041b-4985-907c-74a2131efc98 + Attributes @@ -850,7 +850,7 @@ Liefert die Posts von der Pinnwand eines Users + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -860,7 +860,7 @@ Liefert die Posts von der Pinnwand eines Users + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes (Not Found Error) @@ -870,7 +870,7 @@ Liefert die Posts von der Pinnwand eines Users + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -880,7 +880,7 @@ Liefert die Posts von der Pinnwand eines Users + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes (Forbidden Error) @@ -890,7 +890,7 @@ Liefert die Posts von der Pinnwand eines Users + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -906,7 +906,7 @@ Liefert die Posts von der Pinnwand eines Users + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Body @@ -918,7 +918,7 @@ Liefert die Posts von der Pinnwand eines Users + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -933,7 +933,7 @@ Liefert die Posts von der Pinnwand eines Users + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Body @@ -952,14 +952,14 @@ Liefert die Posts Relationships von der Pinnwand eines Users + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -981,14 +981,14 @@ Liefert die Freunde eines Users + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -1006,14 +1006,14 @@ Fragt die Userdaten des autorisierten Users ab. Dies ist ein Shortcut für /user + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Authorization: Bearer valid_JWT + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes diff --git a/docs/pages/api/api_endpoint_comments.md b/docs/pages/api/api_endpoint_comments.md index 32d38ee..91c57c6 100644 --- a/docs/pages/api/api_endpoint_comments.md +++ b/docs/pages/api/api_endpoint_comments.md @@ -18,7 +18,7 @@ Dieser Endpoint kann zum Lesen eines Comments verwendet werden. ``` GET https://api.youthweb.net/comments/345678 -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs ``` @@ -35,7 +35,7 @@ Für den Request können keine Parameter angegeben werden. ``` Status: 200 OK -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json { diff --git a/docs/pages/api/api_endpoint_events.md b/docs/pages/api/api_endpoint_events.md index 4ea24ed..b6c6ea4 100644 --- a/docs/pages/api/api_endpoint_events.md +++ b/docs/pages/api/api_endpoint_events.md @@ -20,7 +20,7 @@ Beim Request nach den Events eines Zeitraums wird ein Array der Events zurückge ``` GET https://api.youthweb.net/events?page[start]=2017-01-01&page[end]=2017-12-31 -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs ``` @@ -38,7 +38,7 @@ Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2M ``` Status: 200 OK -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json { @@ -89,7 +89,7 @@ Beim Request nach einem bestimmten Event wird eine Event Resource zurückgeliefe ``` GET https://api.youthweb.net/events/4567 -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs ``` @@ -106,7 +106,7 @@ Für den Request können keine Parameter angegeben werden. ``` Status: 200 OK -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json { diff --git a/docs/pages/api/api_endpoint_friends.md b/docs/pages/api/api_endpoint_friends.md index fbb6a61..2fc2b8a 100644 --- a/docs/pages/api/api_endpoint_friends.md +++ b/docs/pages/api/api_endpoint_friends.md @@ -26,7 +26,7 @@ Die Kante `Friend 1` beinhaltet in der `from`-Relationship den `User A` und in d ``` GET https://api.youthweb.net/friends/45678 -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs ``` @@ -43,7 +43,7 @@ Für den Request können keine Parameter angegeben werden. ``` Status: 200 OK -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json { diff --git a/docs/pages/api/api_endpoint_me.md b/docs/pages/api/api_endpoint_me.md index bc1d2e4..ad02a2b 100644 --- a/docs/pages/api/api_endpoint_me.md +++ b/docs/pages/api/api_endpoint_me.md @@ -18,7 +18,7 @@ Siehe den [Endpoint `/users`][api_endpoint_users] für Informationen zur User-Re ``` GET https://api.youthweb.net/me -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs ``` diff --git a/docs/pages/api/api_endpoint_object_comments.md b/docs/pages/api/api_endpoint_object_comments.md index d554314..5efe4d1 100644 --- a/docs/pages/api/api_endpoint_object_comments.md +++ b/docs/pages/api/api_endpoint_object_comments.md @@ -22,7 +22,7 @@ Beim Request nach allen Comments einer Resource wird ein Array der Comments zur ``` GET https://api.youthweb.net/posts/d5a5a2c3-041b-4985-907c-74a2131efc98/comments -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs ``` @@ -40,7 +40,7 @@ Für den Request können keine Parameter angegeben werden. ``` Status: 200 OK -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json { diff --git a/docs/pages/api/api_endpoint_object_friends.md b/docs/pages/api/api_endpoint_object_friends.md index 688ee20..24564ec 100644 --- a/docs/pages/api/api_endpoint_object_friends.md +++ b/docs/pages/api/api_endpoint_object_friends.md @@ -32,7 +32,7 @@ Beim Request nach allen Freunden einer Resource wird ein Array der `Friends` zur ``` GET https://api.youthweb.net/users/1/friends -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs ``` @@ -49,7 +49,7 @@ Für den Request können keine Parameter angegeben werden. ``` Status: 200 OK -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json { diff --git a/docs/pages/api/api_endpoint_object_posts.md b/docs/pages/api/api_endpoint_object_posts.md index 6df77e6..006d552 100644 --- a/docs/pages/api/api_endpoint_object_posts.md +++ b/docs/pages/api/api_endpoint_object_posts.md @@ -22,7 +22,7 @@ Beim Request nach allen Posts einer Resource wird ein Array der Posts zurückgel ``` GET https://api.youthweb.net/users/123456/posts -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs ``` @@ -40,7 +40,7 @@ Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2M ``` Status: 200 OK -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json { @@ -148,7 +148,7 @@ Du kannst mit diesem Endpoint einen neuen Post zu einer Resource erstellen. Als ``` POST https://api.youthweb.net/users/123456/posts -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs @@ -190,7 +190,7 @@ Für den Request können keine Parameter angegeben werden. ``` Status: 201 Created -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json Location: /posts/d5a5a2c3-041b-4985-907c-74a2131efc98 diff --git a/docs/pages/api/api_endpoint_posts.md b/docs/pages/api/api_endpoint_posts.md index 18d7c29..7139bf8 100644 --- a/docs/pages/api/api_endpoint_posts.md +++ b/docs/pages/api/api_endpoint_posts.md @@ -18,7 +18,7 @@ Dieser Endpoint kann zum Lesen oder Erstellen eines Posts verwendet werden. ``` GET https://api.youthweb.net/posts/d5a5a2c3-041b-4985-907c-74a2131efc98 -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs ``` @@ -35,7 +35,7 @@ Für den Request können keine Parameter angegeben werden. ``` Status: 200 OK -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json { diff --git a/docs/pages/api/api_endpoint_stats.md b/docs/pages/api/api_endpoint_stats.md index e88bf33..65800da 100644 --- a/docs/pages/api/api_endpoint_stats.md +++ b/docs/pages/api/api_endpoint_stats.md @@ -16,7 +16,7 @@ Dieser Endpoint liefert Statistiken zu Usern, Gruppen und Forum. ``` GET https://api.youthweb.net/stats/account -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json ``` @@ -32,7 +32,7 @@ Für den Request können keine Parameter angegeben werden. ``` Status: 200 OK -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json { @@ -84,7 +84,7 @@ keine ``` GET https://api.youthweb.net/stats/account -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json ``` @@ -92,7 +92,7 @@ Content-Type: application/vnd.api+json ``` Status: 200 OK -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json { @@ -122,7 +122,7 @@ Content-Type: application/vnd.api+json ``` GET https://api.youthweb.net/stats/forum -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json ``` @@ -130,7 +130,7 @@ Content-Type: application/vnd.api+json ``` Status: 200 OK -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json { @@ -155,7 +155,7 @@ Content-Type: application/vnd.api+json ``` GET https://api.youthweb.net/stats/groups -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json ``` @@ -163,7 +163,7 @@ Content-Type: application/vnd.api+json ``` Status: 200 OK -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json { diff --git a/docs/pages/api/api_endpoint_users.md b/docs/pages/api/api_endpoint_users.md index 5330c32..8d86675 100644 --- a/docs/pages/api/api_endpoint_users.md +++ b/docs/pages/api/api_endpoint_users.md @@ -18,7 +18,7 @@ Dieser Endpoint liefert Daten zu einem User. ``` GET https://api.youthweb.net/users/123456 -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs ``` @@ -38,7 +38,7 @@ Für den Request können keine Parameter angegeben werden. ``` Status: 200 OK -Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 Content-Type: application/vnd.api+json { diff --git a/docs/pages/api/api_general_versions.md b/docs/pages/api/api_general_versions.md index 7611191..0d3e456 100644 --- a/docs/pages/api/api_general_versions.md +++ b/docs/pages/api/api_general_versions.md @@ -22,6 +22,7 @@ Nach dem Release einer neuen Version garantieren wir den Support der Version ohn | Version | Status | Veröffentlicht | Unterstützt bis | |--------------|--------------------|----------------|---------------------------| +| **0.14** | :heavy_check_mark: | XXXX-XX-XX | mindestens XXXX-XX-XX | | **0.13** | :heavy_check_mark: | 2018-12-16 | mindestens 2019-12-16 | | **0.12** | :warning: | 2017-07-16 | mindestens 2018-07-16 | | **0.11** | :warning: | 2017-07-02 | mindestens 2018-07-02 | diff --git a/errors.apib b/errors.apib index 5a080c9..c4dc6ea 100644 --- a/errors.apib +++ b/errors.apib @@ -14,13 +14,13 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Response 404 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes (Not Found Error) @@ -31,7 +31,7 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -47,7 +47,7 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Body @@ -60,13 +60,13 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Response 415 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Body @@ -77,13 +77,13 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Response 415 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Body @@ -100,11 +100,11 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Body - {"errors":[{"status":"406","title":"Not Acceptable","detail":"You havn't specified the API version in the Accept Header. You have to use Accept application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13"}]} + {"errors":[{"status":"406","title":"Not Acceptable","detail":"You havn't specified the API version in the Accept Header. You have to use Accept application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14"}]} ### Retrieve the account stats without accept header [GET] + Request (application/vnd.api+json) @@ -113,11 +113,11 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Body - {"errors":[{"status":"406","title":"Not Acceptable","detail":"You havn't specified the API version in the Accept Header. You have to use Accept application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13"}]} + {"errors":[{"status":"406","title":"Not Acceptable","detail":"You havn't specified the API version in the Accept Header. You have to use Accept application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14"}]} ## Forum Stats [/stats/forum] @@ -132,11 +132,11 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Body - {"data":null,"meta":{"warnings":["You have specified a deprecated API version. Please use the current API version 0.13"]}} + {"data":null,"meta":{"warnings":["You have specified a deprecated API version. Please use the current API version 0.14"]}} ## Group Stats [/stats/group] @@ -151,11 +151,11 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Body - {"errors":[{"status":"406","title":"Not Acceptable","detail":"You have specified an unsupported API version. Please use the current API version 0.13"}]} + {"errors":[{"status":"406","title":"Not Acceptable","detail":"You have specified an unsupported API version. Please use the current API version 0.14"}]} # Group Users @@ -166,13 +166,13 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Response 401 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes (Unauthorized Error) @@ -185,13 +185,13 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Response 403 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes (Forbidden Error) @@ -202,13 +202,13 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Response 404 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes (Not Found Error) @@ -219,7 +219,7 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -229,7 +229,7 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes (Not Found Error) @@ -240,7 +240,7 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -250,7 +250,7 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes (Forbidden Error) @@ -261,7 +261,7 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -277,7 +277,7 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Body @@ -288,7 +288,7 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes @@ -303,7 +303,7 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Body @@ -316,13 +316,13 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Response 404 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes (Not Found Error) @@ -335,13 +335,13 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Response 404 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes (Not Found Error) @@ -354,13 +354,13 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Response 404 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes (Not Found Error) diff --git a/features/core/errors.feature b/features/core/errors.feature index b20c2cf..d0cbdb9 100644 --- a/features/core/errors.feature +++ b/features/core/errors.feature @@ -5,7 +5,7 @@ Feature: Error Tests Scenario: Calling the BaseUrl Given I have set the "Content-Type" header with "application/vnd.api+json" And I have set the "Accept" header with "application/vnd.api+json" - And I have set the "Accept" header with "application/vnd.api+json; net.youthweb.api.version=0.13" + And I have set the "Accept" header with "application/vnd.api+json; net.youthweb.api.version=0.14" When I request "GET /" Then I get a "404" response And the Content-Type Header "application/vnd.api+json" exists @@ -24,7 +24,7 @@ Scenario: Sending a request with invalid JSON API When I request "POST /users/187654/posts" Then I get a "400" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -37,11 +37,11 @@ Scenario: Sending a request with invalid JSON API Scenario: Using the API without Content-Type Json API Header Given I have set the "Accept" header with "application/vnd.api+json" - And I have set the "Accept" header with "application/vnd.api+json; net.youthweb.api.version=0.13" + And I have set the "Accept" header with "application/vnd.api+json; net.youthweb.api.version=0.14" When I request "GET /posts/header-errors" Then I get a "415" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -54,12 +54,12 @@ Scenario: Using the API without Content-Type Json API Header Scenario: Using the API with Content-Type Json API Header and parameter Given I have set the "Accept" header with "application/vnd.api+json" - And I have set the "Accept" header with "application/vnd.api+json; net.youthweb.api.version=0.13" + And I have set the "Accept" header with "application/vnd.api+json; net.youthweb.api.version=0.14" And I have set the "Content-Type" header with "application/vnd.api+json; parameter=value" When I request "GET /posts/header-errors" Then I get a "415" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -75,7 +75,7 @@ Scenario: Using the API without Accept Header When I request "GET /posts/header-errors" Then I get a "406" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -84,7 +84,7 @@ Scenario: Using the API without Accept Header And the "title" property exists And the "title" property is a string equalling "Not Acceptable" And the "detail" property exists - And the "detail" property is a string equalling "You havn't specified the API version in the Accept Header. You have to use Accept application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13" + And the "detail" property is a string equalling "You havn't specified the API version in the Accept Header. You have to use Accept application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14" Scenario: Using the API with Accept Header without version parameter Given I have set the "Content-Type" header with "application/vnd.api+json" @@ -92,7 +92,7 @@ Scenario: Using the API with Accept Header without version parameter When I request "GET /posts/header-errors" Then I get a "406" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -101,7 +101,7 @@ Scenario: Using the API with Accept Header without version parameter And the "title" property exists And the "title" property is a string equalling "Not Acceptable" And the "detail" property exists - And the "detail" property is a string equalling "You havn't specified the API version in the Accept Header. You have to use Accept application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13" + And the "detail" property is a string equalling "You havn't specified the API version in the Accept Header. You have to use Accept application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14" Scenario: Using the API with deprecated version parameter Given I have set the "Content-Type" header with "application/vnd.api+json" @@ -110,7 +110,7 @@ Scenario: Using the API with deprecated version parameter When I request "GET /stats/forum" Then I get a "200" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "meta" property exists And the "meta" property is an object And scope into the "meta" property @@ -119,7 +119,7 @@ Scenario: Using the API with deprecated version parameter And the "warnings" property contains 1 items And the "warnings" property contains at least: """ - You have specified a deprecated API version. Please use the current API version 0.13 + You have specified a deprecated API version. Please use the current API version 0.14 """ Scenario: Using the API with unsupported version parameter @@ -130,7 +130,7 @@ Scenario: Using the API with unsupported version parameter Then I get a "406" response And the Content-Type Header "application/vnd.api+json" exists And the Accept Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -139,17 +139,17 @@ Scenario: Using the API with unsupported version parameter And the "title" property exists And the "title" property is a string equalling "Not Acceptable" And the "detail" property exists - And the "detail" property is a string equalling "You have specified an unsupported API version. Please use the current API version 0.13" + And the "detail" property is a string equalling "You have specified an unsupported API version. Please use the current API version 0.14" Scenario: Request the /me resource without a Bearer token Given I have set the "Content-Type" header with "application/vnd.api+json" And I have set the "Accept" header with "application/vnd.api+json" - And I have set the "Accept" header with "application/vnd.api+json; net.youthweb.api.version=0.13" + And I have set the "Accept" header with "application/vnd.api+json; net.youthweb.api.version=0.14" When I request "GET /me" Then I get a "401" response And the Content-Type Header "application/vnd.api+json" exists And the Accept Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property diff --git a/features/core/events.feature b/features/core/events.feature index 1cf8059..3b5e901 100644 --- a/features/core/events.feature +++ b/features/core/events.feature @@ -69,7 +69,7 @@ Scenario: Requesting an event without authorization When I request "GET /events/4567" Then I get a "401" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -83,7 +83,7 @@ Scenario: Requesting a not existing event When I request "GET /events/404" Then I get a "404" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property diff --git a/features/core/friends.feature b/features/core/friends.feature index 386ae07..4cc9578 100644 --- a/features/core/friends.feature +++ b/features/core/friends.feature @@ -42,7 +42,7 @@ Scenario: Requesting a friend without authorization When I request "GET /friends/45678" Then I get a "401" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -56,7 +56,7 @@ Scenario: Requesting a not existing friend When I request "GET /friends/404" Then I get a "404" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property diff --git a/features/core/objects_comments.feature b/features/core/objects_comments.feature index 18078fd..7d1cb6e 100644 --- a/features/core/objects_comments.feature +++ b/features/core/objects_comments.feature @@ -39,7 +39,7 @@ Scenario: Requesting comments from a not existing post When I request "GET /posts/45a5a2c3-041b-4985-907c-74a2131efc98/comments" Then I get a "404" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property diff --git a/features/core/objects_posts.feature b/features/core/objects_posts.feature index bafb36c..7bd44cb 100644 --- a/features/core/objects_posts.feature +++ b/features/core/objects_posts.feature @@ -84,7 +84,7 @@ Scenario: Create a post on an not existing user When I request "POST /users/987654/posts" Then I get a "404" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -102,7 +102,7 @@ Scenario: Create a post without permission When I request "POST /users/487654/posts" Then I get a "403" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -120,7 +120,7 @@ Scenario: Create a post with empty content When I request "POST /users/287654/posts" Then I get a "400" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -140,7 +140,7 @@ Scenario: Create a post with missing content When I request "POST /users/287654/posts" Then I get a "400" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property diff --git a/features/core/posts.feature b/features/core/posts.feature index 7ea9d45..4316cd6 100644 --- a/features/core/posts.feature +++ b/features/core/posts.feature @@ -49,7 +49,7 @@ Scenario: Requesting a post without permission When I request "GET /posts/f5a5a2c3-041b-4985-907c-74a2131efc98" Then I get a "403" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -63,7 +63,7 @@ Scenario: Requesting a not existing post When I request "GET /posts/45a5a2c3-041b-4985-907c-74a2131efc98" Then I get a "404" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -181,7 +181,7 @@ Scenario: Requesting a post without permission When I request "GET /posts/f5a5a2c3-041b-4985-907c-74a2131efc98" Then I get a "403" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -195,7 +195,7 @@ Scenario: Requesting a not existing post When I request "GET /posts/45a5a2c3-041b-4985-907c-74a2131efc98" Then I get a "404" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -213,7 +213,7 @@ Scenario: Create a post on an not existing user When I request "POST /users/987654/posts" Then I get a "404" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -231,7 +231,7 @@ Scenario: Create a post without permission When I request "POST /users/487654/posts" Then I get a "403" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -249,7 +249,7 @@ Scenario: Create a post with empty content When I request "POST /users/287654/posts" Then I get a "400" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -269,7 +269,7 @@ Scenario: Create a post with missing content When I request "POST /users/287654/posts" Then I get a "400" response And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.13" exists + And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property diff --git a/package-lock.json b/package-lock.json index 033b594..9fdb6bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "youthweb-api", - "version": "0.13.0", + "version": "0.14.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 7104c04..a4bc5cc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "youthweb-api", - "version": "0.13.0", + "version": "0.14.0", "private": true, "devDependencies": { "drakov": "^1.0.1" diff --git a/src/Core/FeatureContext.php b/src/Core/FeatureContext.php index 5713edc..85e15ab 100644 --- a/src/Core/FeatureContext.php +++ b/src/Core/FeatureContext.php @@ -87,7 +87,7 @@ public function iHaveSetTheCorrectHeadersWithoutAuthorization() { $this->iHaveSetTheHeaderWith('Content-Type', 'application/vnd.api+json'); $this->iHaveSetTheHeaderWith('Accept', 'application/vnd.api+json'); - $this->iHaveSetTheHeaderWith('Accept', 'application/vnd.api+json; net.youthweb.api.version=0.13'); + $this->iHaveSetTheHeaderWith('Accept', 'application/vnd.api+json; net.youthweb.api.version=0.14'); } /** From 51c3a242199a72854d7d6b8257d395d408edd9f6 Mon Sep 17 00:00:00 2001 From: Art4 Date: Tue, 11 Dec 2018 20:22:27 +0100 Subject: [PATCH 02/12] bump version --- errors.apib | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/errors.apib b/errors.apib index 5303437..0ae3322 100644 --- a/errors.apib +++ b/errors.apib @@ -202,13 +202,13 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes + data (array) @@ -334,13 +334,13 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Response 200 (application/vnd.api+json) + Headers - Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.13 + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Attributes + data (array) From 9647a69e409ef1d51e5b5215314c5a887908dee8 Mon Sep 17 00:00:00 2001 From: Art4 Date: Sat, 22 Dec 2018 19:08:26 +0100 Subject: [PATCH 03/12] =?UTF-8?q?Header=20im=20Response=20auf=20Korrekthei?= =?UTF-8?q?t=20pr=C3=BCfen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- features/core/comments.feature | 5 +++++ features/core/errors.feature | 28 ++++++++----------------- features/core/events.feature | 10 +++++---- features/core/friends.feature | 11 ++++++---- features/core/me.feature | 1 + features/core/objects_comments.feature | 6 ++++-- features/core/objects_posts.feature | 16 +++++++------- features/core/posts.feature | 29 ++++++++++++-------------- features/core/stats.feature | 6 +++--- features/core/users.feature | 2 ++ src/Core/FeatureContext.php | 10 +++++++++ 11 files changed, 68 insertions(+), 56 deletions(-) diff --git a/features/core/comments.feature b/features/core/comments.feature index f15ddf7..0420210 100644 --- a/features/core/comments.feature +++ b/features/core/comments.feature @@ -6,6 +6,7 @@ Scenario: Requesting a comment Given I have set the correct headers with valid authorization When I request "GET /comments/345678" Then I get a "200" response + And the correct headers are set And the "included" property exists And the "included" property is an array And the "data" property exists @@ -35,6 +36,7 @@ Scenario: Requesting the author of a comment Given I have set the correct headers with valid authorization When I request "GET /comments/345678/author" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an object And scope into the "data" property @@ -66,6 +68,7 @@ Scenario: Requesting the author relationship of a comment Given I have set the correct headers with valid authorization When I request "GET /comments/345678/relationships/author" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an object And the "links" property exists @@ -88,6 +91,7 @@ Scenario: Requesting the parent of a comment Given I have set the correct headers with valid authorization When I request "GET /comments/345678/parent" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an object And scope into the "data" property @@ -113,6 +117,7 @@ Scenario: Requesting the parent relationship of a comment Given I have set the correct headers with valid authorization When I request "GET /comments/345678/relationships/parent" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an object And scope into the "data" property diff --git a/features/core/errors.feature b/features/core/errors.feature index d0cbdb9..7d66b57 100644 --- a/features/core/errors.feature +++ b/features/core/errors.feature @@ -8,7 +8,7 @@ Scenario: Calling the BaseUrl And I have set the "Accept" header with "application/vnd.api+json; net.youthweb.api.version=0.14" When I request "GET /" Then I get a "404" response - And the Content-Type Header "application/vnd.api+json" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -23,8 +23,7 @@ Scenario: Sending a request with invalid JSON API """ When I request "POST /users/187654/posts" Then I get a "400" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -40,8 +39,7 @@ Scenario: Using the API without Content-Type Json API Header And I have set the "Accept" header with "application/vnd.api+json; net.youthweb.api.version=0.14" When I request "GET /posts/header-errors" Then I get a "415" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -58,8 +56,7 @@ Scenario: Using the API with Content-Type Json API Header and parameter And I have set the "Content-Type" header with "application/vnd.api+json; parameter=value" When I request "GET /posts/header-errors" Then I get a "415" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -74,8 +71,7 @@ Scenario: Using the API without Accept Header Given I have set the "Content-Type" header with "application/vnd.api+json" When I request "GET /posts/header-errors" Then I get a "406" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -91,8 +87,7 @@ Scenario: Using the API with Accept Header without version parameter And I have set the "Accept" header with "application/vnd.api+json" When I request "GET /posts/header-errors" Then I get a "406" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -109,8 +104,7 @@ Scenario: Using the API with deprecated version parameter And I have set the "Accept" header with "application/vnd.api+json; net.youthweb.api.version=0.12" When I request "GET /stats/forum" Then I get a "200" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "meta" property exists And the "meta" property is an object And scope into the "meta" property @@ -128,9 +122,7 @@ Scenario: Using the API with unsupported version parameter And I have set the "Accept" header with "application/vnd.api+json; net.youthweb.api.version=0.7" When I request "GET /stats/group" Then I get a "406" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -147,9 +139,7 @@ Scenario: Request the /me resource without a Bearer token And I have set the "Accept" header with "application/vnd.api+json; net.youthweb.api.version=0.14" When I request "GET /me" Then I get a "401" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property diff --git a/features/core/events.feature b/features/core/events.feature index 3b5e901..b395a66 100644 --- a/features/core/events.feature +++ b/features/core/events.feature @@ -6,6 +6,7 @@ Scenario: Requesting the events without specific time range Given I have set the correct headers with valid authorization When I request "GET /events" Then I get a "200" response + And the correct headers are set And the "included" property exists And the "included" property is an array And the "data" property exists @@ -26,6 +27,7 @@ Scenario: Requesting a event Given I have set the correct headers with valid authorization When I request "GET /events/4567" Then I get a "200" response + And the correct headers are set And the "included" property exists And the "included" property is an array And the "data" property exists @@ -68,8 +70,7 @@ Scenario: Requesting an event without authorization Given I have set the correct headers without authorization When I request "GET /events/4567" Then I get a "401" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -82,8 +83,7 @@ Scenario: Requesting a not existing event Given I have set the correct headers with valid authorization When I request "GET /events/404" Then I get a "404" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -96,6 +96,7 @@ Scenario: Requesting the author of an event Given I have set the correct headers with valid authorization When I request "GET /events/4567/author" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an object And scope into the "data" property @@ -127,6 +128,7 @@ Scenario: Requesting the author relationship of an event Given I have set the correct headers with valid authorization When I request "GET /events/4567/relationships/author" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an object And the "links" property exists diff --git a/features/core/friends.feature b/features/core/friends.feature index 4cc9578..c1a6b49 100644 --- a/features/core/friends.feature +++ b/features/core/friends.feature @@ -6,6 +6,7 @@ Scenario: Requesting a friend Given I have set the correct headers with valid authorization When I request "GET /friends/45678" Then I get a "200" response + And the correct headers are set And the "included" property exists And the "included" property is an array And the "data" property exists @@ -41,8 +42,7 @@ Scenario: Requesting a friend without authorization Given I have set the correct headers without authorization When I request "GET /friends/45678" Then I get a "401" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -55,8 +55,7 @@ Scenario: Requesting a not existing friend Given I have set the correct headers with valid authorization When I request "GET /friends/404" Then I get a "404" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -69,6 +68,7 @@ Scenario: Requesting the from-user of a friend Given I have set the correct headers with valid authorization When I request "GET /friends/45678/from" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an object And scope into the "data" property @@ -100,6 +100,7 @@ Scenario: Requesting the from-user relationship of a friend Given I have set the correct headers with valid authorization When I request "GET /friends/45678/relationships/from" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an object And the "links" property exists @@ -122,6 +123,7 @@ Scenario: Requesting the to-user of a friend Given I have set the correct headers with valid authorization When I request "GET /friends/45678/to" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an object And scope into the "data" property @@ -153,6 +155,7 @@ Scenario: Requesting the to-user relationship of a friend Given I have set the correct headers with valid authorization When I request "GET /friends/45678/relationships/to" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an object And the "links" property exists diff --git a/features/core/me.feature b/features/core/me.feature index 17dd009..21cba84 100644 --- a/features/core/me.feature +++ b/features/core/me.feature @@ -6,6 +6,7 @@ Scenario: Requesting the authorized user Given I have set the correct headers with valid authorization When I request "GET /me" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an object And scope into the "data" property diff --git a/features/core/objects_comments.feature b/features/core/objects_comments.feature index b6ca25f..6dd70d3 100644 --- a/features/core/objects_comments.feature +++ b/features/core/objects_comments.feature @@ -6,6 +6,7 @@ Scenario: Requesting the comments from a post Given I have set the correct headers with valid authorization When I request "GET /posts/d5a5a2c3-041b-4985-907c-74a2131efc98/comments" Then I get a "200" response + And the correct headers are set And the "included" property exists And the "included" property is an array And the "data" property exists @@ -26,6 +27,7 @@ Scenario: Requesting the comments from a post without comments Given I have set the correct headers with valid authorization When I request "GET /posts/0ca5a2c3-041b-4985-907c-74a2131efc98/comments" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an empty array @@ -33,6 +35,7 @@ Scenario: Requesting the comments relationships from a post Given I have set the correct headers with valid authorization When I request "GET /posts/d5a5a2c3-041b-4985-907c-74a2131efc98/relationships/comments" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an array And scope into the first "data" property @@ -45,8 +48,7 @@ Scenario: Requesting comments from a not existing post Given I have set the correct headers with valid authorization When I request "GET /posts/45a5a2c3-041b-4985-907c-74a2131efc98/comments" Then I get a "404" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property diff --git a/features/core/objects_posts.feature b/features/core/objects_posts.feature index b8fb827..3f8beea 100644 --- a/features/core/objects_posts.feature +++ b/features/core/objects_posts.feature @@ -6,6 +6,7 @@ Scenario: Requesting the posts from a users pinnwall Given I have set the correct headers with valid authorization When I request "GET /users/123456/posts" Then I get a "200" response + And the correct headers are set And the "included" property exists And the "included" property is an array And the "data" property exists @@ -26,6 +27,7 @@ Scenario: Requesting the posts relationships from a users pinnwall Given I have set the correct headers with valid authorization When I request "GET /users/123456/relationships/posts" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an array And the "links" property exists @@ -40,6 +42,7 @@ Scenario: Requesting the posts from a users pinnwall without posts Given I have set the correct headers with valid authorization When I request "GET /users/123450/posts" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an empty array @@ -51,6 +54,7 @@ Scenario: Creating a post on an users pinnwall """ When I request "POST /users/123456/posts" Then I get a "201" response + And the correct headers are set And the Location Header exists And the "included" property exists And the "included" property is an array @@ -90,8 +94,7 @@ Scenario: Create a post on an not existing user """ When I request "POST /users/987654/posts" Then I get a "404" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -108,8 +111,7 @@ Scenario: Create a post without permission """ When I request "POST /users/487654/posts" Then I get a "403" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -126,8 +128,7 @@ Scenario: Create a post with empty content """ When I request "POST /users/287654/posts" Then I get a "400" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -146,8 +147,7 @@ Scenario: Create a post with missing content """ When I request "POST /users/287654/posts" Then I get a "400" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property diff --git a/features/core/posts.feature b/features/core/posts.feature index 4316cd6..c11c241 100644 --- a/features/core/posts.feature +++ b/features/core/posts.feature @@ -6,6 +6,7 @@ Scenario: Requesting a post Given I have set the correct headers with valid authorization When I request "GET /posts/d5a5a2c3-041b-4985-907c-74a2131efc98" Then I get a "200" response + And the correct headers are set And the "included" property exists And the "included" property is an array And the "data" property exists @@ -48,8 +49,7 @@ Scenario: Requesting a post without permission Given I have set the correct headers with valid authorization When I request "GET /posts/f5a5a2c3-041b-4985-907c-74a2131efc98" Then I get a "403" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -62,8 +62,7 @@ Scenario: Requesting a not existing post Given I have set the correct headers with valid authorization When I request "GET /posts/45a5a2c3-041b-4985-907c-74a2131efc98" Then I get a "404" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -76,6 +75,7 @@ Scenario: Requesting the author of a post Given I have set the correct headers with valid authorization When I request "GET /posts/d5a5a2c3-041b-4985-907c-74a2131efc98/author" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an object And scope into the "data" property @@ -107,6 +107,7 @@ Scenario: Requesting the author relationship of a post Given I have set the correct headers with valid authorization When I request "GET /posts/d5a5a2c3-041b-4985-907c-74a2131efc98/relationships/author" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an object And the "links" property exists @@ -129,6 +130,7 @@ Scenario: Requesting the parent of a post Given I have set the correct headers with valid authorization When I request "GET /posts/d5a5a2c3-041b-4985-907c-74a2131efc98/parent" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an object And scope into the "data" property @@ -160,6 +162,7 @@ Scenario: Requesting the parent relationship of a post Given I have set the correct headers with valid authorization When I request "GET /posts/d5a5a2c3-041b-4985-907c-74a2131efc98/relationships/parent" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an object And scope into the "data" property @@ -180,8 +183,7 @@ Scenario: Requesting a post without permission Given I have set the correct headers with valid authorization When I request "GET /posts/f5a5a2c3-041b-4985-907c-74a2131efc98" Then I get a "403" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -194,8 +196,7 @@ Scenario: Requesting a not existing post Given I have set the correct headers with valid authorization When I request "GET /posts/45a5a2c3-041b-4985-907c-74a2131efc98" Then I get a "404" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -212,8 +213,7 @@ Scenario: Create a post on an not existing user """ When I request "POST /users/987654/posts" Then I get a "404" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -230,8 +230,7 @@ Scenario: Create a post without permission """ When I request "POST /users/487654/posts" Then I get a "403" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -248,8 +247,7 @@ Scenario: Create a post with empty content """ When I request "POST /users/287654/posts" Then I get a "400" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property @@ -268,8 +266,7 @@ Scenario: Create a post with missing content """ When I request "POST /users/287654/posts" Then I get a "400" response - And the Content-Type Header "application/vnd.api+json" exists - And the Accept Header "application/vnd.api+json; net.youthweb.api.version=0.14" exists + And the correct headers are set And the "errors" property exists And the "errors" property is an array And scope into the first "errors" property diff --git a/features/core/stats.feature b/features/core/stats.feature index 47ec605..643ff48 100644 --- a/features/core/stats.feature +++ b/features/core/stats.feature @@ -6,7 +6,7 @@ Scenario: Viewing the account stats Given I have set the correct headers without authorization When I request "GET /stats/account" Then I get a "200" response - And the Content-Type Header "application/vnd.api+json" exists + And the correct headers are set And the "data" property exists And the "data" property is an object And scope into the "data" property @@ -41,7 +41,7 @@ Scenario: Viewing the forum stats Given I have set the correct headers without authorization When I request "GET /stats/forum" Then I get a "200" response - And the Content-Type Header "application/vnd.api+json" exists + And the correct headers are set And the "data" property exists And the "data" property is an object And scope into the "data" property @@ -71,7 +71,7 @@ Scenario: Viewing the groups stats Given I have set the correct headers without authorization When I request "GET /stats/groups" Then I get a "200" response - And the Content-Type Header "application/vnd.api+json" exists + And the correct headers are set And the "data" property exists And the "data" property is an object And scope into the "data" property diff --git a/features/core/users.feature b/features/core/users.feature index 9ad7387..9a5e3ab 100644 --- a/features/core/users.feature +++ b/features/core/users.feature @@ -6,6 +6,7 @@ Scenario: Requesting a user Given I have set the correct headers with valid authorization When I request "GET /users/123456" Then I get a "200" response + And the correct headers are set And the "data" property exists And the "data" property is an object And scope into the "data" property @@ -62,6 +63,7 @@ Scenario: Requesting the friends of a user Given I have set the correct headers with valid authorization When I request "GET /users/123456/friends" Then I get a "200" response + And the correct headers are set And the "included" property exists And the "included" property is an array And the "data" property exists diff --git a/src/Core/FeatureContext.php b/src/Core/FeatureContext.php index 899c529..8079777 100644 --- a/src/Core/FeatureContext.php +++ b/src/Core/FeatureContext.php @@ -153,6 +153,16 @@ public function iGetAResponse($statusCode) $this->assertSame((int) $statusCode, (int) $this->getResponse()->getStatusCode(), $bodyOutput); } + /** + * @Then the correct headers are set + */ + public function theCorrectHeadersAreSet() + { + $this->theContentTypeHeaderExists('application/vnd.api+json'); + $this->theAcceptHeaderExists('application/vnd.api+json'); + $this->theAcceptHeaderExists('application/vnd.api+json; net.youthweb.api.version=0.14'); + } + /** * @Then the Content-Type Header :arg1 exists */ From 365822f29bd6842a3663a0f2ca211d662e00024e Mon Sep 17 00:00:00 2001 From: Art4 Date: Sat, 22 Dec 2018 19:23:02 +0100 Subject: [PATCH 04/12] =?UTF-8?q?API-Version=20kann=20=C3=BCber=20FeatureC?= =?UTF-8?q?ontext=20konfiguriert=20werden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- behat.yml | 3 ++- src/Core/FeatureContext.php | 10 +++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/behat.yml b/behat.yml index 278a381..4027e16 100644 --- a/behat.yml +++ b/behat.yml @@ -5,4 +5,5 @@ default: - "%paths.base%/features/core" contexts: - Youthweb\Api\Core\FeatureContext: - baseUrl: http://localhost:3000/ + baseUrl: "http://localhost:3000/" + apiVersion: "0.14" diff --git a/src/Core/FeatureContext.php b/src/Core/FeatureContext.php index 8079777..ed06ee3 100644 --- a/src/Core/FeatureContext.php +++ b/src/Core/FeatureContext.php @@ -17,6 +17,8 @@ */ class FeatureContext extends TestCase implements Context, SnippetAcceptingContext { + private $apiVersion; + /** * The Guzzle HTTP Client. */ @@ -59,9 +61,11 @@ class FeatureContext extends TestCase implements Context, SnippetAcceptingContex * * @param array $parameters context parameters (set them up through behat.yml) */ - public function __construct($baseUrl) + public function __construct($baseUrl, $apiVersion = '0.14') { $this->client = new Client(array('base_uri' => $baseUrl)); + + $this->apiVersion = strval($apiVersion); } /** @@ -87,7 +91,7 @@ public function iHaveSetTheCorrectHeadersWithoutAuthorization() { $this->iHaveSetTheHeaderWith('Content-Type', 'application/vnd.api+json'); $this->iHaveSetTheHeaderWith('Accept', 'application/vnd.api+json'); - $this->iHaveSetTheHeaderWith('Accept', 'application/vnd.api+json; net.youthweb.api.version=0.14'); + $this->iHaveSetTheHeaderWith('Accept', 'application/vnd.api+json; net.youthweb.api.version=' . $this->apiVersion); } /** @@ -160,7 +164,7 @@ public function theCorrectHeadersAreSet() { $this->theContentTypeHeaderExists('application/vnd.api+json'); $this->theAcceptHeaderExists('application/vnd.api+json'); - $this->theAcceptHeaderExists('application/vnd.api+json; net.youthweb.api.version=0.14'); + $this->theAcceptHeaderExists('application/vnd.api+json; net.youthweb.api.version=' . $this->apiVersion); } /** From 3e44e82bf43040f79c4a42927ee97d80859c1cb0 Mon Sep 17 00:00:00 2001 From: Art4 Date: Sun, 23 Dec 2018 20:46:13 +0100 Subject: [PATCH 05/12] API zum Erstellen eines Comments zu einem Post erstellt --- apiary.apib | 122 +++++++++++++++++++++++++ errors.apib | 106 ++++++++++++++++++++- features/core/objects_comments.feature | 107 ++++++++++++++++++++++ src/Core/FeatureContext.php | 5 +- 4 files changed, 335 insertions(+), 5 deletions(-) diff --git a/apiary.apib b/apiary.apib index c14119e..bcd8057 100644 --- a/apiary.apib +++ b/apiary.apib @@ -580,6 +580,122 @@ Ein Post Objekt hat die folgenden Attribute + (User Base) + (Post Base) +### Comment zu einem Post erstellen [POST] + ++ Request (application/vnd.api+json) + + + Headers + + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Authorization: Bearer valid_JWT + + + Attributes + + + data (Comment Creation) + ++ Response 201 (application/vnd.api+json) + + + Headers + + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Location: /comments/98765 + + + Attributes + + + data (Comment Base) + + included (array) + + (User Base) + + (Post Base) + ++ Request (application/vnd.api+json) + + Fehler: Create a comment on an not existing post + + + Headers + + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + + + Attributes + + + data (Comment Creation) + ++ Response 404 (application/vnd.api+json) + + + Headers + + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + + + Attributes (Not Found Error) + ++ Request (application/vnd.api+json) + + Fehler: Create a comment without permission + + + Headers + + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + + + Attributes + + + data (Comment Creation) + ++ Response 403 (application/vnd.api+json) + + + Headers + + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + + + Attributes (Forbidden Error) + ++ Request (application/vnd.api+json) + + Fehler: Create a comment with empty content + + + Headers + + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + + + Attributes + + + data (object) + + type: `comments` (string) + + attributes (object) + + `content`: ` ` (string) - Der Comment-Inhalt + ++ Response 400 (application/vnd.api+json) + + + Headers + + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + + + Body + + {"errors":[{"status":"422","title":"Unprocessable Entity","detail":"The field `attributes.content` can't be empty."}]} + ++ Request (application/vnd.api+json) + + Fehler: Create a comment with missing content + + + Headers + + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + + + Attributes + + + data (object) + + type: `comments` (string) + + attributes (object) + ++ Response 400 (application/vnd.api+json) + + + Headers + + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + + + Body + + {"errors":[{"status":"422","title":"Unprocessable Entity","detail":"The field `attributes.content` must be set."}]} + ## Post Comments Relationship [/posts/{post_id}/relationships/comments] + Parameters @@ -1063,6 +1179,12 @@ Fragt die Userdaten des autorisierten Users ab. Dies ist ein Shortcut für /user + links (object) + self: `/comments/345678` (string) - Der Link zu dieser Resource +## Comment Creation (object) + ++ type: `comments` (string) ++ attributes (object) + + `content`: `Lorem ipsum dolor sit amet, sed libris elaboraret eu.` (string) - Der Post-Inhalt + ## Comment Linkage (object) + type: `comments` (string) diff --git a/errors.apib b/errors.apib index 0ae3322..4668e41 100644 --- a/errors.apib +++ b/errors.apib @@ -232,7 +232,7 @@ Hier werden Fehler und Fehlermeldungen der API getestet. ## Create Post on not existing user [/users/987654/posts] -### Create a post on an not existing user [POST] +### Create a post on a not existing user [POST] + Request (application/vnd.api+json) + Headers @@ -241,7 +241,7 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Attributes - + data (Post Created) + + data (Post Creation) + Response 404 (application/vnd.api+json) @@ -262,7 +262,7 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Attributes - + data (Post Created) + + data (Post Creation) + Response 403 (application/vnd.api+json) @@ -327,6 +327,97 @@ Hier werden Fehler und Fehlermeldungen der API getestet. {"errors":[{"status":"422","title":"Unprocessable Entity","detail":"The field `attributes.content` must be set."}]} +## Create Comment on not existing post [/posts/45a5a2c3-041b-4985-907c-74a2131efc98/comments] + +### Create a comment on a not existing post [POST] ++ Request (application/vnd.api+json) + + + Headers + + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + + + Attributes + + + data (Comment Creation) + ++ Response 404 (application/vnd.api+json) + + + Headers + + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + + + Attributes (Not Found Error) + +## Create Comment without permission [/posts/4035a2c3-041b-4985-907c-74a2131efc98/comments] + +### Create a comment without permission [POST] ++ Request (application/vnd.api+json) + + + Headers + + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + + + Attributes + + + data (Post Creation) + ++ Response 403 (application/vnd.api+json) + + + Headers + + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + + + Attributes (Forbidden Error) + +## Create Comment with content errors [/posts/25a5a2c3-041b-4985-907c-74a2131efc98/comments] + +### Create a comment with empty content [POST] ++ Request (application/vnd.api+json) + + + Headers + + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + + + Attributes + + + data (object) + + type: `comments` (string) + + attributes (object) + + `content`: `` (string) - Der Comment-Inhalt + ++ Response 400 (application/vnd.api+json) + + + Headers + + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + + + Body + + {"errors":[{"status":"422","title":"Unprocessable Entity","detail":"The field `attributes.content` can't be empty."}]} + +### Create a comment with missing content [POST] ++ Request (application/vnd.api+json) + + + Headers + + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + + + Attributes + + + data (object) + + type: `comments` (string) + + attributes (object) + ++ Response 400 (application/vnd.api+json) + + + Headers + + Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + + + Body + + {"errors":[{"status":"422","title":"Unprocessable Entity","detail":"The field `attributes.content` must be set."}]} + ## Get comments of a post without comments [/posts/0ca5a2c3-041b-4985-907c-74a2131efc98/comments] ### Request comments of a post without comments [GET] @@ -423,7 +514,14 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + status: `404` + title: `Resource not found` -## Post Created (object) + +## Comment Creation (object) + ++ type: `comments` (string) ++ attributes (object) + + `content`: `Lorem ipsum dolor sit amet, sed libris elaboraret eu.` (string) - Der Post-Inhalt + +## Post Creation (object) + type: `posts` (string) + attributes (object) diff --git a/features/core/objects_comments.feature b/features/core/objects_comments.feature index 6dd70d3..a534e87 100644 --- a/features/core/objects_comments.feature +++ b/features/core/objects_comments.feature @@ -56,3 +56,110 @@ Scenario: Requesting comments from a not existing post And the "status" property is a string equalling "404" And the "title" property exists And the "title" property is a string equalling "Resource not found" + +Scenario: Creating a comment on a post + Given I have set the correct headers with valid authorization + And I have the payload + """ + {"data":{"type":"comments","attributes":{"content":"Lorem ipsum dolor sit amet, sed libris elaboraret eu."}}} + """ + When I request "POST /posts/d5a5a2c3-041b-4985-907c-74a2131efc98/comments" + Then I get a "201" response + And the correct headers are set + And the Location Header exists + And the "included" property exists + And the "included" property is an array + And the "data" property exists + And the "data" property is an object + And scope into the "data" property + And the response contains 5 items + And the "type" property exists + And the "type" property is a string equalling "comments" + And the "id" property exists + And the "links" property exists + And the "attributes" property exists + And scope into the "data.attributes" property + And the response contains 2 items + And the properties exist: + """ + content + created_at + """ + And scope into the "data.links" property + And the response contains 1 items + And the properties exist: + """ + self + """ + +Scenario: Create a comment on a not existing post + Given I have set the correct headers with valid authorization + And I have the payload + """ + {"data":{"type":"comments","attributes":{"content":"Lorem ipsum dolor sit amet, sed libris elaboraret eu."}}} + """ + When I request "POST /posts/45a5a2c3-041b-4985-907c-74a2131efc98/comments" + Then I get a "404" response + And the correct headers are set + And the "errors" property exists + And the "errors" property is an array + And scope into the first "errors" property + And the "status" property exists + And the "status" property is a string equalling "404" + And the "title" property exists + And the "title" property is a string equalling "Resource not found" + +Scenario: Create a comment without permission + Given I have set the correct headers with valid authorization + And I have the payload + """ + {"data":{"type":"comments","attributes":{"content":"Lorem ipsum dolor sit amet, sed libris elaboraret eu."}}} + """ + When I request "POST /posts/4035a2c3-041b-4985-907c-74a2131efc98/comments" + Then I get a "403" response + And the correct headers are set + And the "errors" property exists + And the "errors" property is an array + And scope into the first "errors" property + And the "status" property exists + And the "status" property is a string equalling "403" + And the "title" property exists + And the "title" property is a string equalling "Forbidden" + +Scenario: Create a comment with empty content + Given I have set the correct headers with valid authorization + And I have the payload + """ + {"data":{"type":"comments","attributes":{"content":""}}} + """ + When I request "POST /posts/25a5a2c3-041b-4985-907c-74a2131efc98/comments" + Then I get a "400" response + And the correct headers are set + And the "errors" property exists + And the "errors" property is an array + And scope into the first "errors" property + And the "status" property exists + And the "status" property is a string equalling "422" + And the "title" property exists + And the "title" property is a string equalling "Unprocessable Entity" + And the "detail" property exists + And the "detail" property is a string equalling "The field `attributes.content` can't be empty." + +Scenario: Create a comment with missing content + Given I have set the correct headers with valid authorization + And I have the payload + """ + {"data":{"type":"comments","attributes":{}}} + """ + When I request "POST /posts/25a5a2c3-041b-4985-907c-74a2131efc98/comments" + Then I get a "400" response + And the correct headers are set + And the "errors" property exists + And the "errors" property is an array + And scope into the first "errors" property + And the "status" property exists + And the "status" property is a string equalling "422" + And the "title" property exists + And the "title" property is a string equalling "Unprocessable Entity" + And the "detail" property exists + And the "detail" property is a string equalling "The field `attributes.content` must be set." diff --git a/src/Core/FeatureContext.php b/src/Core/FeatureContext.php index ed06ee3..1451c2b 100644 --- a/src/Core/FeatureContext.php +++ b/src/Core/FeatureContext.php @@ -17,7 +17,10 @@ */ class FeatureContext extends TestCase implements Context, SnippetAcceptingContext { - private $apiVersion; + /** + * string the current api version that requests and responses should have + */ + protected $apiVersion; /** * The Guzzle HTTP Client. From a25453c65434e9fa1efc8a44d1402ee886615033 Mon Sep 17 00:00:00 2001 From: Art4 Date: Sun, 23 Dec 2018 20:55:49 +0100 Subject: [PATCH 06/12] Libraries aktualisiert --- package-lock.json | 1390 ++++++++++++++++++--------------------------- 1 file changed, 557 insertions(+), 833 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9fdb6bb..506a8fb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,13 +4,6 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true, - "optional": true - }, "accepts": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", @@ -36,17 +29,6 @@ "acorn": "^2.1.0" } }, - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true, - "optional": true, - "requires": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" - } - }, "align-text": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", @@ -80,24 +62,6 @@ "micromatch": "^2.1.5" } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, "arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", @@ -137,23 +101,6 @@ "integrity": "sha1-sqRdpf36ILBJb8N2jMJ8EvqRan0=", "dev": true }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "optional": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true, - "optional": true - }, "async": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", @@ -169,58 +116,18 @@ "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", "dev": true }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true, - "optional": true - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, "binary-extensions": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=", "dev": true }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "requires": { - "inherits": "~2.0.0" - } - }, "body-parser": { "version": "1.18.3", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", @@ -247,15 +154,6 @@ } } }, - "boom": { - "version": "2.10.1", - "resolved": "http://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, - "requires": { - "hoek": "2.x.x" - } - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -301,13 +199,6 @@ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", "dev": true }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true, - "optional": true - }, "center-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", @@ -381,13 +272,6 @@ } } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "optional": true - }, "code-point-at": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.0.0.tgz", @@ -398,20 +282,11 @@ } }, "colors": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.2.tgz", - "integrity": "sha512-rhP0JSBGYvpcNQj4s5AdShMeE5ahMop96cTeDl/v9qQQm2fYClE2QXZRi8wLzc+GmXSxdIqqbOIAhyObEXDbfQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", + "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==", "dev": true }, - "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, "commander": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz", @@ -424,12 +299,6 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, "constantinople": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.0.2.tgz", @@ -469,15 +338,6 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "cryptiles": { - "version": "2.0.5", - "resolved": "http://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "requires": { - "boom": "2.x.x" - } - }, "css": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/css/-/css-1.0.8.tgz", @@ -500,25 +360,6 @@ "integrity": "sha1-sNBClG2ylTu50pKQCmy19tASIDE=", "dev": true }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -534,26 +375,6 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true - }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -566,13 +387,6 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true, - "optional": true - }, "drafter": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/drafter/-/drafter-1.2.0.tgz", @@ -669,17 +483,6 @@ } } }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -789,13 +592,6 @@ } } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true, - "optional": true - }, "extglob": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", @@ -805,12 +601,6 @@ "is-extglob": "^1.0.0" } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", @@ -818,14 +608,14 @@ "dev": true }, "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { "is-number": "^2.1.0", "isobject": "^2.0.0", - "randomatic": "^1.1.3", + "randomatic": "^3.0.0", "repeat-element": "^1.1.2", "repeat-string": "^1.5.2" } @@ -870,25 +660,6 @@ "for-in": "^1.0.1" } }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "optional": true - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "optional": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" - } - }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -908,82 +679,547 @@ "dev": true }, "fsevents": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.1.tgz", - "integrity": "sha1-8Z/Sj0Pur3YWgOUZogPE0LPTGv8=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "dev": true, "optional": true, "requires": { - "nan": "^2.3.0", - "node-pre-gyp": "^0.6.29" - } - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", - "dev": true, - "optional": true, - "requires": { - "fstream": "^1.0.0", - "inherits": "2", - "minimatch": "^3.0.0" - } - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "get-caller-file": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.1.tgz", - "integrity": "sha1-qm/3uYobItwMizuQX6sytVL1rEE=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { - "assert-plus": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "dev": true, "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "nan": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", + "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==", + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true } } }, + "get-caller-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.1.tgz", + "integrity": "sha1-qm/3uYobItwMizuQX6sytVL1rEE=", + "dev": true + }, "glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", @@ -1029,49 +1265,6 @@ "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", "dev": true }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "dev": true, - "optional": true, - "requires": { - "ajv": "^4.9.1", - "har-schema": "^1.0.5" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true, - "optional": true - }, - "hawk": { - "version": "3.1.3", - "resolved": "http://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, - "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "http://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true - }, "hosted-git-info": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz", @@ -1090,18 +1283,6 @@ "statuses": ">= 1.4.0 < 2" } }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, "iconv-lite": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", @@ -1127,13 +1308,6 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true, - "optional": true - }, "invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", @@ -1248,13 +1422,6 @@ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", "dev": true }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true, - "optional": true - }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -1276,13 +1443,6 @@ "isarray": "1.0.0" } }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true, - "optional": true - }, "jade": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/jade/-/jade-1.11.0.tgz", @@ -1301,65 +1461,6 @@ "with": "~4.0.0" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "optional": true, - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, "jstransformer": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-0.0.2.tgz", @@ -1419,6 +1520,12 @@ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", "dev": true }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "dev": true + }, "media-typer": { "version": "0.3.0", "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -1522,37 +1629,6 @@ "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", "dev": true }, - "node-pre-gyp": { - "version": "0.6.39", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", - "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "hawk": "3.1.3", - "mkdirp": "^0.5.1", - "nopt": "^4.0.1", - "npmlog": "^4.0.2", - "rc": "^1.1.7", - "request": "2.81.0", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^2.2.1", - "tar-pack": "^3.4.0" - } - }, - "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, "normalize-package-data": { "version": "2.3.5", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz", @@ -1574,39 +1650,12 @@ "remove-trailing-separator": "^1.0.1" } }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, "number-is-nan": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz", "integrity": "sha1-wCD1KcUoKt/dIz2R1LGBw9aG3Es=", "dev": true }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "optional": true - }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", @@ -1644,13 +1693,6 @@ "wordwrap": "~0.0.2" } }, - "os-homedir": { - "version": "1.0.2", - "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "optional": true - }, "os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", @@ -1660,24 +1702,6 @@ "lcid": "^1.0.0" } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", @@ -1748,13 +1772,6 @@ "pinkie-promise": "^2.0.0" } }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", - "dev": true, - "optional": true - }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -1817,13 +1834,6 @@ "ipaddr.js": "1.8.0" } }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true, - "optional": true - }, "qs": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.6.0.tgz", @@ -1831,49 +1841,27 @@ "dev": true }, "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true }, "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true } } }, @@ -1895,28 +1883,6 @@ "unpipe": "1.0.0" } }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true, - "optional": true - } - } - }, "read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", @@ -1993,46 +1959,6 @@ "integrity": "sha1-ZOwMkeD0tHX5DVtkNlHj5uW2wtU=", "dev": true }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~4.2.1", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "performance-now": "^0.2.0", - "qs": "~6.4.0", - "safe-buffer": "^5.0.1", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.0.0" - }, - "dependencies": { - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "dev": true, - "optional": true - } - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -2054,15 +1980,6 @@ "align-text": "^0.1.1" } }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, "safe-buffer": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", @@ -2132,22 +2049,6 @@ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true, - "optional": true - }, - "sntp": { - "version": "1.0.9", - "resolved": "http://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, - "requires": { - "hoek": "2.x.x" - } - }, "source-map": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", @@ -2188,33 +2089,6 @@ "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", "dev": true }, - "sshpk": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz", - "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==", - "dev": true, - "optional": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, "statuses": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", @@ -2241,13 +2115,6 @@ "safe-buffer": "^5.0.1" } }, - "stringstream": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", - "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", - "dev": true, - "optional": true - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -2266,51 +2133,6 @@ "is-utf8": "^0.2.0" } }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "optional": true - }, - "tar": { - "version": "2.2.1", - "resolved": "http://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - } - }, - "tar-pack": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.1.tgz", - "integrity": "sha512-PPRybI9+jM5tjtCbN2cxmmRU7YmqT3Zv/UDy48tAh2XRkLa9bAORtSWLkVc13+GJF+cdTh1yEnHEk3cpTaL5Kg==", - "dev": true, - "optional": true, - "requires": { - "debug": "^2.2.0", - "fstream": "^1.0.10", - "fstream-ignore": "^1.0.5", - "once": "^1.3.3", - "readable-stream": "^2.1.4", - "rimraf": "^2.5.1", - "tar": "^2.2.1", - "uid-number": "^0.0.6" - } - }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "http://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "dev": true, - "optional": true, - "requires": { - "punycode": "^1.4.1" - } - }, "transformers": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz", @@ -2358,28 +2180,12 @@ } } }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, "tv4": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", "integrity": "sha1-0CDIRvrdUMhVq7JeuuzGj8EPeWM=", "dev": true }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, "type-is": { "version": "1.6.16", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", @@ -2416,13 +2222,6 @@ "dev": true, "optional": true }, - "uid-number": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", - "dev": true, - "optional": true - }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -2441,13 +2240,6 @@ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true, - "optional": true - }, "validate-npm-package-license": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", @@ -2464,27 +2256,6 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, "void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", @@ -2497,53 +2268,6 @@ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", "dev": true }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "optional": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "optional": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, "window-size": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", From 074c3a08721d6b80ad575930b4dd169e831fe3a7 Mon Sep 17 00:00:00 2001 From: Art4 Date: Sun, 23 Dec 2018 23:30:22 +0100 Subject: [PATCH 07/12] =?UTF-8?q?gem=20Abh=C3=A4ngigkeiten=20aktualisiert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/Gemfile.lock | 289 +++++++++++++++++++++++++++++++--------------- 1 file changed, 199 insertions(+), 90 deletions(-) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 5288179..a69177a 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -1,133 +1,242 @@ GEM remote: https://rubygems.org/ specs: - activesupport (4.2.7) + activesupport (4.2.10) i18n (~> 0.7) - json (~> 1.7, >= 1.7.7) minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - addressable (2.4.0) + addressable (2.5.2) + public_suffix (>= 2.0.2, < 4.0) coffee-script (2.4.1) coffee-script-source execjs - coffee-script-source (1.10.0) + coffee-script-source (1.11.1) colorator (1.1.0) - ethon (0.9.1) + commonmarker (0.17.13) + ruby-enum (~> 0.5) + concurrent-ruby (1.1.4) + dnsruby (1.61.2) + addressable (~> 2.5) + em-websocket (0.5.1) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0.6.0) + ethon (0.11.0) ffi (>= 1.3.0) + eventmachine (1.2.7) execjs (2.7.0) - faraday (0.9.2) + faraday (0.15.4) multipart-post (>= 1.2, < 3) - ffi (1.9.14) + ffi (1.9.25) forwardable-extended (2.6.0) - gemoji (2.1.0) - github-pages (98) - activesupport (= 4.2.7) - github-pages-health-check (= 1.2.0) - jekyll (= 3.2.1) - jekyll-coffeescript (= 1.0.1) - jekyll-feed (= 0.5.1) - jekyll-gist (= 1.4.0) - jekyll-github-metadata (= 2.1.1) - jekyll-mentions (= 1.2.0) + gemoji (3.0.0) + github-pages (193) + activesupport (= 4.2.10) + github-pages-health-check (= 1.8.1) + jekyll (= 3.7.4) + jekyll-avatar (= 0.6.0) + jekyll-coffeescript (= 1.1.1) + jekyll-commonmark-ghpages (= 0.1.5) + jekyll-default-layout (= 0.1.4) + jekyll-feed (= 0.11.0) + jekyll-gist (= 1.5.0) + jekyll-github-metadata (= 2.9.4) + jekyll-mentions (= 1.4.1) + jekyll-optional-front-matter (= 0.3.0) jekyll-paginate (= 1.1.0) - jekyll-redirect-from (= 0.11.0) - jekyll-sass-converter (= 1.3.0) - jekyll-seo-tag (= 2.0.0) - jekyll-sitemap (= 0.10.0) + jekyll-readme-index (= 0.2.0) + jekyll-redirect-from (= 0.14.0) + jekyll-relative-links (= 0.5.3) + jekyll-remote-theme (= 0.3.1) + jekyll-sass-converter (= 1.5.2) + jekyll-seo-tag (= 2.5.0) + jekyll-sitemap (= 1.2.0) jekyll-swiss (= 0.4.0) - jemoji (= 0.7.0) - kramdown (= 1.11.1) - liquid (= 3.0.6) - listen (= 3.0.6) + jekyll-theme-architect (= 0.1.1) + jekyll-theme-cayman (= 0.1.1) + jekyll-theme-dinky (= 0.1.1) + jekyll-theme-hacker (= 0.1.1) + jekyll-theme-leap-day (= 0.1.1) + jekyll-theme-merlot (= 0.1.1) + jekyll-theme-midnight (= 0.1.1) + jekyll-theme-minimal (= 0.1.1) + jekyll-theme-modernist (= 0.1.1) + jekyll-theme-primer (= 0.5.3) + jekyll-theme-slate (= 0.1.1) + jekyll-theme-tactile (= 0.1.1) + jekyll-theme-time-machine (= 0.1.1) + jekyll-titles-from-headings (= 0.5.1) + jemoji (= 0.10.1) + kramdown (= 1.17.0) + liquid (= 4.0.0) + listen (= 3.1.5) mercenary (~> 0.3) - minima (= 1.2.0) - rouge (= 1.11.1) + minima (= 2.5.0) + nokogiri (>= 1.8.2, < 2.0) + rouge (= 2.2.1) terminal-table (~> 1.4) - github-pages-health-check (1.2.0) + github-pages-health-check (1.8.1) addressable (~> 2.3) - net-dns (~> 0.8) + dnsruby (~> 1.60) octokit (~> 4.0) - public_suffix (~> 1.4) - typhoeus (~> 0.7) - html-pipeline (2.4.2) + public_suffix (~> 2.0) + typhoeus (~> 1.3) + html-pipeline (2.9.1) activesupport (>= 2) nokogiri (>= 1.4) - i18n (0.7.0) - jekyll (3.2.1) + http_parser.rb (0.6.0) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + jekyll (3.7.4) + addressable (~> 2.4) colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 0.7) jekyll-sass-converter (~> 1.0) - jekyll-watch (~> 1.1) - kramdown (~> 1.3) - liquid (~> 3.0) + jekyll-watch (~> 2.0) + kramdown (~> 1.14) + liquid (~> 4.0) mercenary (~> 0.3.3) pathutil (~> 0.9) - rouge (~> 1.7) + rouge (>= 1.7, < 4) safe_yaml (~> 1.0) - jekyll-coffeescript (1.0.1) + jekyll-avatar (0.6.0) + jekyll (~> 3.0) + jekyll-coffeescript (1.1.1) coffee-script (~> 2.2) - jekyll-feed (0.5.1) - jekyll-gist (1.4.0) + coffee-script-source (~> 1.11.1) + jekyll-commonmark (1.2.0) + commonmarker (~> 0.14) + jekyll (>= 3.0, < 4.0) + jekyll-commonmark-ghpages (0.1.5) + commonmarker (~> 0.17.6) + jekyll-commonmark (~> 1) + rouge (~> 2) + jekyll-default-layout (0.1.4) + jekyll (~> 3.0) + jekyll-feed (0.11.0) + jekyll (~> 3.3) + jekyll-gist (1.5.0) octokit (~> 4.2) - jekyll-github-metadata (2.1.1) + jekyll-github-metadata (2.9.4) jekyll (~> 3.1) - octokit (~> 4.0) - jekyll-mentions (1.2.0) - activesupport (~> 4.0) + octokit (~> 4.0, != 4.4.0) + jekyll-mentions (1.4.1) html-pipeline (~> 2.3) jekyll (~> 3.0) + jekyll-optional-front-matter (0.3.0) + jekyll (~> 3.0) jekyll-paginate (1.1.0) - jekyll-redirect-from (0.11.0) - jekyll (>= 2.0) - jekyll-sass-converter (1.3.0) - sass (~> 3.2) - jekyll-seo-tag (2.0.0) - jekyll (~> 3.1) - jekyll-sitemap (0.10.0) + jekyll-readme-index (0.2.0) + jekyll (~> 3.0) + jekyll-redirect-from (0.14.0) + jekyll (~> 3.3) + jekyll-relative-links (0.5.3) + jekyll (~> 3.3) + jekyll-remote-theme (0.3.1) + jekyll (~> 3.5) + rubyzip (>= 1.2.1, < 3.0) + jekyll-sass-converter (1.5.2) + sass (~> 3.4) + jekyll-seo-tag (2.5.0) + jekyll (~> 3.3) + jekyll-sitemap (1.2.0) + jekyll (~> 3.3) jekyll-swiss (0.4.0) - jekyll-watch (1.5.0) - listen (~> 3.0, < 3.1) - jemoji (0.7.0) - activesupport (~> 4.0) - gemoji (~> 2.0) + jekyll-theme-architect (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-cayman (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-dinky (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-hacker (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-leap-day (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-merlot (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-midnight (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-minimal (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-modernist (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-primer (0.5.3) + jekyll (~> 3.5) + jekyll-github-metadata (~> 2.9) + jekyll-seo-tag (~> 2.0) + jekyll-theme-slate (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-tactile (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-time-machine (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-titles-from-headings (0.5.1) + jekyll (~> 3.3) + jekyll-watch (2.1.2) + listen (~> 3.0) + jemoji (0.10.1) + gemoji (~> 3.0) html-pipeline (~> 2.2) - jekyll (>= 3.0) - json (1.8.3) - kramdown (1.11.1) - liquid (3.0.6) - listen (3.0.6) - rb-fsevent (>= 0.9.3) - rb-inotify (>= 0.9.7) + jekyll (~> 3.0) + kramdown (1.17.0) + liquid (4.0.0) + listen (3.1.5) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + ruby_dep (~> 1.2) mercenary (0.3.6) - mini_portile2 (2.1.0) - minima (1.2.0) - minitest (5.9.1) + mini_portile2 (2.4.0) + minima (2.5.0) + jekyll (~> 3.5) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + minitest (5.11.3) multipart-post (2.0.0) - net-dns (0.8.0) - nokogiri (1.6.8.1) - mini_portile2 (~> 2.1.0) - octokit (4.3.0) - sawyer (~> 0.7.0, >= 0.5.3) - pathutil (0.14.0) + nokogiri (1.9.1) + mini_portile2 (~> 2.4.0) + octokit (4.13.0) + sawyer (~> 0.8.0, >= 0.5.3) + pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (1.5.3) - rb-fsevent (0.9.7) - rb-inotify (0.9.7) - ffi (>= 0.5.0) - rouge (1.11.1) + public_suffix (2.0.5) + rb-fsevent (0.10.3) + rb-inotify (0.10.0) + ffi (~> 1.0) + rouge (2.2.1) + ruby-enum (0.7.2) + i18n + ruby_dep (1.5.0) + rubyzip (1.2.2) safe_yaml (1.0.4) - sass (3.4.22) - sawyer (0.7.0) - addressable (>= 2.3.5, < 2.5) - faraday (~> 0.8, < 0.10) - terminal-table (1.7.3) - unicode-display_width (~> 1.1.1) - thread_safe (0.3.5) - typhoeus (0.8.0) - ethon (>= 0.8.0) - tzinfo (1.2.2) + sass (3.7.2) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sawyer (0.8.1) + addressable (>= 2.3.5, < 2.6) + faraday (~> 0.8, < 1.0) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + thread_safe (0.3.6) + typhoeus (1.3.1) + ethon (>= 0.9.0) + tzinfo (1.2.5) thread_safe (~> 0.1) - unicode-display_width (1.1.1) + unicode-display_width (1.4.1) PLATFORMS ruby @@ -136,4 +245,4 @@ DEPENDENCIES github-pages BUNDLED WITH - 1.13.2 + 1.17.1 From 952ab51eaf233b376d135d09a88b4e25a0e87147 Mon Sep 17 00:00:00 2001 From: Art4 Date: Sat, 5 Jan 2019 20:15:15 +0100 Subject: [PATCH 08/12] =?UTF-8?q?Fehlende=20Header=20in=20API=20Blueprint?= =?UTF-8?q?=20erg=C3=A4nzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiary.apib | 8 ++++++++ docs/pages/api/api_general_versions.md | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/apiary.apib b/apiary.apib index bcd8057..51ec4a2 100644 --- a/apiary.apib +++ b/apiary.apib @@ -614,6 +614,7 @@ Ein Post Objekt hat die folgenden Attribute + Headers Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Authorization: Bearer valid_JWT + Attributes @@ -634,6 +635,7 @@ Ein Post Objekt hat die folgenden Attribute + Headers Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Authorization: Bearer valid_JWT + Attributes @@ -654,6 +656,7 @@ Ein Post Objekt hat die folgenden Attribute + Headers Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Authorization: Bearer valid_JWT + Attributes @@ -679,6 +682,7 @@ Ein Post Objekt hat die folgenden Attribute + Headers Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Authorization: Bearer valid_JWT + Attributes @@ -967,6 +971,7 @@ Liefert die Posts von der Pinnwand eines Users + Headers Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Authorization: Bearer valid_JWT + Attributes @@ -987,6 +992,7 @@ Liefert die Posts von der Pinnwand eines Users + Headers Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Authorization: Bearer valid_JWT + Attributes @@ -1007,6 +1013,7 @@ Liefert die Posts von der Pinnwand eines Users + Headers Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Authorization: Bearer valid_JWT + Attributes @@ -1035,6 +1042,7 @@ Liefert die Posts von der Pinnwand eines Users + Headers Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 + Authorization: Bearer valid_JWT + Attributes diff --git a/docs/pages/api/api_general_versions.md b/docs/pages/api/api_general_versions.md index 0d3e456..856251f 100644 --- a/docs/pages/api/api_general_versions.md +++ b/docs/pages/api/api_general_versions.md @@ -29,9 +29,9 @@ Nach dem Release einer neuen Version garantieren wir den Support der Version ohn | **0.10** | :warning: | 2017-06-18 | mindestens 2018-06-18 | | **0.9** | :warning: | 2017-06-04 | mindestens 2018-06-04 | | **0.8** | :warning: | 2017-05-21 | mindestens 2018-05-21 | -| 0.7 | :x: | 2016-11-20 | Version 0.13 - 2019-12-16 | -| 0.6 | :x: | 2016-10-23 | Version 0.13 - 2019-12-16 | -| 0.5 | :x: | 2016-07-03 | Version 0.13 - 2019-12-16 | +| 0.7 | :x: | 2016-11-20 | Version 0.13 - 2018-12-16 | +| 0.6 | :x: | 2016-10-23 | Version 0.13 - 2018-12-16 | +| 0.5 | :x: | 2016-07-03 | Version 0.13 - 2018-12-16 | #### Status-Legende From 58bc1147bd89fa5039eaff6e97c77e6383d233b1 Mon Sep 17 00:00:00 2001 From: Art4 Date: Thu, 10 Jan 2019 14:37:29 +0100 Subject: [PATCH 09/12] change uuid for forbidden posts --- errors.apib | 2 +- features/core/objects_comments.feature | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/errors.apib b/errors.apib index 4668e41..ce28283 100644 --- a/errors.apib +++ b/errors.apib @@ -348,7 +348,7 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Attributes (Not Found Error) -## Create Comment without permission [/posts/4035a2c3-041b-4985-907c-74a2131efc98/comments] +## Create Comment without permission [/posts/f5a5a2c3-041b-4985-907c-74a2131efc98/comments] ### Create a comment without permission [POST] + Request (application/vnd.api+json) diff --git a/features/core/objects_comments.feature b/features/core/objects_comments.feature index a534e87..333b3cd 100644 --- a/features/core/objects_comments.feature +++ b/features/core/objects_comments.feature @@ -115,7 +115,7 @@ Scenario: Create a comment without permission """ {"data":{"type":"comments","attributes":{"content":"Lorem ipsum dolor sit amet, sed libris elaboraret eu."}}} """ - When I request "POST /posts/4035a2c3-041b-4985-907c-74a2131efc98/comments" + When I request "POST /posts/f5a5a2c3-041b-4985-907c-74a2131efc98/comments" Then I get a "403" response And the correct headers are set And the "errors" property exists From 9995134f79d32cbeb4e95814b2d74205dde9df19 Mon Sep 17 00:00:00 2001 From: Art4 Date: Thu, 10 Jan 2019 15:23:05 +0100 Subject: [PATCH 10/12] fix uuid, add docu --- .../pages/api/api_endpoint_object_comments.md | 119 +++++++++++++++++- errors.apib | 2 +- features/core/objects_comments.feature | 4 +- 3 files changed, 119 insertions(+), 6 deletions(-) diff --git a/docs/pages/api/api_endpoint_object_comments.md b/docs/pages/api/api_endpoint_object_comments.md index 5efe4d1..d8facb2 100644 --- a/docs/pages/api/api_endpoint_object_comments.md +++ b/docs/pages/api/api_endpoint_object_comments.md @@ -76,8 +76,8 @@ Content-Type: application/vnd.api+json }, "data": { - "type": "users", - "id": "1" + "type": "comments", + "id": "d5a5a2c3-041b-4985-907c-74a2131efc98" } } }, @@ -120,7 +120,120 @@ Es wird ein Array an [`Comments`][api_endpoint_comments] Resourcen mit all ihren ## Create -Du kannst mit diesem Endpoint nichts erstellen. +Du kannst mit diesem Endpoint einen neuen Comment zu einer Resource erstellen. Als Autor der Comments wird automatisch der User angenommen, der den Client über den Scope autorisiert hat. + +**Beispiel**: Einen Kommentar zu einem Post erstellen + +``` +POST https://api.youthweb.net/posts/d5a5a2c3-041b-4985-907c-74a2131efc98/comments +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 +Content-Type: application/vnd.api+json +Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs + +{ + "data": { + "type": "comments", + "attributes": { + "content": "Lorem ipsum dolor sit amet, sed libris elaboraret eu.", + } + } +} +``` + +### Permissions + +- **Schreibrechte**: Du benötigst ein [Access-Token][api_general_oauth2] mit [`post:write`][api_general_scopes] Scope, um im Namen eines Users einen Kommentar erstellen zu können. +- **Sonstiges**: Es kann sein, dass ein User das Erstellen von Kommentaren an seine Posts verbietet. In diesem Fall wird ein `403 Forbidden` Error zurückgegeben. + +### Felder + +Das `data`-Object muss folgende Felder enthalten + +| Name | Beschreibung | Typ | +|----------------------------------|------------------------------------------------------------------------------------|-----------------------| +| `type` | Der Resource Typ `comments` | `string` | +| `attributes.content` | Der Inhalt des Comments; darf nicht leer sein | `string` | + +### Parameter + +Für den Request können keine Parameter angegeben werden. + +### Response + +``` +Status: 201 Created +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 +Content-Type: application/vnd.api+json +Location: /comments/d5a5a2c3-041b-4985-907c-74a2131efc98 + +{ + "data": + { + "type": "comments", + "id": "345678", + "attributes": { + "content": "Lorem ipsum dolor sit amet, sed libris elaboraret eu.", + "created_at": "2019-01-01T20:00:00+00:00", + }, + "relationships": { + "author": + { + "links": + { + "self": "/comments/345678/relationships/author", + "related": "/comments/345678/author" + }, + "data": + { + "type": "users", + "id": "1" + } + }, + "parent": + { + "links": + { + "self": "/comments/345678/relationships/parent", + "related": "/comments/345678/parent" + }, + "data": + { + "type": "posts", + "id": "d5a5a2c3-041b-4985-907c-74a2131efc98" + } + } + }, + "links": { + "self": "/comments/345678" + } + }, + "included": + [ + { + "type": "users", + "id": "1", + "attributes": {}, + "links": + { + "self": "/users/123456" + } + }, + { + "type": "posts", + "id": "d5a5a2c3-041b-4985-907c-74a2131efc98", + "attributes": {}, + "links": + { + "self": "/posts/d5a5a2c3-041b-4985-907c-74a2131efc98" + } + } + ], + "links": + { + "self": "/posts/d5a5a2c3-041b-4985-907c-74a2131efc98/comments" + } +} +``` ## Delete diff --git a/errors.apib b/errors.apib index ce28283..f9cf99d 100644 --- a/errors.apib +++ b/errors.apib @@ -369,7 +369,7 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Attributes (Forbidden Error) -## Create Comment with content errors [/posts/25a5a2c3-041b-4985-907c-74a2131efc98/comments] +## Create Comment with content errors [/posts/d5a5a2c3-041b-4985-907c-74a2131efc98/comments] ### Create a comment with empty content [POST] + Request (application/vnd.api+json) diff --git a/features/core/objects_comments.feature b/features/core/objects_comments.feature index 333b3cd..2665f34 100644 --- a/features/core/objects_comments.feature +++ b/features/core/objects_comments.feature @@ -132,7 +132,7 @@ Scenario: Create a comment with empty content """ {"data":{"type":"comments","attributes":{"content":""}}} """ - When I request "POST /posts/25a5a2c3-041b-4985-907c-74a2131efc98/comments" + When I request "POST /posts/d5a5a2c3-041b-4985-907c-74a2131efc98/comments" Then I get a "400" response And the correct headers are set And the "errors" property exists @@ -151,7 +151,7 @@ Scenario: Create a comment with missing content """ {"data":{"type":"comments","attributes":{}}} """ - When I request "POST /posts/25a5a2c3-041b-4985-907c-74a2131efc98/comments" + When I request "POST /posts/d5a5a2c3-041b-4985-907c-74a2131efc98/comments" Then I get a "400" response And the correct headers are set And the "errors" property exists From 5282c95b8768693750100b23077316bac61708f9 Mon Sep 17 00:00:00 2001 From: Art4 Date: Thu, 10 Jan 2019 15:41:06 +0100 Subject: [PATCH 11/12] Create blogpost for release 0.14 --- docs/_posts/2017-06-04-Youthweb-API-0.9.md | 2 +- docs/_posts/2019-01-13-Youthweb-API-0.14.md | 112 ++++++++++++++++++++ 2 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 docs/_posts/2019-01-13-Youthweb-API-0.14.md diff --git a/docs/_posts/2017-06-04-Youthweb-API-0.9.md b/docs/_posts/2017-06-04-Youthweb-API-0.9.md index 76a3190..4908e21 100644 --- a/docs/_posts/2017-06-04-Youthweb-API-0.9.md +++ b/docs/_posts/2017-06-04-Youthweb-API-0.9.md @@ -8,7 +8,7 @@ summary: "Die neue Version der Youthweb-API erlaubt jetzt das Erstellen von Post ### Neu -- Es ist jetzt möglich, Posts an den Pinnwände von User zu erstellen +- Es ist jetzt möglich, [Posts an den Pinnwände von User zu erstellen](https://developer.youthweb.net/api_endpoint_object_posts.html#create) - Es gibt einen neuen Scope `post:write`, um im Namen eines Users Posts an Pinnwänden erstellen zu dürfen. Dieser Scope beinhaltet auch `post:read`. ## Beispiele diff --git a/docs/_posts/2019-01-13-Youthweb-API-0.14.md b/docs/_posts/2019-01-13-Youthweb-API-0.14.md new file mode 100644 index 0000000..fe7e3bc --- /dev/null +++ b/docs/_posts/2019-01-13-Youthweb-API-0.14.md @@ -0,0 +1,112 @@ +--- +title: "Youthweb-API 0.14 erlaubt das Erstellen von Kommentarn zu Posts" +categories: API +tags: [api, release] +summary: "Die neue Version der Youthweb-API erlaubt jetzt das Erstellen von Comments-Resourcen zu Posts-Resource." +--- +## Changelog + +### Neu + +- Es ist jetzt möglich, [Kommentare zu einem Post zu erstellen](https://developer.youthweb.net/api_endpoint_object_comments.html#create) + +## Beispiele + +### Einen Kommentar zu einem Post erstellen + +**Request** + +``` +POST https://api.youthweb.net/posts/d5a5a2c3-041b-4985-907c-74a2131efc98/comments +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 +Content-Type: application/vnd.api+json +Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs + +{ + "data": { + "type": "comments", + "attributes": { + "content": "Lorem ipsum dolor sit amet, sed libris elaboraret eu.", + } + } +} +``` + +**Response** + +``` +Status: 201 Created +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.14 +Content-Type: application/vnd.api+json +Location: /comments/d5a5a2c3-041b-4985-907c-74a2131efc98 + +{ + "data": + { + "type": "comments", + "id": "345678", + "attributes": { + "content": "Lorem ipsum dolor sit amet, sed libris elaboraret eu.", + "created_at": "2019-01-01T20:00:00+00:00", + }, + "relationships": { + "author": + { + "links": + { + "self": "/comments/345678/relationships/author", + "related": "/comments/345678/author" + }, + "data": + { + "type": "users", + "id": "1" + } + }, + "parent": + { + "links": + { + "self": "/comments/345678/relationships/parent", + "related": "/comments/345678/parent" + }, + "data": + { + "type": "posts", + "id": "d5a5a2c3-041b-4985-907c-74a2131efc98" + } + } + }, + "links": { + "self": "/comments/345678" + } + }, + "included": + [ + { + "type": "users", + "id": "1", + "attributes": {}, + "links": + { + "self": "/users/123456" + } + }, + { + "type": "posts", + "id": "d5a5a2c3-041b-4985-907c-74a2131efc98", + "attributes": {}, + "links": + { + "self": "/posts/d5a5a2c3-041b-4985-907c-74a2131efc98" + } + } + ], + "links": + { + "self": "/posts/d5a5a2c3-041b-4985-907c-74a2131efc98/comments" + } +} +``` + +{% include links.html %} From f9d222febaeb3322c2f7773641c2d819370eb251 Mon Sep 17 00:00:00 2001 From: Art4 Date: Thu, 10 Jan 2019 23:42:26 +0100 Subject: [PATCH 12/12] fix tests --- apiary.apib | 2 +- errors.apib | 6 +++--- features/core/objects_comments.feature | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apiary.apib b/apiary.apib index 51ec4a2..a738412 100644 --- a/apiary.apib +++ b/apiary.apib @@ -663,7 +663,7 @@ Ein Post Objekt hat die folgenden Attribute + data (object) + type: `comments` (string) + attributes (object) - + `content`: ` ` (string) - Der Comment-Inhalt + + `content`: (string) - Der Comment-Inhalt + Response 400 (application/vnd.api+json) diff --git a/errors.apib b/errors.apib index f9cf99d..4ec1bbb 100644 --- a/errors.apib +++ b/errors.apib @@ -287,7 +287,7 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + type: `posts` (string) + attributes (object) + `title`: `The post title` (string) - Der Title, kann auch leer sein - + `content`: `` (string) - Der Post-Inhalt + + `content`: (string) - Der Post-Inhalt + `view_allowed_for`: `users` (string) - Wer kann diesen Post sehen? (`all`, `users`, `friends` oder `authors`) + `comments_allowed`: true (boolean) - Kann dieser Post kommentiert werden? @@ -369,7 +369,7 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + Attributes (Forbidden Error) -## Create Comment with content errors [/posts/d5a5a2c3-041b-4985-907c-74a2131efc98/comments] +## Create Comment with content errors [/posts/25a5a2c3-041b-4985-907c-74a2131efc98/comments] ### Create a comment with empty content [POST] + Request (application/vnd.api+json) @@ -383,7 +383,7 @@ Hier werden Fehler und Fehlermeldungen der API getestet. + data (object) + type: `comments` (string) + attributes (object) - + `content`: `` (string) - Der Comment-Inhalt + + `content`: (string) - Der Comment-Inhalt + Response 400 (application/vnd.api+json) diff --git a/features/core/objects_comments.feature b/features/core/objects_comments.feature index 2665f34..333b3cd 100644 --- a/features/core/objects_comments.feature +++ b/features/core/objects_comments.feature @@ -132,7 +132,7 @@ Scenario: Create a comment with empty content """ {"data":{"type":"comments","attributes":{"content":""}}} """ - When I request "POST /posts/d5a5a2c3-041b-4985-907c-74a2131efc98/comments" + When I request "POST /posts/25a5a2c3-041b-4985-907c-74a2131efc98/comments" Then I get a "400" response And the correct headers are set And the "errors" property exists @@ -151,7 +151,7 @@ Scenario: Create a comment with missing content """ {"data":{"type":"comments","attributes":{}}} """ - When I request "POST /posts/d5a5a2c3-041b-4985-907c-74a2131efc98/comments" + When I request "POST /posts/25a5a2c3-041b-4985-907c-74a2131efc98/comments" Then I get a "400" response And the correct headers are set And the "errors" property exists