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
|
* @param \Illuminate\Http\Request $request
|
||||||
* @return \Illuminate\View\Factory view
|
* @return \Illuminate\View\Factory view
|
||||||
*/
|
*/
|
||||||
public function newNotePage(Request $request)
|
public function create(Request $request)
|
||||||
{
|
{
|
||||||
$url = $request->session()->get('me');
|
$url = $request->session()->get('me');
|
||||||
$syndication = $request->session()->get('syndication');
|
$syndication = $request->session()->get('syndication');
|
||||||
|
|
||||||
return view('micropubnewnotepage', [
|
return view('micropub.create', compact('url', 'syndication'));
|
||||||
'url' => $url,
|
|
||||||
'syndication' => $syndication,
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -55,7 +52,7 @@ class MicropubClientController extends Controller
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param \Illuminate\Http\Request $request
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function postNewNote(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
$domain = $request->session()->get('me');
|
$domain = $request->session()->get('me');
|
||||||
$token = $request->session()->get('token');
|
$token = $request->session()->get('token');
|
||||||
|
|
@ -65,7 +62,7 @@ class MicropubClientController extends Controller
|
||||||
$this->indieClient
|
$this->indieClient
|
||||||
);
|
);
|
||||||
if (! $micropubEndpoint) {
|
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);
|
$response = $this->postNoteRequest($request, $micropubEndpoint, $token);
|
||||||
|
|
@ -79,7 +76,7 @@ class MicropubClientController extends Controller
|
||||||
return redirect($location);
|
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');
|
$domain = $request->session()->get('me');
|
||||||
$token = $request->session()->get('token');
|
$token = $request->session()->get('token');
|
||||||
$micropubEndpoint = $this->indieAuthService->discoverMicropubEndpoint($domain, $this->indieClient);
|
$micropubEndpoint = $this->indieAuthService->discoverMicropubEndpoint($domain, $this->indieClient);
|
||||||
|
|
||||||
if (! $micropubEndpoint) {
|
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 {
|
try {
|
||||||
|
|
@ -110,14 +106,14 @@ class MicropubClientController extends Controller
|
||||||
'query' => ['q' => 'syndicate-to'],
|
'query' => ['q' => 'syndicate-to'],
|
||||||
]);
|
]);
|
||||||
} catch (\GuzzleHttp\Exception\BadResponseException $e) {
|
} 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();
|
$body = (string) $response->getBody();
|
||||||
$syndication = $this->parseSyndicationTargets($body);
|
$syndication = $this->parseSyndicationTargets($body);
|
||||||
|
|
||||||
$request->session()->put('syndication', $syndication);
|
$request->session()->put('syndication', $syndication);
|
||||||
|
|
||||||
return redirect('notes/new');
|
return redirect(route('micropub-client'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -184,7 +180,7 @@ class MicropubClientController extends Controller
|
||||||
'headers' => $headers,
|
'headers' => $headers,
|
||||||
]);
|
]);
|
||||||
} catch (\GuzzleHttp\Exception\BadResponseException $e) {
|
} 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');
|
->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::group(['domain' => config('url.longurl')], function () {
|
||||||
Route::get('/', 'NotesController@showNotes');
|
Route::get('/', 'NotesController@index');
|
||||||
|
|
||||||
//Static project page
|
//Static project page
|
||||||
Route::get('projects', function () {
|
Route::get('projects', function () {
|
||||||
|
|
@ -89,8 +89,7 @@ Route::group(['domain' => config('url.longurl')], function () {
|
||||||
|
|
||||||
//micropub new notes page
|
//micropub new notes page
|
||||||
//this needs to be first so `notes/new` doesn't match `notes/{id}`
|
//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
|
//Notes pages using NotesController
|
||||||
Route::get('notes', 'NotesController@index');
|
Route::get('notes', 'NotesController@index');
|
||||||
|
|
@ -104,10 +103,11 @@ Route::group(['domain' => config('url.longurl')], function () {
|
||||||
Route::post('api/token', 'IndieAuthController@tokenEndpoint');
|
Route::post('api/token', 'IndieAuthController@tokenEndpoint');
|
||||||
Route::get('logout', 'IndieAuthController@indieauthLogout');
|
Route::get('logout', 'IndieAuthController@indieauthLogout');
|
||||||
|
|
||||||
//micropub endoints
|
// Micropub
|
||||||
Route::post('api/post', 'MicropubController@post');
|
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::get('api/post', 'MicropubController@getEndpoint');
|
||||||
|
Route::post('api/post', 'MicropubController@post');
|
||||||
//micropub refresh syndication targets
|
//micropub refresh syndication targets
|
||||||
Route::get('refresh-syndication-targets', 'MicropubClientController@refreshSyndicationTargets');
|
Route::get('refresh-syndication-targets', 'MicropubClientController@refreshSyndicationTargets');
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue