api code global jain

This commit is contained in:
Abhishek Mali
2025-11-05 10:37:10 +05:30
commit 52fe7e2bec
2834 changed files with 1784903 additions and 0 deletions

View 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);
}
}