File: /var/www/html/fieldsblaze-heroku/app/Http/Controllers/AdminController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Validator;
use DB;
use App\Library\UserLib;
use App\Models\User;
use App\Models\Admin;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Support\Facades\Crypt;
class AdminController extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
protected $userLib;
public function __construct(UserLib $userLib)
{
$this->userLib = $userLib;
}
public function index()
{
return view('welcome');
}
//User Login
public function login(Request $request) {
//TODO What is device_token
// $data = $request->json()->all();
$data = $request->all();
$token = $this->userLib->tokenGenrator();
$CreatedDate = date('Y-m-d H:i:s',time());
$tblData = array();
//$UserId = $data['UserId'];
$validator = Validator::make($data, [
'Email' => 'required|email|max:255',
'Password' => 'required|max:255',
]);
//check validation
if ($validator->fails())
{
$response = [
'Success' => false,
'ResponseMessage' => "Email / Password is required!",
'ResponseCode' => '220',
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
//Check Memeber is exist or not
$user = Admin::where('Email', $data['Email'])->get();
if ($user->count() > 0)
{ //user is exist
$user = $user->first();
$UserId = $user->UserId;
$isActive = $user->isActive;
$Password = $user->Password;
if($user->Status != 'Activated')
{
$response = [
'Success' => false,
'ResponseMessage' => "Your account is not active. Please email support@fieldsalesapp.co",
'ResponseCode' => "208",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
if($isActive == 0)
{
$response = [
'success' => false,
'ResponseMessage' => "Your account is not active. Please contact to Admin",
'ResponseCode' => "208",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$tempPassword = isset($data['Password']) ? $data['Password'] : '';
if(!$tempPassword)
{
$response = [
'success' => false,
'ResponseMessage' => "Please enter password",
'ResponseCode' => "206",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
if(md5(Crypt::decryptString($Password)) == md5($tempPassword))
{
//get user details
$tblData['UserId'] = $UserId;
$tblData['AuthToken'] = $token;
$tblData['CreatedDate'] = $CreatedDate;
$auth = DB::connection('DBD')->table('tbl_user_auth')->insert($tblData);
unset($user->Password);
unset($user->ResetKey);
unset($user->TempPassword);
unset($user->OtpPassword);
unset($user->reset_key);
if($auth)
{ // success
$UserName = $user->FirstName.' '.$user->LastName;
$UserEmail = $user->Email;
session(['UserId' => $UserId, 'UserName' => $UserName, 'UserEmail' => $UserEmail]);
$response = [
'Success' => true,
'ResponseMessage' => "Login successfully",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $token,
'Auth' => $auth,
'User' => $user,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Invalid Auth",
'ResponseCode' => "203",
'Auth' => $auth ,
'ApiVersion' => env('APP_VERSION'),
];
}
return response()->json($response);
}
else
{
$response = [
'Success' => false,
'ResponseMessage' => "Invalid password!",
'ResponseCode' => "203",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
else
{
//email is not exist
$response = [
'success' => false,
'ResponseMessage' => "Admin email does not exist!",
'ResponseCode' => "202",
];
return response()->json($response);
}
}
//logout
//User logout
public function logout(Request $request) {
//TODO What is device_token
// $data = $request->json()->all();
$data = $request->all();
$token = $this->userLib->tokenGenrator();
$CreatedDate = date('Y-m-d H:i:s',time());
$tblData = array();
$UserEmail = session('UserEmail');
//Check user is exist or not
$user = Admin::where('Email', $UserEmail)->get();
if ($user->count() > 0)
{ //user is exist
$user = $user->first();
$UserId = $user->UserId;
//get user details
$auth = DB::connection('DBD')->table('tbl_user_auth')->where('UserId',$UserId)->delete();
if($auth)
{ // success
$UserName = $user->FirstName.' '.$user->LastName;
$UserEmail = $user->Email;
$request->session()->flush();
$response = [
'Success' => true,
'ResponseMessage' => "logout successfully",
'ResponseCode' => "200",
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Invalid Auth",
'ResponseCode' => "203",
'Auth' => $auth ,
'ApiVersion' => env('APP_VERSION'),
];
}
return response()->json($response);
}
else
{
//email is not exist
$response = [
'success' => false,
'ResponseMessage' => "Admin email does not exist!",
'ResponseCode' => "202",
];
return response()->json($response);
}
}
//logout direct
//User logout direct
public function logoutDirect(Request $request) {
//TODO What is device_token
// $data = $request->json()->all();
$data = $request->all();
$token = $this->userLib->tokenGenrator();
$CreatedDate = date('Y-m-d H:i:s',time());
$tblData = array();
$UserEmail = session('UserEmail');
//Check user is exist or not
$user = Admin::where('Email', $UserEmail)->get();
if ($user->count() > 0)
{ //user is exist
$user = $user->first();
$UserId = $user->UserId;
//get user details
$auth = DB::connection('DBD')->table('tbl_user_auth')->where('UserId',$UserId)->delete();
$request->session()->flush();
return redirect('/login');
}
else
{
$request->session()->flush();
return redirect('/login');
}
}
}