3
3
namespace App \Http \Controllers \Admin ;
4
4
5
5
use App \Http \Controllers \Controller ;
6
+ // use App\Jobs\BrandImageUploading;
6
7
use App \Models \Brand ;
7
8
use App \Traits \UploadAble ;
9
+ use Illuminate \Auth \Access \Gate ;
8
10
use Illuminate \Http \Request ;
9
11
use Illuminate \Support \Facades \DB ;
10
12
use Illuminate \Support \Facades \Storage ;
11
13
use Image ;
12
14
13
15
class BrandController extends Controller
14
16
{
17
+
15
18
use UploadAble;
16
19
/**
17
20
* Display a listing of the resource.
18
21
*
19
22
* @return \Illuminate\Http\Response
20
23
*/
24
+ public function __construct ()
25
+ {
26
+ $ this ->authorizeResource (Brand::class, 'brand ' );
27
+ }
21
28
public function index (Request $ request )
22
29
{
23
30
@@ -33,11 +40,12 @@ public function index(Request $request)
33
40
public function store (Request $ request )
34
41
{
35
42
$ this ->validate ($ request , [
36
- 'name ' => 'bail|required|min:3" unique:brands,slug ' ,
43
+ 'name ' => 'bail|required|min:3| unique:brands,slug ' ,
37
44
'logo ' => 'required '
38
45
]);
46
+ // EVENT LISTENER
39
47
40
- $ image = $ this ->base64ToImage ($ request ->logo )['data ' ];
48
+ $ image = $ this ->base64ToImage ($ request ->logo )['image ' ];
41
49
$ extension = $ this ->base64ToImage ($ request ->logo )['extension ' ];
42
50
$ FileError = $ this ->setImageValidationError ($ extension ,'logo ' ,['jpg ' ,'jpeg ' ,'png ' ,'svg ' ]);
43
51
if ($ FileError ) {
@@ -48,14 +56,12 @@ public function store(Request $request)
48
56
]
49
57
], $ FileError ['status ' ]);
50
58
}
51
-
52
-
53
-
54
- $ uploadedFile = $ this ->uploadBase64File ($ request ->logo , 'uploads/brands/ ' ,'public ' );
59
+ // $uploadedFile = dispatch(new BrandImageUploading($request->logo));
60
+ $ uploadedFile = $ this ->uploadBase64File ($ request ->logo , 'brands/ ' ,'public ' );
55
61
56
62
return Brand::create ([
57
63
'name ' => $ request ->name ,
58
- 'logo ' => '/storage/uploads/ brands/ ' .$ uploadedFile ['name ' ]
64
+ 'logo ' => '/storage/brands/ ' .$ uploadedFile ['name ' ]
59
65
]);
60
66
}
61
67
@@ -101,7 +107,52 @@ public function show(Brand $brand)
101
107
*/
102
108
public function update (Request $ request , Brand $ brand )
103
109
{
104
- return $ brand ->update ($ request ->all ());
110
+ $ this ->validate ($ request , [
111
+ 'name ' => 'bail|required|min:3 ' ,
112
+ 'slug ' => 'required|unique:brands,slug, ' .$ request ->id ,
113
+ 'logo ' => 'required '
114
+ ]);
115
+ if ($ request ->logo !== $ brand ->logo ){
116
+ // DELETE OLD IMAGE FIRST
117
+ $ this ->deleteBase64RequestedFile ($ brand ->logo );
118
+ // PROCESS :: FOR NEW UPLOAD
119
+ $ image = $ this ->base64ToImage ($ request ->logo )['image ' ];
120
+ $ extension = $ this ->base64ToImage ($ request ->logo )['extension ' ];
121
+ $ FileError = $ this ->setImageValidationError ($ extension ,'logo ' ,['jpg ' ,'jpeg ' ,'png ' ,'svg ' ]);
122
+ if ($ FileError ) {
123
+ return response ()->json ([
124
+ 'message ' => $ FileError ['error ' ],
125
+ 'errors ' => [
126
+ $ FileError ['feild ' ] => [ $ FileError ['error ' ] ]
127
+ ]
128
+ ], $ FileError ['status ' ]);
129
+ }
130
+ $ uploadedFile = $ this ->uploadBase64File ($ request ->logo , 'brands/ ' ,'public ' );
131
+ return $ brand ->update ([
132
+ 'name ' => $ request ->name ,
133
+ 'slug ' => $ request ->slug ,
134
+ 'logo ' => '/storage/brands/ ' .$ uploadedFile ['name ' ]
135
+ ]);
136
+ }
137
+
138
+ return $ brand ->update ($ request ->except ('id ' ));
139
+
140
+ }
141
+
142
+ public function multiDelete (Request $ request )
143
+ {
144
+ $ this ->authorize ('multi_delete ' );
145
+ try {
146
+ DB ::beginTransaction ();
147
+ foreach ($ request ->all () as $ brand ) {
148
+ $ this ->deleteFileFromServer ($ brand ['logo ' ]);
149
+ Brand::find ($ brand ['id ' ])->delete ();
150
+ }
151
+ DB ::commit ();
152
+ return response ()->json (['message ' => "SUCCESS " ], 200 );
153
+ } catch (\Throwable $ th ) {
154
+
155
+ }
105
156
}
106
157
107
158
/**
@@ -112,38 +163,20 @@ public function update(Request $request, Brand $brand)
112
163
*/
113
164
public function destroy (Brand $ brand )
114
165
{
115
- // try {
166
+ try {
116
167
// DB::beginTransaction();
117
-
118
- // $logo = preg_replace('/^/\/storage/\//',"",$brand->logo);
119
- // $this->deleteOne($logo);
120
- // WORKED FINE : IF INSERT : logo' => $uploadedFile['name'] 566.png
121
- // $path = "/uploads/brands/".$brand->logo;
122
- // if(Storage::delete($path)){
123
- // $brand->delete();
124
- // return response()->json([
125
- // 'message' => $brand->name." deleted successfully"
126
- // ], 200);
127
- // }
128
- $ path = preg_replace ("/storage/ " ,"" , $ brand ->logo );
129
-
130
- if (Storage::delete ($ path )){
168
+ if ($ this ->deleteBase64RequestedFile ($ brand ->logo ) ){
131
169
$ brand ->delete ();
132
170
return response ()->json ([
133
171
'message ' => $ brand ->name ." deleted successfully "
134
172
], 202 );
135
173
}
136
-
137
- // $this->deleteFileFromServer($brand->logo,true);
138
- // return Storage::disk('public')->delete(public_path().'storage/uploads/brands/1604244861.png');
139
-
140
- // $brand->delete();
141
174
// DB::commit();
142
175
return response ()->json ([
143
176
'message ' => $ brand ->name ." deleted failed "
144
177
], 404 );
145
- // } catch (\Throwable $th) {
178
+ } catch (\Throwable $ th ) {
146
179
// DB::rollback();
147
- // }
180
+ }
148
181
}
149
182
}
0 commit comments