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