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\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\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\Requests\Api\Auth\UserStoreRegisterRequest; use App\Http\Resources\UserResource; use App\Http\Resources\StoreProfileResource; use App\Models\Authentication; use App\Models\Setting; use App\Models\User; use App\Models\Store; 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 Illuminate\Http\Request; use App\Models\StoreTiming; class AuthController extends Controller { use ApiTrait, GeneralTrait, Uploadable; public function register(RegisterRequest $request) { $number = $this->convert2english($request->phone); $phone = $this->phoneValidate($number); $Unique = $this->is_unique('phone', $phone); if ($Unique) { $msg = trans('auth.phone_unique'); return $this->failMsg($msg); } $request['remember_token'] = Str::random(10); $request['phone'] = $phone; $request['status'] = 'pending'; $user = User::create($request->except('password_confirmation', 'device_id', 'device_type')); $user->createOrUpdateDevice($request->toArray()); $data['token'] = $user->createToken('Laravel Password Grant Client')->accessToken; $data['user'] = new UserResource($user); $user->sendVerificationCode(); return $this->successReturn('', $data); } public function userStoreRegister(UserStoreRegisterRequest $request) { $user = User::create($request->validated() + ['completed_info' => 'false']); $user->createOrUpdateDevice($request->toArray()); $data['token'] = $user->createToken('Laravel Password Grant Client')->accessToken; $data['user'] = new UserResource($user); return $this->dataReturn($data); } public function storeRegister(StoreRegisterRequesr $request) { $user = auth()->user(); $store = Store::create($request->validated() + ['user_id' => $user->id]); $user->update($request->except('name') + ['completed_info' => 'true' , 'type' => 'store']); $data['user'] = new StoreProfileResource($store); $user->sendVerificationCode(); $msg = trans('auth.sent_successfully'); return $this->successReturn($msg, $data); } public function storeTiming(Request $request) { $user = auth()->user(); $store = $user->store; if (isset($request['days'])) { foreach (json_decode($request['days']) as $day) { $timing = new StoreTiming(); $timing->day = $day->day; $timing->from = $day->from; $timing->to = $day->to; $timing->store_id = $store->id; $timing->save(); } } $data['user'] = new StoreProfileResource($store); $user->sendVerificationCode(); $msg = trans('auth.activation_code_sent'); return $this->successReturn($msg, $data); } 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(); $data['user'] = new UserResource($user); return $this->successReturn('', $data); } 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); } public function storeMobileLogin(MobileLoginRequest $request) { $number = $this->convert2english($request->phone); $phone = $this->phoneValidate($number); $request['phone'] = $phone; if ($user = User::where('phone', $phone)->first()) { if ($user->status == 'block') { $msg = trans('auth.blocked_user'); return $this->failMsg($msg); } if ($user->country_key !== $request['country_key']) { $msg = trans('auth.wrong_country_key'); return $this->failMsg($msg); } if ($user->type !== 'store') { $msg = trans('auth.wrong_store'); return $this->failMsg($msg); } if ($user->completed_info == 'false') { $msg = trans('auth.completed_info'); return $this->failMsg($msg); } if ($user->approve == 'pending') { $msg = trans('auth.you_need_to_be_approved'); return $this->failMsg($msg); } if ($user->approve == 'refused') { $msg = trans('auth.you_are_refused'); return $this->failMsg($msg); } $user->update(['status' => 'pending']); } else { $msg = trans('auth.wrong_credentials'); return $this->failMsg($msg); } $user->createOrUpdateDevice($request->toArray()); $data['token'] = $user->createToken('Laravel Password Grant Client')->accessToken; $data['user'] = new UserResource($user); $user->sendVerificationCode(); return $this->successReturn('', $data); } public function mobileLogin(MobileLoginRequest $request) { $number = $this->convert2english($request->phone); $phone = $this->phoneValidate($number); $request['phone'] = $phone; if ($user = User::where('phone', $phone)->first()) { if ($user->status == 'block') { $msg = trans('auth.blocked_user'); return $this->failMsg($msg); } if ($user->country_key !== $request['country_key']) { $msg = trans('auth.wrong_country_key'); return $this->failMsg($msg); } // ! in_array($user->type,['user','delegate']) if ($user->type != 'user') { $msg = trans('auth.wrong_user'); return $this->failMsg($msg); } $user->update(['status' => 'pending']); } else { // if (isset($request->social_id)) { // $authentication = Authentication::with('user')->where('uid', '=', $request->social_id)->first(); // if ($authentication) { // $user = User::where('id', '=', $authentication->user_id)->first(); // $user->update([ // 'phone' => $phone, // ]); // } else { // $request['status'] = 'pending'; // $request['completed_info'] = 'false'; // $user = User::create($request->except('password_confirmation', 'device_id', 'device_type')); // } // } else { // $request['status'] = 'pending'; // $request['completed_info'] = 'false'; // $user = User::create($request->except('password_confirmation', 'device_id', 'device_type')); // } $msg = trans('auth.wrong_credentials'); return $this->failMsg($msg); } $user->createOrUpdateDevice($request->toArray()); $data['token'] = $user->createToken('Laravel Password Grant Client')->accessToken; $data['user'] = new UserResource($user); $user->sendVerificationCode(); return $this->successReturn('', $data); } #social public function checkUserSignInSocial(SignUpWithSocialRequest $request) { $data = []; $lang = $request->header('lang'); if ($authentication = Authentication::with('user')->where('uid', '=', $request->social_id)->first()) { $authentication->update([ 'username' => $request->name ?? '', 'email' => $request->email ?? '', ]); if ($user = $authentication->user) { $user->update([ 'name' => $request->name ?? '', 'email' => $request->email ?? '', 'phone' => $request->phone ?? '', 'status' => 'active', 'active' => 1, 'completed_info' => 'true', ]); $data['registered_social'] = false; $data['phone_registered'] = ($user->phone != null) ? true : false; } } else { if ($request->email && $user = User::where('email', '=', $request->email)->first()) { $user->update(['name' => $request->name ?? '']); $authentication = Authentication::create([ 'uid' => $request->social_id, 'user_id' => $user->id, 'username' => $request->name, 'email' => $request->email, ]); $data['phone_registered'] = ($user->phone != null) ? true : false; $data['registered_social'] = true; } else { $user = User::create([ 'name' => $request->name ?? '', 'email' => $request->email ?? '', 'phone' => $request->phone ?? '', 'status' => 'active', 'active' => 1, 'completed_info' => 'true', ]); $user->code = $user->sendVerificationCode(); $user->update(); $authentication = Authentication::create([ 'uid' => $request->social_id, 'user_id' => $user->id, 'username' => $request->name, 'email' => $request->email, ]); $data['phone_registered'] = ($user->phone != null) ? true : false; $data['registered_social'] = false; } } $user->createOrUpdateDevice($request->toArray()); $is_registered = false; if ($user->name) { $is_registered = true; } else { $is_registered = false; } $data['token'] = $user->createToken('Laravel Password Grant Client')->accessToken; $data['user'] = new UserResource($user); $data['user']['google_places'] = Setting::where('key', 'google_places')->first()->value; $data['user']['is_registered'] = $is_registered; return $this->successReturn('', $data); } }
Back to File Manager