Squashed commit of the following:

commit e7f1c4c84579b959fe2997ff4d2315ee53acfe9a
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Thu Sep 29 11:22:44 2016 +0100

    Add latest change, fix spelling errors in rest of changelog

commit 637b5107b557f1c2a56327a40b3d7b4b7297fa29
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Wed Sep 28 21:13:06 2016 +0100

    Add a test for uncertainty parameter

commit 5e7504b323debf9c91e0cca428b4dca7dda0789d
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Wed Sep 28 21:11:12 2016 +0100

    Format the ternaty operator correctly

commit 19c978a5ac59cd7dfdceee9a8f1aaa6539d8ac66
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Wed Sep 28 20:46:19 2016 +0100

    Fix typo

commit d4e5b5fc384d0ccd715ea28a51821f958f6c2caa
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Wed Sep 28 20:41:23 2016 +0100

    Add paraphanalia

commit a96f104894de6c06dc5e41044482de2355cb4965
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Wed Sep 28 20:35:17 2016 +0100

    Add the geolocation uncertainty to nearby places request

commit 0f6d5649e2f3316040d7453f5fcc96ac1f0ac783
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Wed Sep 28 20:34:38 2016 +0100

    Use a query parameter for geolocation uncertainty

commit a9147a074315fabb0d76e5991b34a70b2143761c
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Wed Sep 28 19:58:08 2016 +0100

    Make use of uncertainty parameter when finding nearby places

commit bad384b5d8be3ea8905d8f6ca3c20f448869853d
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Wed Sep 28 19:28:42 2016 +0100

    Support sending uncertainty value to micropub endpoint
This commit is contained in:
Jonny Barnes 2016-09-29 11:28:31 +01:00
parent 4e69a4d55c
commit 2c6b9df97a
9 changed files with 39 additions and 24 deletions

View file

@ -307,9 +307,13 @@ class MicropubClientController extends Controller
} }
try { try {
$query = 'geo:' . $latitude . ',' . $longitude;
if ($request->input('uncertainty') !== null) {
$query .= ';u=' . $request->input('uncertainty');
}
$response = $this->guzzleClient->get($micropubEndpoint, [ $response = $this->guzzleClient->get($micropubEndpoint, [
'headers' => ['Authorization' => 'Bearer ' . $token], 'headers' => ['Authorization' => 'Bearer ' . $token],
'query' => ['q' => 'geo:' . $latitude . ',' . $longitude], 'query' => ['q' => $query],
]); ]);
} catch (\GuzzleHttp\Exception\BadResponseException $e) { } catch (\GuzzleHttp\Exception\BadResponseException $e) {
return response()->json([ return response()->json([

View file

@ -147,11 +147,13 @@ EOD;
} }
//nope, how about a geo URL? //nope, how about a geo URL?
if (substr($request->input('q'), 0, 4) === 'geo:') { if (substr($request->input('q'), 0, 4) === 'geo:') {
$geo = explode(':', $request->input('q')); preg_match_all(
$latlng = explode(',', $geo[1]); '/([0-9\.\-]+)/',
$latitude = $latlng[0]; $request->input('q'),
$longitude = $latlng[1]; $matches
$places = Place::near($latitude, $longitude, 1000); );
$distance = (count($matches[0]) == 3) ? 100 * $matches[0][2] : 1000;
$places = Place::near($matches[0][0], $matches[0][1], $distance);
return response()->json([ return response()->json([
'response' => 'places', 'response' => 'places',

View file

@ -1,9 +1,12 @@
# Changelog # Changelog
## Version {next}
- Add support for accuracy/uncertainty in geo URIs (issue#20,issue#9)
## Version 0.0.13 (2016-09-26) ## Version 0.0.13 (2016-09-26)
- Better places support, particularly with micropub (issue#9) - Better places support, particularly with micropub (issue#9)
- Uglify js for better performance (issue#19) - Uglify javascript for better performance (issue#19)
- Autolink spotify links (issue#18) - Auto-link Spotify links (issue#18)
## Version 0.0.12 (2016-09-21) ## Version 0.0.12 (2016-09-21)
- Better indication of number of replies to a note (issue#17) - Better indication of number of replies to a note (issue#17)
@ -32,7 +35,7 @@
- Better handling of webmention reply HTML cache - Better handling of webmention reply HTML cache
## Version 0.0.11.2 (2016-09-19) ## Version 0.0.11.2 (2016-09-19)
- Update Typekits js sri hash - Update Typekits javascript sri hash
## Version 0.0.11.1 (2016-09-17) ## Version 0.0.11.1 (2016-09-17)
- Fix a syntax issue in the download webmention job - Fix a syntax issue in the download webmention job
@ -40,13 +43,13 @@
## Version 0.0.11 (2016-09-17) ## Version 0.0.11 (2016-09-17)
- update linked GPG key (issue#7) - update linked GPG key (issue#7)
- Added `integrity` values to external assets (issue#10) - Added `integrity` values to external assets (issue#10)
- Move mapbox links into own sub-view (issue#11) - Move Mapbox links into own sub-view (issue#11)
- Updated mapbox version (issue#12) - Updated Mapbox version (issue#12)
- Massive refactor of webmention code, allowing for re-parse command (issue#8) - Massive refactor of webmention code, allowing for re-parse command (issue#8)
- Add license file (issue#13) - Add license file (issue#13)
## Version 0.0.10 (2016-09-10) ## Version 0.0.10 (2016-09-10)
- Add an artisan command for sensiolabs security check - Add an artisan command for Sensiolabs security check
- Remove `filp/whoops`, just use Laravels error reporting - Remove `filp/whoops`, just use Laravels error reporting
- Better TokenMismatchException handling (issue#5) - Better TokenMismatchException handling (issue#5)
@ -59,27 +62,27 @@
- Fix an issue with syndicating notes. - Fix an issue with syndicating notes.
## Version 0.0.9 (2016-09-06) ## Version 0.0.9 (2016-09-06)
- Adding jsonb column to store webmentions mf2. - Adding `jsonb` column to store webmentions microformats.
* As of L5.2 this needs a custom command to drop NOT NULL from content, L5.3 should allow a fix for this * As of L5.2 this needs a custom command to drop NOT NULL from content, L5.3 should allow a fix for this
- Refactor receiving webmention code - Refactor receiving webmention code
- Refactor sending webmention code to pass webmention.rocks - Refactor sending webmention code to pass `webmention.rocks`
- Update to use Laravel 5.3 - Update to use Laravel 5.3
## Version 0.0.8.5 (2016-07-18) ## Version 0.0.8.5 (2016-07-18)
- Set the size of the textarea in a form better - Set the size of the `textarea` in a form better
- Update to latest Guzzle to fix CVE-2016-5385 - Update to latest Guzzle to fix CVE-2016-5385
## Version 0.0.8.4 (2016-07-18) ## Version 0.0.8.4 (2016-07-18)
- Make the revised non-elixir asset links absolute - Make the revised non-elixir asset links absolute
## Version 0.0.8.3 (2016-07-18) ## Version 0.0.8.3 (2016-07-18)
- Dump laravel-elixir, use gulp natively. Also this means using nginx and etags for cache-busting - Dump `laravel-elixir`, use gulp natively. Also this means using nginx and etags for cache-busting
## Version 0.0.8.2 (2016-07-15) ## Version 0.0.8.2 (2016-07-15)
- Improve syndication parsing to allow better name display on new note form - Improve syndication parsing to allow better name display on new note form
## Version 0.0.8.1 (2016-07-13) ## Version 0.0.8.1 (2016-07-13)
- Fix anh issue in the syndication target parsing method - Fix an issue in the syndication target parsing method
## Version 0.0.8 (2016-07-13) ## Version 0.0.8 (2016-07-13)
- Allow new notes to be made by a JSON request from a micropub client - Allow new notes to be made by a JSON request from a micropub client
@ -116,11 +119,11 @@
- Add a stylelint lint-staged hook - Add a stylelint lint-staged hook
## Version 0.0.3 (2013-06-09) ## Version 0.0.3 (2013-06-09)
- Better tag normalization code organisation - Better tag normalisation code organisation
- Remove `jonnybarnes/unicode-tools` dependency and clean up relevant code - Remove `jonnybarnes/unicode-tools` dependency and clean up relevant code
## Version 0.0.2 (2016-05-25) ## Version 0.0.2 (2016-05-25)
- Fix issue#1: tagged notes page needs the tag from the URL normalizing. - Fix issue#1: tagged notes page needs the tag from the URL normalising.
## Version 0.0.1 (2016-05-25) ## Version 0.0.1 (2016-05-25)
- Initial release - Initial release

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

View file

@ -12,13 +12,13 @@ if ('geolocation' in navigator) {
function getLocation() { function getLocation() {
navigator.geolocation.getCurrentPosition(function (position) { navigator.geolocation.getCurrentPosition(function (position) {
//the locate button has been clicked so add the places/map //the locate button has been clicked so add the places/map
addPlacesMap(position.coords.latitude, position.coords.longitude); addPlacesMap(position.coords.latitude, position.coords.longitude, position.coords.accuracy);
}); });
} }
function addPlacesMap(latitude, longitude) { function addPlacesMap(latitude, longitude, uncertainty) {
//get the nearby places //get the nearby places
fetch('/places/near/' + latitude + '/' + longitude, { fetch('/places/near/' + latitude + '/' + longitude + '?' + uncertainty, {
credentials: 'same-origin', credentials: 'same-origin',
method: 'get' method: 'get'
}).then(function (response) { }).then(function (response) {

View file

@ -53,6 +53,12 @@ class MicropubTest extends TestCase
$this->see('the-bridgewater-pub'); $this->see('the-bridgewater-pub');
} }
public function testMicropubRequestForNearbyPlacesThatExistWithUncertaintyParameter()
{
$this->call('GET', $this->appurl . '/api/post', ['q' => 'geo:53.5,-2.38;u=35'], [], [], ['HTTP_Authorization' => 'Bearer ' . $this->getToken()]);
$this->see('the-bridgewater-pub');
}
public function testMicropubRequestForNearbyPlacesThatDoNotExist() public function testMicropubRequestForNearbyPlacesThatDoNotExist()
{ {
$this->call('GET', $this->appurl . '/api/post', ['q' => 'geo:1.23,4.56'], [], [], ['HTTP_Authorization' => 'Bearer ' . $this->getToken()]); $this->call('GET', $this->appurl . '/api/post', ['q' => 'geo:1.23,4.56'], [], [], ['HTTP_Authorization' => 'Bearer ' . $this->getToken()]);