⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.19
Server IP:
178.33.27.10
Server:
Linux cpanel.dev-unit.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
Server Software:
Apache/2.4.57 (Unix) OpenSSL/1.0.2k-fips
PHP Version:
8.2.11
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
id
/
dalily.dev-unit.com
/
app
/
Services
/
View File Name :
UserService.php
<?php /* * LaraClassifier - Classified Ads Web Application * Copyright (c) BeDigit. All Rights Reserved * * Website: https://laraclassifier.com * Author: Mayeul Akpovi (BeDigit - https://bedigit.com) * * LICENSE * ------- * This software is provided under a license agreement and may only be used or copied * in accordance with its terms, including the inclusion of the above copyright notice. * As this software is sold exclusively on CodeCanyon, * please review the full license details here: https://codecanyon.net/licenses/standard */ namespace App\Services; use App\Http\Requests\Front\AvatarRequest; use App\Http\Requests\Front\UserPreferencesRequest; use App\Http\Requests\Front\UserRequest; use App\Http\Resources\UserResource; use App\Models\Scopes\ReviewedScope; use App\Models\Scopes\StrictActiveScope; use App\Models\Scopes\VerifiedScope; use App\Models\User; use App\Services\Auth\Traits\Custom\VerificationTrait; use App\Services\User\Delete; use App\Services\User\Register; use App\Services\User\Stats; use App\Services\User\Update; use App\Services\User\Update\DarkMode; use App\Services\User\Update\Photo; use App\Services\User\Update\Settings; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; class UserService extends BaseService { use VerificationTrait; use Register, Update, Delete, Settings, Photo, DarkMode, Stats; /** * List users * * @return \Illuminate\Http\JsonResponse */ public function getEntries(): JsonResponse { /* $users = User::paginate($this->perPage); $resourceCollection = new EntityCollection(UserResource::class, $users); return apiResponse()->withCollection($resourceCollection); */ return apiResponse()->forbidden(); } /** * Store user * * @param \App\Http\Requests\Front\UserRequest $request * @return \Illuminate\Http\JsonResponse */ public function store(UserRequest $request): JsonResponse { return $this->register($request); } /** * Get user * * @param $id * @param array $params * @return \Illuminate\Http\JsonResponse */ public function getEntry($id, array $params = []): JsonResponse { $embed = getCommaSeparatedStrAsArray($params['embed'] ?? []); $user = User::query()->verified(); if (in_array('country', $embed)) { $user->with('country'); } if (in_array('payment', $embed)) { $user->with(['payment' => function ($query) { $query->withoutGlobalScope(StrictActiveScope::class); }]); if (in_array('package', $embed)) { $user->with('payment.package'); } } if (in_array('possiblePayment', $embed)) { $user->with(['possiblePayment']); if (in_array('package', $embed)) { $user->with('possiblePayment.package'); } } if (in_array('posts', $embed) || in_array('countPosts', $embed)) { $postScopes = [VerifiedScope::class, ReviewedScope::class]; $user->with(['posts' => fn ($q) => $q->withoutGlobalScopes($postScopes)->unarchived()]); } if (in_array('postsInCountry', $embed) || in_array('countPostsInCountry', $embed)) { $user->with('postsInCountry'); } $user = $user->find($id); abort_if(empty($user), 404, t('user_not_found')); $resource = new UserResource($user, $params); return apiResponse()->withResource($resource); } /** * Update user * * @param $id * @param \App\Http\Requests\Front\UserRequest $request * @return \Illuminate\Http\JsonResponse */ public function update($id, UserRequest $request): JsonResponse { return $this->updateDetails($id, $request); } /** * Delete user * * @param $id * @return \Illuminate\Http\JsonResponse */ public function destroy($id): JsonResponse { return $this->closeAccount($id); } /** * User's mini stats * * @param $id * @return \Illuminate\Http\JsonResponse */ public function stats($id): JsonResponse { return $this->getStats($id); } /** * Update user's preferences * * @param $id * @param \App\Http\Requests\Front\UserPreferencesRequest $request * @return \Illuminate\Http\JsonResponse */ public function updatePreferences($id, UserPreferencesRequest $request): JsonResponse { return $this->updateUserPreferences($id, $request); } /** * Update user's photo * * @param $userId * @param \App\Http\Requests\Front\AvatarRequest $request * @return \Illuminate\Http\JsonResponse */ public function updatePhoto($userId, AvatarRequest $request): JsonResponse { return $this->updateUserPhoto($userId, $request); } /** * Delete user's photo * * @param $userId * @return \Illuminate\Http\JsonResponse */ public function removePhoto($userId): JsonResponse { return $this->removeUserPhoto($userId); } /** * Update the user's dark mode option * * @param $userId * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\JsonResponse */ public function setDarkMode($userId, Request $request): JsonResponse { return $this->setDarkModeForUser($userId, $request); } }