jonnybarnes.uk/app/Services/PlaceService.php
Jonny Barnes 2546a92039 Squashed commit of the following:
commit fa51cd728fbb13ebadfc45d90dc24c284a31f4ae
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Sat Oct 1 14:25:50 2016 +0100

    Update changelog

commit 93e6a92c664cb42da679c5bb2e37cabec0e7fb99
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Sat Oct 1 14:25:00 2016 +0100

    test create new place with uncertainty parameter

commit 3d793801b3c0e93228ce5c6bae83c74b130127c0
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Sat Oct 1 14:24:35 2016 +0100

    Parse correctly to take into account uncertainty parameter

commit d9060332a484ff414ed4dac03fa39838d7b73b54
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Sat Oct 1 11:11:56 2016 +0100

    Better comments

commit 298663cf7beaf4893d326aae880d64279ce4af37
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Fri Sep 30 22:59:08 2016 +0100

    Allow tagged notes to be deleted, didn’t know that wasn’t possible before :/

commit 7f5c65c6d858321526b7f0ac84c527dc2f09614a
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Fri Sep 30 22:57:57 2016 +0100

    Better test for creating a new note via mircropub, the new note gets deleted
2016-10-01 14:26:07 +01:00

49 lines
1.4 KiB
PHP

<?php
namespace App\Services;
use App\Place;
use Illuminate\Http\Request;
use Phaza\LaravelPostgis\Geometries\Point;
class PlaceService
{
/**
* Create a place.
*
* @param \Illuminate\Http\Request $request
* @return \App\Place
*/
public function createPlace(Request $request)
{
if ($request->header('Content-Type') == 'application/json') {
$name = $request->input('properties.name');
$description = $request->input('properties.description') ?? null;
$geo = $request->input('properties.geo');
} else {
$name = $request->input('name');
$description = $request->input('description');
$geo = $request->input('geo');
}
if ($geo) {
preg_match_all(
'/([0-9\.\-]+)/',
$geo,
$matches
);
$latitude = $matches[0][0];
$longitude = $matches[0][1];
}
if ($request->input('latitude') !== null) {
$latitude = $request->input('latitude');
$longitude = $request->input('longitude');
}
$place = new Place();
$place->name = $name;
$place->description = $description;
$place->location = new Point((float) $latitude, (float) $longitude);
$place->save();
return $place;
}
}