Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
webbingbrasil/users-module / Repositories / Eloquent / UserRepositoryEloquent.php
Size: Mime:
<?php

namespace Modules\Users\Repositories\Eloquent;

use Modules\Core\Repositories\CoreRepository;
use Modules\Users\Contracts\Repositories\UserRepository;
use Modules\Users\Entities\User as Model;

/**
 * Class UserRepositoryEloquent
 * @package namespace App\Repositories\Eloquent;
 */
class UserRepositoryEloquent extends CoreRepository implements UserRepository
{

    /**
     * @var bool
     */
    protected $skipPresenter = true;


    /**
     * Specify Validator class name
     *
     * @return mixed
     */
    public function validator()
    {
        return config('auth.validator.user');
    }

    /**
     * Specify Model class name
     *
     * @return string
     */
    public function model()
    {
        return config('auth.providers.users.model');
    }

    public function presenter()
    {
        return config('users.presenter.user');
    }

    public function countActive()
    {
        return $this->model->count();
    }

    public function createWithRoles(array $userData, array $rolesData)
    {
        $userData['password'] = bcrypt($userData['password']);

        /** @var Model $user * */
        $user = $this->create($userData);
        $user->assignRole($rolesData);
    }

    public function updateAndSyncRoles($id, array $userData, array $rolesData)
    {
        if (isset($userData['password'])) {
            if (!empty($userData['password'])) {
                $userData['password'] = bcrypt($userData['password']);
            } else {
                unset($userData['password']);
            }
        }

        /** @var Model $user * */
        $user = $this->update($userData, $id);
        $user->syncRoles($rolesData);
    }

    /**
     * Delete a entity in repository by id
     *
     * @param $id
     * @return int
     */
    public function delete($id)
    {
        if ($id != auth()->user()->id || $id != 1) {
            return parent::delete($id);
        } else {
            return false;
        }
    }
}