File: D:/HostingSpaces/SBogers10/netwerkbrabant.komma.pro/app/KommaApp/Users/UserService.php
<?php
namespace App\KommaApp\Users;
use App\KommaApp\Users\Models\Role;
use App\KommaApp\Users\Models\User;
use Illuminate\Support\Facades\Hash;
class UserService
{
public function getUser(int $userId)
{
return User::find($userId);
}
/**
* Create user
*
* @param array $formValues
* @return User
*/
public function createUser(array $formValues): User
{
// Hash the confirmed password
$formValues['password'] = Hash::make($formValues['password']);
$user = new User($formValues);
$user->role_id = Role::Customer;
$user->save();
// There call has been made that there isn't a confirmation / verify mail
return $user;
}
public function getUserByUserGroupAndEventType($userGroup = false)
{
if($userGroup) {
$users = User::where('membership', 'premium')->where('breakfast_group', $userGroup)->with('images', 'companies');
}
return $users;
}
/**
* Update user
*
* @param User $user
* @param array $formValues
*/
public function updateUser(User $user, array $formValues)
{
//Hash the password if new password isn't empty
if(!empty($formValues['newPassword'])){
$user->password = Hash::make($formValues['newPassword']);
$user->save();
}
// Unset unneeded form variables
unset($formValues['newPassword']);
unset($formValues['currentPassword']);
// Update the user
$user->update($formValues);
}
/**
* (Soft) Delete a user
*
* @param User $user
* @throws \Exception
*/
public function deleteUser(User $user)
{
// Unlink the bind companies of this user (why should be only one)
$user->companies()->detach();
// (Soft) Delete the user
$user->delete();
}
}