Skip to content

Instantly share code, notes, and snippets.

@golonix
Last active July 11, 2018 19:08
Show Gist options
  • Save golonix/3a26de134a7d42ca17e31c3165902991 to your computer and use it in GitHub Desktop.
Save golonix/3a26de134a7d42ca17e31c3165902991 to your computer and use it in GitHub Desktop.
<?php
Class AddressController
{
public function index(Request $request)
{
$user = Auth::user();
$addresses = Address::where("user_id", $user->id)->get();
return (new AddressResponder($request, $addresses))->respond();
}
// ...
}
<?php
class AddressResponder
{
protected $request;
protected $addresses;
public function __construct(Request $request, Collection $addresses)
{
$this->request = $request;
$this->addresses = $addresses;
}
public function respond()
{
return $request->expectsJson()
? $this->json()
: $this->html();
}
protected function html()
{
$supportedLocations = AddressController::getSupportedLocations();
return view("addresses.index", [
"addresses" => $this->addresses,
"supported_locations" => $supportedLocations,
]);
}
protected function json()
{
return ResponseJson::make($this->addresses)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment