Skip to content

Instantly share code, notes, and snippets.

@JethroPasco
Created June 6, 2020 13:37
Show Gist options
  • Select an option

  • Save JethroPasco/3b732a58a3361edbe21dae69effefb97 to your computer and use it in GitHub Desktop.

Select an option

Save JethroPasco/3b732a58a3361edbe21dae69effefb97 to your computer and use it in GitHub Desktop.

Revisions

  1. JethroPasco created this gist Jun 6, 2020.
    17 changes: 17 additions & 0 deletions DashboardController.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,17 @@
    <?php

    namespace App\Http\Controllers;

    use App\Task;
    use App\Http\Responses;
    use App\Http\Controllers\Controller;

    class DashboardController extends Controller
    {
    public function __invoke($id)
    {
    $tasks = Task::all();

    return new DashboardResponse($tasks);
    }
    }
    38 changes: 38 additions & 0 deletions DashboardResponse.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,38 @@
    <?php

    namespace App\Http\Responses;

    use Illuminate\Contracts\Support\Responsable;

    class DashboardResponse implements Responsable
    {
    protected $tasks;

    public function __construct($tasks)
    {
    $this->$tasks = $tasks;
    }

    public function status()
    {
    return 200;
    }

    public function toResponse()
    {
    $data = $this->prepareData();

    if (request()->ajax()) {
    return response()->json($data);
    }

    return view('dashboard', $data);
    }

    protected function prepareData()
    {
    return [
    'tasks' => $this->tasks
    ];
    }
    }