Edit File: AuthController.php
<?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use App\Http\Requests\Api\Auth\ActivationRequest; use App\Http\Requests\Api\Auth\DelegateRegisterRequest; use App\Http\Requests\Api\Auth\ForgetPasswordRequest; use App\Http\Requests\Api\Auth\LoginRequest; use App\Http\Requests\Api\Auth\LogoutRequest; use App\Http\Requests\Api\Auth\MobileLoginRequest; use App\Http\Requests\Api\Auth\ResetPasswordActivationRequest; use App\Http\Requests\Api\Auth\RegisterRequest; use App\Http\Requests\Api\Auth\ResendCodeRequest; use App\Http\Requests\Api\Auth\ResetPasswordRequest; use App\Http\Requests\Api\Auth\SignUpWithSocialRequest; use App\Http\Requests\Api\Auth\StoreRegisterRequesr; use App\Http\Resources\UserResource; use App\Models\Authentication; use App\Models\Setting; use App\Models\User; use App\Services\AuthServices; use App\Traits\ApiTrait; use App\Traits\GeneralTrait; use App\Traits\Uploadable; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Str; use App\Http\Requests\Api\Auth\AddDaysRequest; use App\Http\Resources\StoreProfileResource; use App\Http\Requests\Api\Auth\StoreCompleteInfoRequest; class AuthController extends Controller { use ApiTrait, GeneralTrait, Uploadable; protected $token = 'Laravel Password Grant Client'; public function register(RegisterRequest $request) { $number = $this->convert2english($request->phone); $phone = $this->phoneValidate($number); if ($this->is_unique('phone', $phone)) { $msg = trans('auth.phone_unique'); return $this->failMsg($msg); } $user = User::create($request->validated()); $user->createOrUpdateDevice($request->toArray()); $data['token'] = $user->createToken($this->token)->accessToken; $data['user'] = new UserResource($user->refresh()); $user->sendVerificationCode(); // return $this->activationReturn(__('auth.register_success') , $data); return $this->successReturn(__('auth.register_success'), $data); } public function storeRegister(StoreRegisterRequesr $request) { if (User::where('phone', $request['phone'])->where('completed_info' , 'true')->first()) { $msg = trans('auth.phone_unique'); return $this->failMsg($msg); } if (User::where('email', $request['email'])->where('completed_info' , 'true')->first()) { $msg = trans('auth.email_unique'); return $this->failMsg($msg); } $service_data['user'] = $request->validated(); $service_data['device'] = $request->only(['device_id', 'device_type']); $service_data['store'] = $request->validated(); $register = new AuthServices(); $result = $register->storeRegister($service_data); $user = $result['user']; $user->createOrUpdateDevice($request->toArray()); $data['token'] = $user->createToken($this->token)->accessToken; $data['user'] = new StoreProfileResource($result['store']); $msg = trans('auth.sent_successfully'); // return $this->activationReturn($msg , $data); return $this->successReturn($msg, $data); } public function addDays(AddDaysRequest $request){ $register = new AuthServices(); $result = $register->addDays(json_decode($request['days'])); $data['user'] = new StoreProfileResource($result['store']); $msg = trans('auth.sent_successfully'); return $this->successReturn($msg, $data); } public function storeCompleteInfo(StoreCompleteInfoRequest $request){ $register = new AuthServices(); $store = $register->storeCompleteInfo($request->validated()); $data['token'] = $store->user->createToken('Laravel Password Grant Client')->accessToken; $data['user'] = new StoreProfileResource($store); $msg = trans('auth.activation_code_sent'); // return $this->activationReturn(__('auth.register_success') , $data); return $this->successReturn(__('auth.register_success'), $data); } public function login(LoginRequest $request) { $number = $this->convert2english($request->phone); $phone = $this->phoneValidate($number); if (Auth::attempt(['phone' => $phone, 'password' => $request->password , 'type' => 'user'])) { $user = Auth::user(); // if ($request['country_key'] == $user->country_key){ // $msg = trans('auth.wrong_country_key'); // return $this->failMsg($msg); // } if ($user->status == 'block'){ $msg = trans('auth.blocked_user'); return $this->blockReturn($msg); } $user->createOrUpdateDevice($request->toArray()); $data['token'] = $user->createToken($this->token)->accessToken; $data['user'] = new UserResource($user); if ($user->status == 'pending'){ $user->sendVerificationCode(); // $msg = trans('auth.pending_user'); // return $this->activationReturn($msg , $data); } return $this->successReturn('', $data); } $msg = trans('auth.wrong_credentials'); return $this->failMsg($msg); } public function storeLogin(LoginRequest $request) { $number = $this->convert2english($request->phone); $phone = $this->phoneValidate($number); if (Auth::attempt(['phone' => $phone, 'password' => $request->password , 'type' => 'store'])) { $user = Auth::user(); if ($user->status == 'block'){ $msg = trans('auth.blocked_user'); return $this->blockReturn($msg); } if ($user->approve == 'refused'){ $msg = trans('auth.you_are_refused'); return $this->refusedMsg($msg); } // if ($user->approve == 'pending'){ // $msg = trans('auth.you_need_to_be_approved'); // return $this->failMsg($msg); // } // if ($request['country_key'] == $user->country_key){ // $msg = trans('auth.wrong_country_key'); // return $this->failMsg($msg); // } $user->createOrUpdateDevice($request->toArray()); $data['token'] = $user->createToken($this->token)->accessToken; $data['user'] = new StoreProfileResource($user->store); if ($user->status == 'pending'){ $user->sendVerificationCode(); // $msg = trans('auth.pending_user'); // return $this->activationReturn($msg , $data); } if($user->completed_info == 'true'){ $msg = trans('auth.register_success'); }else{ $msg = trans('auth.need_complete'); } return $this->successReturn($msg, $data); } else { $msg = trans('auth.wrong_credentials'); return $this->failMsg($msg); } } public function logout(LogoutRequest $request) { $token = $request->user()->token(); $request->user()->deleteDevice($request->toArray()); $token->revoke(); $msg = trans('auth.logout_success'); return $this->successMsg($msg); } public function accountActivation(ActivationRequest $request) { $user = $request->user(); if ($user->code != $request['code']) { $msg = trans('auth.invalid_code'); return $this->failMsg($msg); } $user->markAsActive(); $msg = __('auth.account_activated'); $data['token'] = $user->createToken($this->token)->accessToken; $data['user'] = new UserResource($user); return $this->successReturn($msg, $data); } public function forgetPassword(ForgetPasswordRequest $request) { $number = $this->convert2english($request->phone); $phone = $this->phoneValidate($number); $user = User::where('phone', $phone)->first(); if (!$user) { $msg = trans('auth.user_not_found'); return $this->failMsg($msg); } $user->sendVerificationCode(); $msg = trans('auth.activation_code_sent'); return $this->successMsg($msg); } public function resetPassword(ResetPasswordRequest $request) { $number = $this->convert2english($request->phone); $phone = $this->phoneValidate($number); $user = User::where('phone', $phone)->first(); if (!$user) { $msg = trans('auth.user_not_found'); return $this->failMsg($msg); } $user->password = $request['password']; $user->update(); $msg = trans('auth.password_changed'); return $this->successMsg($msg); } public function resetPasswordActivation(ResetPasswordActivationRequest $request) { $number = $this->convert2english($request->phone); $phone = $this->phoneValidate($number); $user = User::where('phone', $phone)->first(); if (!$user) { $msg = trans('auth.user_not_found'); return $this->failMsg($msg); } if ($user->code != $request['code']) { $msg = trans('auth.invalid_code'); return $this->failMsg($msg); } $user->update([ 'code' => null, ]); $msg = trans('auth.sent_successfully'); return $this->successMsg($msg); } public function resendCode(ResendCodeRequest $request) { $number = $this->convert2english($request->phone); $phone = $this->phoneValidate($number); $user = User::where('phone', $phone)->first(); if (!$user) { $user = User::where('changed_phone', $phone)->first(); } if (!$user) { $msg = trans('auth.user_not_found'); return $this->failMsg($msg); } $user->sendVerificationCode(); $msg = trans('auth.activation_code_sent'); return $this->successMsg($msg); } public function resend_code(ResendCodeRequest $request) { $user = auth('api')->user(); if (!$user) { $msg = trans('auth.user_not_found'); return $this->failMsg($msg); } $user->sendVerificationCode(); $msg = trans('auth.activation_code_sent'); return $this->successMsg($msg); } }
Back to File Manager