1
1
Fork 0
mirror of https://code.mensbeam.com/MensBeam/Arsse.git synced 2024-12-22 21:22:40 +00:00

Ensure the request method is always uppercased

This commit is contained in:
J. King 2018-01-08 17:11:38 -05:00
parent 4b53c5e8b3
commit 0ec0a5b085
3 changed files with 8 additions and 5 deletions

View file

@ -41,12 +41,13 @@ class REST {
// Google Reader http://feedhq.readthedocs.io/en/latest/api/index.html // Google Reader http://feedhq.readthedocs.io/en/latest/api/index.html
// Fever https://feedafever.com/api // Fever https://feedafever.com/api
// Feedbin v2 https://github.com/feedbin/feedbin-api // Feedbin v2 https://github.com/feedbin/feedbin-api
// Feedbin v1 https://github.com/feedbin/feedbin-api/commit/86da10aac5f1a57531a6e17b08744e5f9e7db8a9
// Miniflux https://github.com/miniflux/miniflux/blob/master/docs/json-rpc-api.markdown
// CommaFeed https://www.commafeed.com/api/ // CommaFeed https://www.commafeed.com/api/
// Unclear if clients exist:
// Miniflux https://github.com/miniflux/miniflux/blob/master/docs/json-rpc-api.markdown
// NextCloud News v2 https://github.com/nextcloud/news/blob/master/docs/externalapi/External-Api.md // NextCloud News v2 https://github.com/nextcloud/news/blob/master/docs/externalapi/External-Api.md
// Selfoss https://github.com/SSilence/selfoss/wiki/Restful-API-for-Apps-or-any-other-external-access // Selfoss https://github.com/SSilence/selfoss/wiki/Restful-API-for-Apps-or-any-other-external-access
// BirdReader https://github.com/glynnbird/birdreader/blob/master/API.md // BirdReader https://github.com/glynnbird/birdreader/blob/master/API.md
// Feedbin v1 https://github.com/feedbin/feedbin-api/commit/86da10aac5f1a57531a6e17b08744e5f9e7db8a9
// Proprietary (centralized) entities: // Proprietary (centralized) entities:
// NewsBlur http://www.newsblur.com/api // NewsBlur http://www.newsblur.com/api
// Feedly https://developer.feedly.com/ // Feedly https://developer.feedly.com/
@ -63,8 +64,8 @@ class REST {
// find the API to handle // find the API to handle
try { try {
list ($api, $target, $class) = $this->apiMatch($req->getRequestTarget(), $this->apis); list ($api, $target, $class) = $this->apiMatch($req->getRequestTarget(), $this->apis);
// modify the request to have a stripped target // modify the request to have an uppercase method and a stripped target
$req = $req->withRequestTarget($target); $req = $req->withMethod(strtoupper($req->getMethod()))->withRequestTarget($target);
// fetch the correct handler // fetch the correct handler
$drv = $this->getHandler($class); $drv = $this->getHandler($class);
// generate a response // generate a response

View file

@ -120,6 +120,8 @@ class TestREST extends \JKingWeb\Arsse\Test\AbstractTest {
return [ return [
[new ServerRequest([], [], "/index.php/apps/news/api/v1-2/feeds", "GET"), "GET", true, NCN::Class, "/feeds"], [new ServerRequest([], [], "/index.php/apps/news/api/v1-2/feeds", "GET"), "GET", true, NCN::Class, "/feeds"],
[new ServerRequest([], [], "/index.php/apps/news/api/v1-2/feeds", "HEAD"), "GET", true, NCN::Class, "/feeds"], [new ServerRequest([], [], "/index.php/apps/news/api/v1-2/feeds", "HEAD"), "GET", true, NCN::Class, "/feeds"],
[new ServerRequest([], [], "/index.php/apps/news/api/v1-2/feeds", "get"), "GET", true, NCN::Class, "/feeds"],
[new ServerRequest([], [], "/index.php/apps/news/api/v1-2/feeds", "head"), "GET", true, NCN::Class, "/feeds"],
[new ServerRequest([], [], "/tt-rss/api/", "POST"), "POST", true, TTRSS::Class, "/"], [new ServerRequest([], [], "/tt-rss/api/", "POST"), "POST", true, TTRSS::Class, "/"],
[new ServerRequest([], [], "/no/such/api/", "HEAD"), "GET", false], [new ServerRequest([], [], "/no/such/api/", "HEAD"), "GET", false],
[new ServerRequest([], [], "/no/such/api/", "GET"), "GET", false], [new ServerRequest([], [], "/no/such/api/", "GET"), "GET", false],