mirror of
https://git.meshkee.com/cssd/cssd-back.git
synced 2026-10-11 03:11:06 +03:30
56 lines
1.5 KiB
PHP
56 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Requests;
|
|
|
|
use App\Item;
|
|
use Illuminate\Validation\Rule;
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
use Illuminate\Contracts\Validation\Validator;
|
|
|
|
|
|
class StoreItemRequest extends FormRequest
|
|
{
|
|
public function authorize()
|
|
{
|
|
if ($this->method() == 'POST') {
|
|
return auth('api')->check() && auth('api')->user()->can('store', Item::class);
|
|
} else {
|
|
$Item = $this->route('Item');
|
|
return auth('api')->check() && $Item && auth('api')->user()->can('update', $Item);
|
|
}
|
|
}
|
|
|
|
public function rules()
|
|
{
|
|
switch ($this->method()) {
|
|
case 'POST': {
|
|
return [
|
|
'name' => 'required|max:100|unique:items',
|
|
'unique_id' => 'nullable|max:100|unique:items',
|
|
'size' => 'required',
|
|
'specific' => 'required',
|
|
'note' => 'nullable',
|
|
];
|
|
break;
|
|
}
|
|
case 'PUT':
|
|
case 'PATCH': {
|
|
$Item = $this->route('Item');
|
|
return [
|
|
'name' => 'required|max:100|unique:items,name,'.$Item->id,
|
|
'unique_id' => 'nullable|max:100|unique:items,unique_id,'.$Item->id,
|
|
'size' => 'required',
|
|
'specific' => 'required',
|
|
'note' => 'nullable',
|
|
];
|
|
break;
|
|
|
|
}
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
}
|