Skip to content

Commit 65338fb

Browse files
committed
Menu Module Responsable Actions complete
1 parent a5a0e4c commit 65338fb

File tree

3 files changed

+141
-38
lines changed

3 files changed

+141
-38
lines changed

app/Http/Controllers/Backend/Menu/MenuController.php

Lines changed: 50 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2,71 +2,97 @@
22

33
namespace App\Http\Controllers\Backend\Menu;
44

5+
use App\Models\Menu\Menu;
6+
use Bvipul\Generator\Module;
7+
use Illuminate\Support\Facades\DB;
58
use App\Http\Controllers\Controller;
9+
use App\Http\Responses\ViewResponse;
10+
use App\Http\Responses\RedirectResponse;
11+
use App\Http\Responses\Backend\Menu\EditResponse;
12+
use App\Repositories\Backend\Menu\MenuRepository;
13+
use App\Http\Requests\Backend\Menu\EditMenuRequest;
14+
use App\Http\Responses\Backend\Menu\CreateResponse;
15+
use App\Http\Requests\Backend\Menu\StoreMenuRequest;
616
use App\Http\Requests\Backend\Menu\CreateMenuRequest;
717
use App\Http\Requests\Backend\Menu\DeleteMenuRequest;
8-
use App\Http\Requests\Backend\Menu\EditMenuRequest;
918
use App\Http\Requests\Backend\Menu\ManageMenuRequest;
10-
use App\Http\Requests\Backend\Menu\StoreMenuRequest;
1119
use App\Http\Requests\Backend\Menu\UpdateMenuRequest;
12-
use App\Models\Menu\Menu;
13-
use App\Repositories\Backend\Menu\MenuRepository;
14-
use Illuminate\Support\Facades\DB;
1520

1621
class MenuController extends Controller
1722
{
23+
/**
24+
* Menu Model Object
25+
*
26+
* @var \App\Models\Menu\Menu
27+
*/
1828
protected $menu;
1929

30+
/**
31+
* Module Model Object
32+
*
33+
* @var \Bvipul\Generator\Module
34+
*/
35+
protected $modules;
36+
37+
/**
38+
* Menu Types
39+
*
40+
* @var Array
41+
*/
42+
protected $types;
43+
2044
/**
2145
* @param \App\Repositories\Backend\Menu\MenuRepository $menu
2246
*/
23-
public function __construct(MenuRepository $menu)
47+
public function __construct(MenuRepository $menu, Module $module)
2448
{
2549
$this->menu = $menu;
50+
51+
$this->modules = $module;
52+
53+
$this->types = [
54+
'backend' => 'Backend',
55+
'frontend' => 'Frontend',
56+
];
57+
2658
}
2759

2860
/**
2961
* Display a listing of the resource.
3062
*
3163
* @param \App\Http\Requests\Backend\Menu\ManageMenuRequest $request
3264
*
33-
* @return \Illuminate\Http\Response
65+
* @return \App\Http\Responses\ViewResponse
3466
*/
3567
public function index(ManageMenuRequest $request)
3668
{
37-
return view('backend.menus.index');
69+
return new ViewResponse('backend.menus.index');
3870
}
3971

4072
/**
4173
* Show the form for creating a new resource.
4274
*
4375
* @param \App\Http\Requests\Backend\Menu\CreateMenuRequest $request
4476
*
45-
* @return \Illuminate\Http\Response
77+
* @return \App\Http\Responses\Backend\Menu\CreateResponse
4678
*/
4779
public function create(CreateMenuRequest $request)
4880
{
49-
$types = [
50-
'backend' => 'Backend',
51-
'frontend' => 'Frontend',
52-
];
53-
$modules = DB::table('modules')->get();
54-
55-
return view('backend.menus.create')->withTypes($types)->withModules($modules);
81+
return new CreateResponse($this->types, $this->modules);
5682
}
5783

5884
/**
5985
* Store a newly created resource in storage.
6086
*
6187
* @param \App\Http\Requests\Backend\Menu\StoreMenuRequest $request
6288
*
63-
* @return \Illuminate\Http\Response
89+
* @return \App\Http\Responses\RedirectResponse
6490
*/
6591
public function store(StoreMenuRequest $request)
6692
{
6793
$this->menu->create($request->except('_token'));
6894

69-
return redirect()->route('admin.menus.index')->withFlashSuccess(trans('alerts.backend.menus.created'));
95+
return new RedirectResponse('admin.menus.index', ['flash_success' => trans('alerts.backend.menus.created')]);
7096
}
7197

7298
/**
@@ -75,21 +101,11 @@ public function store(StoreMenuRequest $request)
75101
* @param \App\Models\Menu\Menu $menu
76102
* @param \App\Http\Requests\Backend\Menu\EditMenuRequest $request
77103
*
78-
* @return \Illuminate\Http\Response
104+
* @return \App\Http\Responses\Backend\Menu\EditResponse
79105
*/
80106
public function edit(Menu $menu, EditMenuRequest $request)
81107
{
82-
$types = [
83-
'backend' => 'Backend',
84-
'frontend' => 'Frontend',
85-
];
86-
87-
$modules = DB::table('modules')->get();
88-
89-
return view('backend.menus.edit')
90-
->with('types', $types)
91-
->with('menu', $menu)
92-
->with('modules', $modules);
108+
return new EditResponse($menu, $this->types, $this->modules);
93109
}
94110

95111
/**
@@ -98,15 +114,13 @@ public function edit(Menu $menu, EditMenuRequest $request)
98114
* @param \App\Models\Menu\Menu $menu
99115
* @param \App\Http\Requests\Backend\Menu\UpdateMenuRequest $request
100116
*
101-
* @return \Illuminate\Http\Response
117+
* @return \App\Http\Responses\RedirectResponse
102118
*/
103119
public function update(Menu $menu, UpdateMenuRequest $request)
104120
{
105121
$this->menu->update($menu, $request->all());
106122

107-
return redirect()
108-
->route('admin.menus.index')
109-
->with('flash_success', trans('alerts.backend.menus.updated'));
123+
return new RedirectResponse('admin.menus.index', ['flash_success' => trans('alerts.backend.menus.updated')]);
110124
}
111125

112126
/**
@@ -115,14 +129,12 @@ public function update(Menu $menu, UpdateMenuRequest $request)
115129
* @param \App\Models\Menu\Menu $menu
116130
* @param \App\Http\Requests\Backend\Menu\DeleteMenuRequest $request
117131
*
118-
* @return \Illuminate\Http\Response
132+
* @return \App\Http\Responses\RedirectResponse
119133
*/
120134
public function destroy(Menu $menu, DeleteMenuRequest $request)
121135
{
122136
$this->menu->delete($menu);
123137

124-
return redirect()
125-
->route('admin.menus.index')
126-
->with('flash_success', trans('alerts.backend.menus.deleted'));
138+
return new RedirectResponse('admin.menus.index', ['flash_success' => trans('alerts.backend.menus.deleted')]);
127139
}
128140
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php
2+
3+
namespace App\Http\Responses\Backend\Menu;
4+
5+
use Illuminate\Contracts\Support\Responsable;
6+
7+
class CreateResponse implements Responsable
8+
{
9+
/**
10+
* @var Array
11+
*/
12+
protected $types;
13+
14+
/**
15+
* @var \Bvipul\Generator\Module
16+
*/
17+
protected $modules;
18+
19+
/**
20+
* @param Array $types
21+
* @param \Bvipul\Generator\Module $modules
22+
*/
23+
public function __construct($types, $modules)
24+
{
25+
$this->types = $types;
26+
$this->modules = $modules;
27+
}
28+
29+
/**
30+
* In Response.
31+
*
32+
* @param \App\Http\Requests\Request $request
33+
*
34+
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
35+
*/
36+
public function toResponse($request)
37+
{
38+
return view('backend.menus.create')
39+
->withTypes($this->types)
40+
->withModules($this->modules->all());
41+
}
42+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<?php
2+
3+
namespace App\Http\Responses\Backend\Menu;
4+
5+
use Illuminate\Contracts\Support\Responsable;
6+
7+
class EditResponse implements Responsable
8+
{
9+
/**
10+
* @var Array
11+
*/
12+
protected $types;
13+
14+
/**
15+
* @var \Bvipul\Generator\Module
16+
*/
17+
protected $modules;
18+
19+
/**
20+
* @var \App\Models\Menu\Menu
21+
*/
22+
protected $menu;
23+
24+
/**
25+
* @param \App\Models\Menu\Menu $menu
26+
* @param Array $types
27+
* @param \Bvipul\Generator\Module $modules
28+
*/
29+
public function __construct($menu, $types, $modules)
30+
{
31+
$this->menu = $menu;
32+
$this->types = $types;
33+
$this->modules = $modules;
34+
}
35+
36+
/**
37+
* toReponse
38+
*
39+
* @param \Illuminate\Http\Request $request
40+
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
41+
*/
42+
public function toResponse($request)
43+
{
44+
return view('backend.menus.edit')
45+
->with('types', $this->types)
46+
->with('menu', $this->menu)
47+
->with('modules', $this->modules->all());
48+
}
49+
}

0 commit comments

Comments
 (0)