From 4ec34550ed60f9ea5b7c20beaf5b909060459d02 Mon Sep 17 00:00:00 2001 From: raishvaria Date: Thu, 21 Nov 2019 11:59:23 +0530 Subject: [PATCH] add admin profile avatar --- app/Http/Controllers/CompanyController.php | 27 ++++++++++++++++++++++ app/User.php | 12 +++++++++- routes/api.php | 5 ++++ 3 files changed, 43 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/CompanyController.php b/app/Http/Controllers/CompanyController.php index 099ff7e7..8b1ecb25 100644 --- a/app/Http/Controllers/CompanyController.php +++ b/app/Http/Controllers/CompanyController.php @@ -227,4 +227,31 @@ class CompanyController extends Controller 'success' => true ]); } + + /** + * Upload the Admin Avatar to public storage. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public function uploadAdminAvatar(Request $request) + { + $data = json_decode($request->admin_avatar); + + if($data) { + $user = auth()->user(); + + if($user) { + $user->clearMediaCollection('admin_avatar'); + + $user->addMediaFromBase64($data->data) + ->usingFileName($data->name) + ->toMediaCollection('admin_avatar'); + } + } + + return response()->json([ + 'success' => true + ]); + } } diff --git a/app/User.php b/app/User.php index 9c43d0f6..2879593e 100644 --- a/app/User.php +++ b/app/User.php @@ -51,7 +51,8 @@ class User extends Authenticatable implements HasMedia ]; protected $appends = [ - 'formattedCreatedAt' + 'formattedCreatedAt', + 'avatar' ]; /** @@ -244,4 +245,13 @@ class User extends Authenticatable implements HasMedia return true; } + + public function getAvatarAttribute() + { + $avatar = $this->getMedia('admin_avatar')->first(); + if ($avatar) { + return asset($avatar->getUrl()); + } + return ; + } } diff --git a/routes/api.php b/routes/api.php index dac4f879..236f7218 100644 --- a/routes/api.php +++ b/routes/api.php @@ -308,6 +308,11 @@ Route::group(['middleware' => 'api'], function () { 'uses' => 'CompanyController@updateAdminProfile' ]); + Route::post('/profile/upload-avatar', [ + 'as' => 'admin.profile.avatar', + 'uses' => 'CompanyController@uploadAdminAvatar' + ]); + Route::post('/company/upload-logo', [ 'as' => 'upload.admin.company.logo', 'uses' => 'CompanyController@uploadCompanyLogo'