Root Zanli
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
o5t6x7pgljbm
/
public_html
/
app
/
Http
/
Controllers
/
Api
/
Filename :
ProfileController.php
back
Copy
<?php namespace App\Http\Controllers\Api; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Models\User; use App\Models\Group; use App\Models\UserSetting; use DB; use Image; use Helpers; use Hash; class ProfileController extends Controller { public function get_profile(Request $request){ $user = $request->user(); $data = User::select('user_id', 'full_name', 'email', 'profile_pic', 'users.coins_for_college_role_id', 'role_name') ->leftJoin('coins_for_college_roles', 'coins_for_college_roles.coins_for_college_role_id', 'users.coins_for_college_role_id') ->where('user_id', $user->user_id) ->first(); $tuitWalletController = new TUITWalletController(); $data['tuit_balance'] = $tuitWalletController->getTUITWallet($user)['balance']; $spWalletController = new SPWalletController(); $data['scholarship_points'] = $spWalletController->getSPWallet($user)['balance']; $data['active_group_id'] = $user->active_group_id; // $isOwner = Group::where('owner_user_id', $user->user_id)->count(); // $data['is_group_owner'] = $isOwner > 0 ? 1 : 0; // Added by Gautam $isOwner = Group::where(['group_id' => $user->active_group_id, 'owner_user_id' => $user->user_id ])->exists(); $data['is_group_owner'] = $isOwner ? 1 : 0; // Added by Gautam $query = Group::select('group_id', 'group_name', 'group_image', 'owner_user_id') ->whereIn('group_id', function($query) use($user){ $query->select('group_id')->from('group_members')->where('member_user_id', $user->user_id)->where('invitation_accepted', 1)->where('is_active', 1)->whereNull('deleted_at'); }) ->orWhere('owner_user_id', $user->user_id); $data['your_groups'] = $query->get(); $data['manage_notifications'] = UserSetting::select('noti_task_completed', 'noti_new_claim_received', 'noti_featured_rewards', 'noti_weekly_report', 'noti_task_reminder', 'noti_claim_approved_rejected') ->where('user_id', $user->user_id) ->first(); $resData['data'] = $data; return Helpers::successResponse($resData, 200, 'Profile fetched successfully.'); } public function update_profile(Request $request){ $user = $request->user(); $rules = [ 'full_name' => 'required', 'email' => 'unique:users,email,'.$user->user_id.',user_id,deleted_at,NULL', /* 'mobile' => 'unique:users,mobile,'.$user->user_id.',user_id',*/ /* 'coins_for_college_role_id' => 'required',*/ ]; $result = Helpers::validatorErrorResponse($request, $rules); if($result['flag']) return $result['response']; $user->full_name = $request->full_name; $user->email = $request->email; /* $user->mobile = $request->mobile; $user->coins_for_college_role_id = $request->coins_for_college_role_id;*/ if($request->hasFile('profile_img')) { $file = $request->file('profile_img'); $imageName = rand().time().'.'.$file->getClientOriginalExtension(); // Save thumbnail image $img = Image::make($file->getRealPath()); $img->resize(200, 200, function ($constraint) { $constraint->aspectRatio(); })->save(public_path('profile_pics/thumb/').$imageName); // Save original size image $file->move(public_path('profile_pics'), $imageName); $user->profile_pic = $imageName; } $user->save(); $data['data'] = User::find($user->user_id); return Helpers::successResponse($data, 200, 'Profile updated successfully.'); } public function change_password(Request $request){ $user = $request->user(); if (!Hash::check($request->old_password, $user->password)) { return Helpers::responseMessage(422, "You may have entered the wrong old password."); } User::where('user_id', $user->user_id)->update(['password' => Hash::make($request['password'])]); return Helpers::responseMessage(200, 'Password updated successfully.'); } public function manage_noti_preferences(Request $request){ $user = $request->user(); $validated = $request->validate([ 'key' => 'required', 'value' => 'required', ]); UserSetting::where('user_id', $user->user_id)->update([$request->key => $request->value]); return Helpers::responseMessage(200, 'Preferences updated successfully.'); } }