erp/app/Http/Controllers/User/UsersController.php

73 lines
1.9 KiB
PHP

<?php
namespace App\Http\Controllers\User;
use App\Http\Controllers\Controller;
use App\Models\Log as LogModel;
use App\Models\User;
use Illuminate\Http\Request;
use Faker\Generator as Faker;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Str;
use App\Http\Resources\UsersResource;
class UsersController extends Controller
{
public function __construct(Request $request)
{
$this->log = new LogModel([
'module' => 'user',
'action' => $request->getMethod(),
'target_type' => 'user',
]);
}
public function index()
{
$users = User::query()->where('id', '<>', 1)->paginate();
return UsersResource::collection($users);
}
public function store(Request $request, Faker $faker)
{
$validator = Validator::make($request->all(), [
'name' => 'required|string|unique:users,name|max:255',
'password' => 'required|string|min:8|confirmed',
'email' => 'email',
'role_name' => 'required|string|exists:roles,name'
]);
if ($validator->fails()) {
$this->setValidatorFailResponse($validator->getMessageBag()->getMessages());
return response($this->res, $this->res['httpCode']);
}
$user = new User();
$user->name = $request->name;
$user->email = \request('email', $faker->unique()->safeEmail);
$user->password = $request->password;
$user->api_token = Str::random(60);
$user->save();
$this->setAfterUpdate($user->toArray());
$this->addLog($user->id, 'add');
$user->assignRole($request->role_name);
return new UsersResource($user);
}
public function show($id)
{
return new UsersResource(User::query()->find($id));
}
public function update()
{
}
public function destory()
{
}
}