%PDF- %PDF-
Direktori : /var/www/html/hr/api/app/Http/Controllers/Api/v1/ |
Current File : /var/www/html/hr/api/app/Http/Controllers/Api/v1/AuthController.php |
<?php namespace App\Http\Controllers\Api\v1; use App\Events\NotificationSentEvent; use App\Http\Controllers\Api\ApiController; use App\Http\Requests\Api\v1\Users\ChangePasswordRequest; use App\Http\Requests\Api\v1\Users\ResetPasswordRequest; use App\Http\Requests\Api\v1\Users\UpdateProfileRequest; use App\Http\Requests\Api\v1\Users\UploadImageRequest; use App\Models\BaseModel; use App\Models\Notification; use App\Models\ResetPassword; use App\Models\User; use App\Transformers\UserDetailsTransformer; use App\Transformers\UserTransformer; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Throwable; class AuthController extends ApiController { public function check(Request $request) { $email = $request->get('email'); $emailCheck = User::query() ->where('email', $email) ->exists(); return response()->json(['exists' => $emailCheck], 200); } public function login(Request $request) { if (Auth::attempt(['email' => $request->get('email'), 'password' => $request->get('password')])) { /** @var User $user */ $user = Auth::user(); if (!$user->is_enabled) { return response()->json(['error' => trans('auth.account_disabled')], 401); } $accessToken = $user->createToken('api')->accessToken; return response()->json([ 'token' => $accessToken, ], 200); } else { return response()->json(['error' => trans('auth.failed')], 401); } } public function me() { $user = auth() ->guard('api') ->user(); return $this->item($user, new UserDetailsTransformer(true)); } public function updateProfile(UpdateProfileRequest $request) { try { /** @var User $user */ $user = BaseModel::getLoggedInUser(); $data = $request->only([ 'name', 'surname', 'email', 'phone', 'birthday', ]); $user->updateItem($data); return $this->item($user, new UserDetailsTransformer()); } catch (Throwable $e) { return $this->wrongArguments([ 'message' => $e->getMessage(), ]); } } public function changePassword(ChangePasswordRequest $request) { $user = BaseModel::getLoggedInUser(); $user->password = $request->get('password'); $user->save(); return $this->item($user, new UserTransformer); } public function uploadAvatar(UploadImageRequest $request) { try { $user = BaseModel::getLoggedInUser(); $user->setAvatarBase64($request->get('image')); return $this->item($user->fresh(), new UserDetailsTransformer); } catch (\Exception $e) { return $this->wrongArguments([ 'message' => $e->getMessage(), ]); } } public function resetPassword(ResetPasswordRequest $request) { try { /** @var User $user */ $user = ResetPassword::getUserByToken($request->get('token')); $user->updatePassword($request->get('password')); $accessToken = $user->createToken('api')->accessToken; ResetPassword::deleteByToken($request->get('token')); return response()->json([ 'token' => $accessToken, ], 200); } catch (Throwable $e) { return $this->wrongArguments([ 'message' => $e->getMessage(), ]); } } public function performance(Request $request) { $user = BaseModel::getLoggedInUser(); return $user->performance($request->get('from'), $request->get('to')); } public function getMonthData(Request $request) { $user = BaseModel::getLoggedInUser(); $month = $request->get('month'); $year = $request->get('year'); $start = BaseModel::getStartOfMonth($month, $year); $end = BaseModel::getEndOfMonth($month, $year); return ['data' => $user->getCalendarData($start, $end)]; } public function test() { dd('test'); } }