feat: add the concept of places (#2169)

This commit is contained in:
Régis Freyd
2018-12-20 22:23:19 -05:00
committed by GitHub
parent 68acee6c9d
commit 731a6f0643
44 changed files with 1811 additions and 597 deletions
@@ -2,6 +2,7 @@
namespace App\Http\Controllers\Contacts;
use Illuminate\Http\Request;
use App\Helpers\LocaleHelper;
use App\Models\Contact\Address;
use App\Models\Contact\Contact;
@@ -9,7 +10,9 @@ use App\Helpers\CountriesHelper;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Cache;
use App\Http\Requests\People\AddressesRequest;
use App\Services\Contact\Address\CreateAddress;
use App\Services\Contact\Address\UpdateAddress;
use App\Services\Contact\Address\DestroyAddress;
class AddressesController extends Controller
{
@@ -21,20 +24,21 @@ class AddressesController extends Controller
$contactAddresses = collect([]);
foreach ($contact->addresses as $address) {
$place = $address->place;
$data = [
'id' => $address->id,
'name' => $address->name,
'googleMapAddress' => $address->getGoogleMapAddress(),
'googleMapAddressLatitude' => $address->getGoogleMapsAddressWithLatitude(),
'address' => $address->getFullAddress(),
'country' => $address->country,
'country_name' => $address->country_name,
'street' => $address->street,
'city' => $address->city,
'province' => $address->province,
'postal_code' => $address->postal_code,
'latitude' => $address->latitude,
'longitude' => $address->longitude,
'googleMapAddress' => $place->getGoogleMapAddress(),
'googleMapAddressLatitude' => $place->getGoogleMapsAddressWithLatitude(),
'address' => $place->getAddressAsString(),
'country' => $place->country,
'country_name' => $place->country_name,
'street' => $place->street,
'city' => $place->city,
'province' => $place->province,
'postal_code' => $place->postal_code,
'latitude' => $place->latitude,
'longitude' => $place->longitude,
'edit' => false,
];
$contactAddresses->push($data);
@@ -60,42 +64,61 @@ class AddressesController extends Controller
/**
* Store the address.
*/
public function store(AddressesRequest $request, Contact $contact)
public function store(Request $request, Contact $contact)
{
return $contact->addresses()->create([
'account_id' => auth()->user()->account_id,
'country' => ($request->get('country') == '0' ? null : $request->get('country')),
'name' => ($request->get('name') == '' ? null : $request->get('name')),
'street' => ($request->get('street') == '' ? null : $request->get('street')),
'city' => ($request->get('city') == '' ? null : $request->get('city')),
'province' => ($request->get('province') == '' ? null : $request->get('province')),
'postal_code' => ($request->get('postal_code') == '' ? null : $request->get('postal_code')),
'latitude' => ($request->get('latitude') == '' ? null : str_replace(',', '.', $request->get('latitude'))),
'longitude' => ($request->get('longitude') == '' ? null : str_replace(',', '.', $request->get('longitude'))),
]);
$request = [
'account_id' => auth()->user()->account->id,
'contact_id' => $contact->id,
'name' => $request->get('name'),
'country' => $request->get('country'),
'street' => $request->get('street'),
'city' => $request->get('city'),
'province' => $request->get('province'),
'postal_code' => $request->get('postal_code'),
'latitude' => $request->get('latitude'),
'longitude' => $request->get('longitude'),
];
return (new CreateAddress)->execute($request);
}
/**
* Edit the contact field.
*/
public function edit(AddressesRequest $request, Contact $contact, Address $address)
public function edit(Request $request, Contact $contact, Address $address)
{
$address->update([
'country' => ($request->get('country') == '' ? null : $request->get('country')),
'name' => ($request->get('name') == '' ? null : $request->get('name')),
'street' => ($request->get('street') == '' ? null : $request->get('street')),
'city' => ($request->get('city') == '' ? null : $request->get('city')),
'province' => ($request->get('province') == '' ? null : $request->get('province')),
'postal_code' => ($request->get('postal_code') == '' ? null : $request->get('postal_code')),
'latitude' => ($request->get('latitude') == '' ? null : str_replace(',', '.', $request->get('latitude'))),
'longitude' => ($request->get('longitude') == '' ? null : str_replace(',', '.', $request->get('longitude'))),
]);
$request = [
'account_id' => auth()->user()->account->id,
'contact_id' => $contact->id,
'address_id' => $address->id,
'name' => $request->get('name'),
'country' => $request->get('country'),
'street' => $request->get('street'),
'city' => $request->get('city'),
'province' => $request->get('province'),
'postal_code' => $request->get('postal_code'),
'latitude' => $request->get('latitude'),
'longitude' => $request->get('longitude'),
];
return $address;
return (new UpdateAddress)->execute($request);
}
public function destroy(Contact $contact, Address $address)
/**
* Destroy the address.
*
* @param Request $request
* @param Contact $contact
* @param Address $address
* @return void
*/
public function destroy(Request $request, Contact $contact, Address $address)
{
$address->delete();
$request = [
'account_id' => auth()->user()->account->id,
'address_id' => $address->id,
];
(new DestroyAddress)->execute($request);
}
}