|
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 : |
<?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);
}
}
}