Spaces:
Running
Running
File size: 3,197 Bytes
0c117c4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | <?php
namespace App\Services;
use App\Models\User;
use App\Models\BaseModel as Model;
use Illuminate\Support\Facades\Storage;
class UserServices extends BaseServices
{
public $model;
public function __construct(User $model)
{
parent::__construct(new Model());
$this->model = $model;
}
public function index($request)
{
$limit = $request->get("limit", "");
$query_array = $request->query();
$isUser = $query_array['isUser'] ?? "";
$query = $this->model;
if (!empty($isUser)) {
$query = $query->whereHas("roles", function($q) {
$q->whereNotIn("name", ["admin"]);
});
}
$relations = $request->get("loadRelation", []);
if (!empty($relations)) {
foreach ($relations as $key => $value) {
$query = $query->with($value);
}
}
$query = $query->orderBy('users.updated_at', 'desc');
$data = empty($limit) ? ($query->get()) : ($query->paginate($limit));
//$this->model->where("ef",32)->get();
return $data;
}
public function getAllWishlists($request)
{
$limit = $request->get('limit', RoomTypeModel::LIMIT_PAGE);
$query_array = $request->query();
$roomTypes = json_decode($roomTypes, TRUE);
$query = $this->model;
$relations = $request->get("loadRelation", []);
if (!empty($relations)) {
foreach ($relations as $key => $value) {
$query = $query->with($value);
}
}
$query = $query->orderBy('users.updated_at', 'desc');
$data = empty($limit) ? ($query->get()) : ($query->paginate($limit));
return $data;
}
public function saveWishlists($request,array $attributes)
{
$room_types = $attributes['room_types'] ?? "";
$entity = $this->getCurrentUser();
if(!empty($entity) && !empty($room_types)){
$user = $entity->whereHas("wishlists",function ($query)use($room_types){
$query->where('room_type_id',$room_types);
})->first();
if(!empty($user)){
$entity->roomTypes()->detach($room_types);
}else{
$entity->roomTypes()->attach($room_types);
}
}
return $entity;
}
public function show($id)
{
$data = $this->model->where('id', $id)->first();
return $data;
}
public function getUserByEmail($email){
$data = $this->model->where('email', $email)->first();
return $data;
}
public function save(array $attributes)
{
if (!empty($attributes['id'])) {
$entity = $this->model->where('id', $attributes['id'])->first();
if ($entity) {
$entity->fill($attributes)->save();
return $entity;
} else {
return null;
}
} else {
$entity = $this->model->create($attributes);
$entity->assignRole("user");
return $entity;
}
}
public function delete($id)
{
$entity = $this->model
->where('id', $id)->first();
return !empty($entity) ? $entity->delete() : null;
}
}
|