HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
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();
    }

}