Files
wticreatorstudio/Modules/StaffPortal/Services/CommonService.php
T
2024-02-12 22:54:20 -05:00

99 lines
3.6 KiB
PHP

<?php
namespace Modules\StaffPortal\Services;
use App\Models\User;
use App\Traits\ImageStore;
use Brian2694\Toastr\Facades\Toastr;
use Exception;
use Illuminate\Support\Facades\File;
use Illuminate\Http\Request;
use Modules\Appearance\Repositories\ThemeColorRepository;
use Modules\SidebarManager\Entities\BackendmenuUser;
use Modules\UserActivityLog\Traits\LogActivity;
class CommonService {
use ImageStore;
public function getThemeColor() {
$repository = new ThemeColorRepository();
$themeColor = $repository->activeColor();
return $themeColor;
}
public static function processMenus($menus) {
foreach ($menus as $menu) {
$parent_id = null;
$position = 0;
if ($menu->id == 1) {
BackendmenuUser::create(['parent_id' => $parent_id, 'user_id' => auth()->id(), 'backendmenu_id' => $menu->id, 'position' => $position]);
}
}
foreach($menus as $menu){
if ($menu->id != 1) {
$parent_id = null;
$position = 1;
if($menu->parent_id){
$parentMenu = BackendmenuUser::where('backendmenu_id', $menu->parent_id)->where('user_id', auth()->id())->first();
if($parentMenu){
$parent_id = $parentMenu->id;
$position = BackendmenuUser::where('parent_id', $parent_id)->where('user_id', auth()->id())->count() + 1;
}
}
BackendmenuUser::create(['parent_id' => $parent_id, 'user_id' => auth()->id(), 'backendmenu_id' => $menu->id, 'position' => $position]);
}
}
}
public function updateInfo(Request $request)
{
$request->validate([
'first_name' => 'required',
'email' => 'required|email|unique:users,email,'.auth()->user()->id,
'avatar' => 'nullable|mimes:jpeg,jpg,png,bmp',
'phone' => 'nullable|unique:users,phone,'.auth()->id(),
//'username' => 'required|unique:users,username,'.auth()->id()
]);
try {
$user=User::findOrFail(auth()->user()->id);
$data=[
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'email' => $request->email,
'phone' => $request->phone,
//'username' => $request->username,
'date_of_birth' => $request->date_of_birth?date('Y-m-d',strtotime($request->date_of_birth)):null,
'description' => $request->description
];
if ($request->hasFile('avatar')) {
$this->deleteImage($user->avatar);
$data['avatar'] = $this->saveAvatar($request->file('avatar'),200,200);
}
$user->update($data);
LogActivity::successLog('update info');
//return response()->json($user);
return $user;
} catch (Exception $e) {
LogActivity::errorLog($e->getMessage());
Toastr::error(__('common.error_message'), __('common.error'));
//return back();
return false;
}
}
public function validateCandidateStoreRequest(Request $request) {
$request->validate([
'first_name' => 'required|max:255',
'last_name' => 'required|max:255',
//'title' => 'required|max:255',
'username' => 'required|unique:users,username,'.auth()->id()
]);
}
}