PATH:
home
/
rwabteecom
/
project_11
/
app
/
Services
/
User
/
Editing: UserServices.php
<?php namespace App\Services\User; use App\Enums\StatusEnum; use App\Enums\UserEnum; use App\Helpers\Image; use App\Interfaces\ServiceInterface; use App\Models\User; use DB; use Hash; use Illuminate\Support\Collection; class UserServices implements ServiceInterface { public function index($active = false): Collection { return User::query()->latest()->get(); } public function findOrFail($id, $active = false) { // TODO: Implement findOrFail() method. } public function findWithoutFail($id, $active = false) { // TODO: Implement findWithoutFail() method. } public function findUserById($id, $withTrashed = false): User { return User::query()->when($withTrashed, fn($q) => $q->withTrashed())->findOrFail($id); } public function store($request) { return DB::transaction(function () use ($request) { User::query()->create([ "name" => $request->name, "email" => $request->email, "phone" => $request->full_number, "status" => StatusEnum::Active, "password" => Hash::make($request->password), ]); }); } public function update($id, $request) { return DB::transaction(function () use ($request, $id) { $user = $this->findUserById($id); $user->update([ "name" => $request->name, "email" => $request->email, "phone" => $request->full_number, "password" => $request->filled("password") ? Hash::make($request->password) : $user->password, ]); }); } public function destroy($id) { return DB::transaction(function () use ($id) { $user = $this->findUserById($id); $user->update([ "status" => StatusEnum::Trashed->value ]); $user->delete(); }); } public function restore($id) { return DB::transaction(function () use ($id) { $user = $this->findUserById($id, true); $user->update([ "status" => StatusEnum::Active->value ]); $user->restore(); }); } public function updateProfile($id, $request) { return DB::transaction(function () use ($id, $request) { $user = $this->findUserById($id); $user->update([ "name" => $request->name, "phone" => $request->phone, "email" => $request->email, "latitude" => $request->location["latitude"], "longitude" => $request->location["longitude"], "address" => $request->location["address"], ]); if ($request->hasFile("profile_image")) { Image::updateImage($user, $request->file("profile_image"), UserEnum::PROFILE_IMAGE->value); } }); } }
SAVE
CANCEL