Refactor method names/views for the Micropub Client
This commit is contained in:
parent
4af305ba3b
commit
e032cd5861
3 changed files with 16 additions and 22 deletions
|
|
@ -36,15 +36,12 @@ class MicropubClientController extends Controller
|
|||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\View\Factory view
|
||||
*/
|
||||
public function newNotePage(Request $request)
|
||||
public function create(Request $request)
|
||||
{
|
||||
$url = $request->session()->get('me');
|
||||
$syndication = $request->session()->get('syndication');
|
||||
|
||||
return view('micropubnewnotepage', [
|
||||
'url' => $url,
|
||||
'syndication' => $syndication,
|
||||
]);
|
||||
return view('micropub.create', compact('url', 'syndication'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -55,7 +52,7 @@ class MicropubClientController extends Controller
|
|||
* @param \Illuminate\Http\Request $request
|
||||
* @return mixed
|
||||
*/
|
||||
public function postNewNote(Request $request)
|
||||
public function store(Request $request)
|
||||
{
|
||||
$domain = $request->session()->get('me');
|
||||
$token = $request->session()->get('token');
|
||||
|
|
@ -65,7 +62,7 @@ class MicropubClientController extends Controller
|
|||
$this->indieClient
|
||||
);
|
||||
if (! $micropubEndpoint) {
|
||||
return redirect('notes/new')->withErrors('Unable to determine micropub API endpoint', 'endpoint');
|
||||
return redirect(route('micropub-client'))->withErrors('Unable to determine micropub API endpoint', 'endpoint');
|
||||
}
|
||||
|
||||
$response = $this->postNoteRequest($request, $micropubEndpoint, $token);
|
||||
|
|
@ -79,7 +76,7 @@ class MicropubClientController extends Controller
|
|||
return redirect($location);
|
||||
}
|
||||
|
||||
return redirect('notes/new')->withErrors('Endpoint didn’t create the note.', 'endpoint');
|
||||
return redirect(route('micropub-client'))->withErrors('Endpoint didn’t create the note.', 'endpoint');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -99,9 +96,8 @@ class MicropubClientController extends Controller
|
|||
$domain = $request->session()->get('me');
|
||||
$token = $request->session()->get('token');
|
||||
$micropubEndpoint = $this->indieAuthService->discoverMicropubEndpoint($domain, $this->indieClient);
|
||||
|
||||
if (! $micropubEndpoint) {
|
||||
return redirect('notes/new')->withErrors('Unable to determine micropub API endpoint', 'endpoint');
|
||||
return redirect(route('micropub-client'))->withErrors('Unable to determine micropub API endpoint', 'endpoint');
|
||||
}
|
||||
|
||||
try {
|
||||
|
|
@ -110,14 +106,14 @@ class MicropubClientController extends Controller
|
|||
'query' => ['q' => 'syndicate-to'],
|
||||
]);
|
||||
} catch (\GuzzleHttp\Exception\BadResponseException $e) {
|
||||
return redirect('notes/new')->withErrors('Bad response when refreshing syndication targets', 'endpoint');
|
||||
return redirect(route('micropub-client'))->withErrors('Bad response when refreshing syndication targets', 'endpoint');
|
||||
}
|
||||
$body = (string) $response->getBody();
|
||||
$syndication = $this->parseSyndicationTargets($body);
|
||||
|
||||
$request->session()->put('syndication', $syndication);
|
||||
|
||||
return redirect('notes/new');
|
||||
return redirect(route('micropub-client'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -184,7 +180,7 @@ class MicropubClientController extends Controller
|
|||
'headers' => $headers,
|
||||
]);
|
||||
} catch (\GuzzleHttp\Exception\BadResponseException $e) {
|
||||
return redirect('notes/new')
|
||||
return redirect(route('micropub-client'))
|
||||
->withErrors('There was a bad response from the micropub endpoint.', 'endpoint');
|
||||
}
|
||||
|
||||
|
|
|
|||
42
resources/views/micropub/create.blade.php
Normal file
42
resources/views/micropub/create.blade.php
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
@extends('master')
|
||||
|
||||
@section('title')
|
||||
New Note «
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
<p>This is my UI for posting new notes, hopefully you’ll soon be able to use this if your site supports the micropub API.</p>
|
||||
@if($errors->endpoint->first() != '')
|
||||
<p class="error">{{ $errors->endpoint->first() }}</p>
|
||||
@endif
|
||||
@if($errors->indieauth->first() != '')
|
||||
<p class="error">{{ $errors->indieauth->first() }}</p>
|
||||
@endif
|
||||
@if($url === null)
|
||||
<form action="/beginauth" method="post" id="login">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}">
|
||||
<fieldset>
|
||||
<legend>IndieAuth</legend>
|
||||
<label for="indie_auth_url" accesskey="a">Web Address: </label><input type="text" name="me" id="indie_auth_url" placeholder="yourdomain.com">
|
||||
<label for="kludge"></label><button type="submit" name="sign-in" id="sign-in" value="Sign in">Sign in</button>
|
||||
</fieldset>
|
||||
</form>
|
||||
@else
|
||||
<p>You are authenticated as <code>{{ $url }}</code>, <a href="/logout">log out</a>.</p>
|
||||
@endif
|
||||
@include('templates.new-note-form', [
|
||||
'micropub' => true,
|
||||
'action' => route('micropub-client-post')
|
||||
])
|
||||
@stop
|
||||
|
||||
@section('scripts')
|
||||
<script>
|
||||
window.Promise || document.write('<script src="https://unpkg.com/promise-polyfill/promise.min.js"><\/script>');
|
||||
window.fetch || document.write('<script src="https://unpkg.com/whatwg-fetch/fetch.js"><\/script>');
|
||||
</script>
|
||||
<script defer src="/assets/js/newnote.js"></script>
|
||||
|
||||
<link rel="stylesheet" href="/assets/frontend/alertify.css">
|
||||
<link rel="stylesheet" href="/assets/frontend/mapbox-gl.css">
|
||||
@stop
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
*/
|
||||
|
||||
Route::group(['domain' => config('url.longurl')], function () {
|
||||
Route::get('/', 'NotesController@showNotes');
|
||||
Route::get('/', 'NotesController@index');
|
||||
|
||||
//Static project page
|
||||
Route::get('projects', function () {
|
||||
|
|
@ -89,8 +89,7 @@ Route::group(['domain' => config('url.longurl')], function () {
|
|||
|
||||
//micropub new notes page
|
||||
//this needs to be first so `notes/new` doesn't match `notes/{id}`
|
||||
Route::get('notes/new', 'MicropubClientController@newNotePage');
|
||||
Route::post('notes/new', 'MicropubClientController@postNewNote');
|
||||
|
||||
|
||||
//Notes pages using NotesController
|
||||
Route::get('notes', 'NotesController@index');
|
||||
|
|
@ -104,10 +103,11 @@ Route::group(['domain' => config('url.longurl')], function () {
|
|||
Route::post('api/token', 'IndieAuthController@tokenEndpoint');
|
||||
Route::get('logout', 'IndieAuthController@indieauthLogout');
|
||||
|
||||
//micropub endoints
|
||||
Route::post('api/post', 'MicropubController@post');
|
||||
// Micropub
|
||||
Route::get('micropub/create', 'MicropubClientController@create')->name('micropub-client');
|
||||
Route::post('micropub', 'MicropubClientController@store')->name('micropub-client-post');
|
||||
Route::get('api/post', 'MicropubController@getEndpoint');
|
||||
|
||||
Route::post('api/post', 'MicropubController@post');
|
||||
//micropub refresh syndication targets
|
||||
Route::get('refresh-syndication-targets', 'MicropubClientController@refreshSyndicationTargets');
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue