From 21cd7186049415ab0ad30d6acb91556a808cf406 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Tue, 7 Mar 2017 18:47:29 +0000 Subject: [PATCH] Add a media endpoint route --- app/Http/Controllers/MicropubController.php | 38 +++++++++++++++++++++ routes/web.php | 1 + 2 files changed, 39 insertions(+) diff --git a/app/Http/Controllers/MicropubController.php b/app/Http/Controllers/MicropubController.php index a110bc65..7c78111f 100644 --- a/app/Http/Controllers/MicropubController.php +++ b/app/Http/Controllers/MicropubController.php @@ -225,4 +225,42 @@ class MicropubController extends Controller 'error_description' => 'No token provided with request', ], 400); } + + /** + * Process a media item posted to the media endpoint. + * + * @param Illuminate\Http\Request $request + * @return Illuminate\Http\Response + */ + public function media(Request $request) + { + //can this go in middleware + $httpAuth = $request->header('Authorization'); + if (preg_match('/Bearer (.+)/', $httpAuth, $match)) { + $token = $match[1]; + $valid = $this->tokenService->validateToken($token); + + if ($valid === null) { + return response()->json([ + 'response' => 'error', + 'error' => 'invalid_token', + 'error_description' => 'The provided token did not pass validation', + ], 400); + } + + //check post scope + + //check media valid + + //save media + + //return URL for media + } + + return response()->json([ + 'response' => 'error', + 'error' => 'no_token', + 'error_description' => 'There was no token provided with the request' + ], 400); + } } diff --git a/routes/web.php b/routes/web.php index 4b36bc18..a8268e27 100644 --- a/routes/web.php +++ b/routes/web.php @@ -115,6 +115,7 @@ Route::group(['domain' => config('url.longurl')], function () { // Micropub Endpoint Route::get('api/post', 'MicropubController@get'); Route::post('api/post', 'MicropubController@post'); + Route::post('api/media', 'MicropubController@media'); //webmention Route::get('webmention', 'WebMentionsController@get');