api code global jain
This commit is contained in:
262
app/Http/Controllers/Api/V1/AuthController.php
Normal file
262
app/Http/Controllers/Api/V1/AuthController.php
Normal file
@@ -0,0 +1,262 @@
|
||||
<?php
|
||||
namespace App\Http\Controllers\Api\V1;
|
||||
use App\Models\User;
|
||||
use App\Constant\Constant;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use App\Http\Controllers\Api\ApiController;
|
||||
use App\Http\Requests\ChangePassword\SetPasswordRequest;
|
||||
use App\Jobs\Notifications\Shravak\SendNewSignUp;
|
||||
use App\Repositories\Api\Access\User\UserInterface as UserRepo;
|
||||
|
||||
|
||||
class AuthController extends ApiController
|
||||
{
|
||||
/**
|
||||
* @param UserRepo $userRepo
|
||||
* AuthController constructor.
|
||||
*
|
||||
*/
|
||||
public function __construct(UserRepo $userRepo)
|
||||
{
|
||||
$this->userRepo = $userRepo;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param object $request
|
||||
* @return array
|
||||
*/
|
||||
public function login(Request $request)
|
||||
{
|
||||
try {
|
||||
$validation = Validator::make($request->all(), [
|
||||
'email' => 'required',
|
||||
'country_code' => 'sometimes',
|
||||
'via' => 'required|in:OTP,PASSWORD',
|
||||
'password' => 'required_if:via,=,PASSWORD'
|
||||
]);
|
||||
|
||||
if ($validation->fails()) {
|
||||
return $this->throwValidation($validation->messages()->first());
|
||||
}
|
||||
$response = $this->userRepo->loginVerification($request->all());
|
||||
$this->setStatusCode($response['status']);
|
||||
|
||||
} catch (\Exception $ex) {
|
||||
$response['message'] = $ex->getMessage();
|
||||
$this->setStatusCode(Constant::CODE_403);
|
||||
}
|
||||
return $this->respond($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param object $request
|
||||
* @return array
|
||||
*/
|
||||
public function register(Request $request)
|
||||
{
|
||||
$response = [];
|
||||
$verified = $request['verified'] ?? Constant::NULL;
|
||||
$validation = Validator::make($request->all(), [
|
||||
'name' => 'required|string',
|
||||
'email' => 'required|unique:users',
|
||||
'country_code' => 'required',
|
||||
'dharma' => 'required'
|
||||
]);
|
||||
|
||||
if ($validation->fails()) {
|
||||
return $this->throwValidation($validation->messages()->first());
|
||||
}
|
||||
|
||||
try {
|
||||
$emailHash = md5(strtolower($request->email)); //converted to hash
|
||||
|
||||
if (filter_var($request->email, FILTER_VALIDATE_EMAIL)) {
|
||||
$checkUser = User::where([
|
||||
'email_hash' => $emailHash,
|
||||
'deleted_at' => Constant::NULL
|
||||
])->first();
|
||||
} else {
|
||||
$checkUser = User::where([
|
||||
'mobile' => $request->email,
|
||||
'country_code' => $request->country_code,
|
||||
'deleted_at' => Constant::NULL
|
||||
])->first();
|
||||
}
|
||||
|
||||
//To send the verification code to the unverified user
|
||||
if (!empty($checkUser)) {
|
||||
//Remove confirmation code
|
||||
removeUserMetaValue($checkUser->id, 'confirmation_code');
|
||||
|
||||
$otp = generateOtp();
|
||||
$dataConfirmationCode['user_id'] = $checkUser->id;
|
||||
$dataConfirmationCode['meta_key'] = 'confirmation_code';
|
||||
$dataConfirmationCode['meta_value'] = bcrypt($otp);
|
||||
|
||||
$dataRegister['user_id'] = $checkUser->id;
|
||||
$dataRegister['meta_key'] = 'registered_from';
|
||||
$dataRegister['meta_value'] = 'Mobile';
|
||||
|
||||
$dataRegisterOs['user_id'] = $checkUser->id;
|
||||
$dataRegisterOs['meta_key'] = 'registered_os';
|
||||
$dataRegisterOs['meta_value'] = 'Android';
|
||||
|
||||
$dataRegisterWith['user_id'] = $checkUser->id;
|
||||
$dataRegisterWith['meta_key'] = 'registered_with';
|
||||
$dataRegisterWith['meta_value'] = 'Normal';
|
||||
|
||||
//Adding details to user meta
|
||||
addUserMultipleMetaValue([$dataRegister, $dataRegisterOs, $dataRegisterWith]);
|
||||
|
||||
//event for sending mail of email verification
|
||||
// event(new \App\Events\Frontend\Auth\UserConfirmation($checkUser, $otp));
|
||||
|
||||
$response['status'] = Constant::CODE_403;
|
||||
$response['message'] = trans('auth.contact_exists');
|
||||
$this->setStatusCode($response['status']);
|
||||
|
||||
return $this->respond($response);
|
||||
}
|
||||
|
||||
if ($verified == Constant::STATUS_ONE) {
|
||||
$response = $this->userRepo->createUser($request->all(), $emailHash);
|
||||
} else {
|
||||
$response['status'] = Constant::CODE_200;
|
||||
$response['message'] = trans('auth.register_success');
|
||||
}
|
||||
$this->setStatusCode($response['status']);
|
||||
|
||||
} catch (\Exception $ex) {
|
||||
$response['message'] = $ex->getMessage();
|
||||
$this->setStatusCode(Constant::CODE_403);
|
||||
}
|
||||
|
||||
return $this->respond($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param object $request
|
||||
* @return array
|
||||
*/
|
||||
public function confirmOtp(Request $request)
|
||||
{
|
||||
$response = [];
|
||||
|
||||
try {
|
||||
$validation = Validator::make($request->all(), [
|
||||
'email' => 'required',
|
||||
'otp' => 'required',
|
||||
]);
|
||||
|
||||
if ($validation->fails()) {
|
||||
return $this->throwValidation($validation->messages()->first());
|
||||
}
|
||||
$response = $this->userRepo->confirmOtp($request->all());
|
||||
$this->setStatusCode($response['status']);
|
||||
|
||||
} catch (\Exception $ex) {
|
||||
$response['message'] = $ex->getMessage();
|
||||
$response['success'] = Constant::STATUS_FALSE;
|
||||
$this->setStatusCode(Constant::CODE_403);
|
||||
}
|
||||
|
||||
return $this->respond($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param object $request
|
||||
* @return array
|
||||
*/
|
||||
public function resendOtp(Request $request)
|
||||
{
|
||||
$response = [];
|
||||
|
||||
try {
|
||||
$validation = Validator::make($request->all(), [
|
||||
'email' => 'required',
|
||||
]);
|
||||
|
||||
if ($validation->fails()) {
|
||||
return $this->throwValidation($validation->messages()->first());
|
||||
}
|
||||
$response = $this->userRepo->resendOtp($request->all());
|
||||
$this->setStatusCode($response['status']);
|
||||
|
||||
} catch (\Exception $ex) {
|
||||
$response['message'] = $ex->getMessage();
|
||||
$response['success'] = Constant::STATUS_FALSE;
|
||||
$this->setStatusCode(Constant::CODE_403);
|
||||
}
|
||||
|
||||
return $this->respond($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @return JsonResponse
|
||||
*
|
||||
* Social Login User
|
||||
*
|
||||
*/
|
||||
public function socialLogin(Request $request)
|
||||
{
|
||||
$response = [];
|
||||
|
||||
try {
|
||||
$validation = Validator::make($request->all(), [
|
||||
'provider' => 'required',
|
||||
'id' => 'required',
|
||||
'email' => 'required|email|unique:users,email,null,id,deleted_at,null',
|
||||
'name' => 'required',
|
||||
]);
|
||||
|
||||
if ($validation->fails()) {
|
||||
return $this->throwValidation($validation->messages()->first());
|
||||
}
|
||||
$response = $this->userRepo->findOrCreateSocial($request->all());
|
||||
$this->setStatusCode($response['status']);
|
||||
|
||||
} catch (\Exception $ex) {
|
||||
$response['message'] = $ex->getMessage();
|
||||
$this->setStatusCode(Constant::CODE_403);
|
||||
}
|
||||
return $this->respond($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function setPassword(SetPasswordRequest $request)
|
||||
{
|
||||
$response = [];
|
||||
try{
|
||||
$response = $this->userRepo->setPassword($request->all());
|
||||
$this->setStatusCode($response['status']);
|
||||
|
||||
} catch (\Exception $ex) {
|
||||
$response['message'] = $ex->getMessage();
|
||||
$response['success'] = Constant::STATUS_FALSE;
|
||||
$this->setStatusCode(Constant::CODE_403);
|
||||
}
|
||||
return $this->respond($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function userExist(Request $request)
|
||||
{
|
||||
$response = [];
|
||||
try{
|
||||
$response = $this->userRepo->userExist($request->all());
|
||||
$this->setStatusCode($response['status']);
|
||||
|
||||
} catch (\Exception $ex) {
|
||||
$response['message'] = $ex->getMessage();
|
||||
$response['success'] = Constant::STATUS_FALSE;
|
||||
$this->setStatusCode(Constant::CODE_403);
|
||||
}
|
||||
return $this->respond($response);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user