7 Commits
13 changed files with 3659 additions and 16 deletions
+1 -1
View File
@@ -24,7 +24,7 @@ APP_DEBUG=
APP_URL= APP_URL=
LOG_CHANNEL= LOG_CHANNEL=
BROADCAST_DRIVER= BROADCAST_DRIVER=
CACHE_DRIVER= CACHE_DRIVER=file
QUEUE_CONNECTION= QUEUE_CONNECTION=
SESSION_DRIVER= SESSION_DRIVER=
SESSION_LIFETIME= SESSION_LIFETIME=
File diff suppressed because one or more lines are too long
+4 -4
View File
@@ -111,13 +111,13 @@ class ItemController extends Controller
public function getItems() public function getItems()
{ {
$user = auth()->user(); $userId = auth('api')->id();
$medicalCenterId = optional(optional($user)->medical_center)->id; // $medicalCenterId = optional(optional($user)->medical_center)->id;
$userIds = User::where('medical_center_id', $medicalCenterId)->pluck('id')->toArray(); // $userIds = User::where('medical_center_id', $medicalCenterId)->pluck('id')->toArray();
$Items = Item::where( "status" , StatusTypeEnum::APPROVED ) $Items = Item::where( "status" , StatusTypeEnum::APPROVED )
->where( "package_id" , null ) ->where( "package_id" , null )
->whereIn('creator_id', $userIds) ->where('user_id', $userId)
->orderByDesc( 'id' ) ->orderByDesc( 'id' )
->isNotRepaired() ->isNotRepaired()
->get(); ->get();
@@ -77,6 +77,7 @@ class PackageController extends Controller
public function getPackages() public function getPackages()
{ {
$Packages = Package::where("status", StatusTypeEnum::APPROVED) $Packages = Package::where("status", StatusTypeEnum::APPROVED)
->where("user_id", auth('api')->id())
->orderByDesc('id') ->orderByDesc('id')
->get(); ->get();
return PackageResource::collection($Packages); return PackageResource::collection($Packages);
+4 -2
View File
@@ -25,8 +25,9 @@ class StoreCycleRequest extends FormRequest
return [ return [
'date' => 'required', 'date' => 'required',
'sterilizer_id' => 'required', 'sterilizer_id' => 'required',
'cycle_number' => 'required', 'cycle_number' => 'required|unique:cycles,cycle_number',
'note' => 'nullable', 'note' => 'nullable',
'labels' => 'required|array|distinct',
'labels.*.id' => 'required|numeric|exists:labels,id', 'labels.*.id' => 'required|numeric|exists:labels,id',
]; ];
break; break;
@@ -37,8 +38,9 @@ class StoreCycleRequest extends FormRequest
return [ return [
'date' => 'required', 'date' => 'required',
'sterilizer_id' => 'required', 'sterilizer_id' => 'required',
'cycle_number' => 'required', 'cycle_number' => 'required|unique:cycles,cycle_number',
'note' => 'nullable', 'note' => 'nullable',
'labels' => 'required|array|distinct',
'labels.*.id' => 'required|numeric|exists:labels,id', 'labels.*.id' => 'required|numeric|exists:labels,id',
]; ];
break; break;
+2 -2
View File
@@ -26,7 +26,7 @@ class StoreLabelRequest extends FormRequest
'sterile_date' => 'required|date', 'sterile_date' => 'required|date',
'expire_date' => 'required|date', 'expire_date' => 'required|date',
'sterilizer_id' => 'required', 'sterilizer_id' => 'required',
'cycle_number' => 'required', 'cycle_number' => 'required|exists:cycles,cycle_number',
'lot_number' => 'required', 'lot_number' => 'required',
'package_id' => 'required|exists:packages,id', 'package_id' => 'required|exists:packages,id',
]; ];
@@ -39,7 +39,7 @@ class StoreLabelRequest extends FormRequest
'sterile_date' => 'required', 'sterile_date' => 'required',
'expire_date' => 'required', 'expire_date' => 'required',
'sterilizer_id' => 'required', 'sterilizer_id' => 'required',
'cycle_number' => 'required', 'cycle_number' => 'required|exists:cycles,cycle_number',
'lot_number' => 'required', 'lot_number' => 'required',
'package_id' => 'required|exists:packages,id', 'package_id' => 'required|exists:packages,id',
]; ];
+5 -2
View File
@@ -2,6 +2,7 @@
namespace App\Http\Requests; namespace App\Http\Requests;
use App\Rules\ValidateItemOwnership;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class StorePackageRequest extends FormRequest class StorePackageRequest extends FormRequest
@@ -23,7 +24,8 @@ class StorePackageRequest extends FormRequest
return [ return [
'name' => 'required|max:250', 'name' => 'required|max:250',
'note' => 'nullable', 'note' => 'nullable',
'items' => 'required', 'items' => 'required|array|min:1',
'items.*' => ['exists:items,id','integer',new ValidateItemOwnership()],
]; ];
break; break;
} }
@@ -33,7 +35,8 @@ class StorePackageRequest extends FormRequest
return [ return [
'name' => 'required|max:250', 'name' => 'required|max:250',
'note' => 'nullable', 'note' => 'nullable',
'items' => 'required', 'items' => 'required|array|min:1',
'items.*' => ['exists:items,id','integer',new ValidateItemOwnership()],
]; ];
break; break;
-1
View File
@@ -41,7 +41,6 @@ class CycleRepository implements CycleRepositoryInterface
->whereHas('user', function ($query) use ($user) { ->whereHas('user', function ($query) use ($user) {
$query->where('medical_center_id', $user->medical_center_id); $query->where('medical_center_id', $user->medical_center_id);
}) })
->where("user_id", $user->id)
->orderByDesc('id') ->orderByDesc('id')
->paginate(10); ->paginate(10);
} }
-1
View File
@@ -40,7 +40,6 @@ class LabelRepository implements LabelRepositoryInterface
->whereHas('user', function ($query) use ($user) { ->whereHas('user', function ($query) use ($user) {
$query->where('medical_center_id', $user->medical_center_id); $query->where('medical_center_id', $user->medical_center_id);
}) })
->where("user_id", $user->id)
->orderByDesc('id') ->orderByDesc('id')
->paginate(10); ->paginate(10);
} }
-1
View File
@@ -30,7 +30,6 @@ class PackageRepository implements PackageRepositoryInterface
->whereHas('user', function ($query) use ($user) { ->whereHas('user', function ($query) use ($user) {
$query->where('medical_center_id', $user->medical_center_id); $query->where('medical_center_id', $user->medical_center_id);
}) })
->where("user_id", $user->id)
->orWhere("status", StatusTypeEnum::APPROVED) ->orWhere("status", StatusTypeEnum::APPROVED)
->orderByDesc('id') ->orderByDesc('id')
->paginate(10); ->paginate(10);
+23
View File
@@ -0,0 +1,23 @@
<?php
namespace App\Rules;
use App\Models\Item;
use Closure;
use Illuminate\Contracts\Validation\ValidationRule;
class ValidateItemOwnership implements ValidationRule
{
/**
* Run the validation rule.
*
* @param \Closure(string, ?string=): \Illuminate\Translation\PotentiallyTranslatedString $fail
*/
public function validate(string $attribute, mixed $value, Closure $fail): void
{
$item = Item::find($value);
if(!($item && $item->user_id === auth()->id())){
$fail(":attribute have invalid ownership");
}
}
}
+1 -1
View File
@@ -15,7 +15,7 @@ class DatabaseSeeder extends Seeder
public function run() public function run()
{ {
$this->call([ $this->call([
TableSeeder::class // FakerSeeder::class
]); ]);
} }
} }
@@ -4,7 +4,7 @@ namespace Database\Seeders;
use Illuminate\Database\Seeder; use Illuminate\Database\Seeder;
class TableSeeder extends Seeder class FakerSeeder extends Seeder
{ {
/** /**
* Seed the application's database. * Seed the application's database.