Current File : /home/inlingua/www/crm.vprotectindia.com/app/Http/Controllers/API/UserController.php |
<?php
namespace App\Http\Controllers\API;
use Illuminate\Support\Facades\Hash;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Model\Customer\Customer;
use App\Model\User;
use App\Model\OutstandingReport;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Validator;
use Laravel\Passport\Passport;
class UserController extends Controller
{
public $successStatus = 200;
private $client;
private $domain;
public function __construct()
{
$this->domain =env('APP_URL');
}
/**
* login api
*
* @return \Illuminate\Http\Response
*/
public function login(Request $request){
//return response()->json(['Sucess'=>request('email').'=>'.request('password')], 200);
//print_r($request->all());
if(Auth::attempt(['email' => request('email'), 'password' => request('password')])){
$user = Auth::user();
$success['token'] = $user->createToken('MyApp')->accessToken;
//$success['token'] =$user->createToken('MyToken', ['place-orders'])->accessToken;
$success[]='1';
return response()->json(['success' => $success], $this->successStatus);
}
else{
return response()->json(['error'=>'Invalid Username & Password!'], 401);
}
}
public function customer_login(Request $request){
// return response()->json(['Sucess'=>request('email').'=>'.request('password')], 200);
if(Auth::guard('customers')->attempt(['email' => request('email'), 'password' => request('password')])){
$customer = Auth::guard('customers')->user();
$date=time();
$password = Hash::make($date);
$query=DB::table('customers')
->where('id', $customer->id)
->update(['remember_token' => $password]);
//echo $customer->HasApiTokens('MyApp')->accessToken;
//$success['token'] = $user->createToken('MyApp')->accessToken;
$success['status']='success';
$success['token']=$password;
$success['detals']=$customer;
return response()->json(['success' => $success], 200);
}
else{
return response()->json(['error'=>'Invalid Username & Password!'], 401);
exit;
}
}
/**
* Register api
*
* @return \Illuminate\Http\Response
*/
public function register(Request $request)
{
//return response()->json(['sucess'=>$request], 401);
$validator = Validator::make($request->all(), [
'name' => 'required',
'email' => 'required|email',
'password' => 'required',
'c_password' => 'required|same:password',
]);
if ($validator->fails()) {
return response()->json(['error'=>$validator->errors()], 401);
}
$input = $request->all();
$input['password'] = bcrypt($input['password']);
$user = User::create($input);
$success['token'] = $user->createToken('MyApp')->accessToken;
$success['name'] = $user->name;
return response()->json(['success'=>$success], $this->successStatus);
}
/**
* details api
*
* @return \Illuminate\Http\Response
*/
public function details()
{
//print_r($request->all());
$user = Auth::user();
//$success['token'] = $user->createToken('MyApp')->accessToken;
return response()->json(['success' => $user], $this->successStatus);
}
public function gatewaydetails(Request $request)
{
$request->header('Authorization');
$splittoke=explode(" ",$request->header('Authorization'));
$token=$splittoke[1];
$exists =$this->varify_user_token($token);
if($exists===null){
return response()->json(['error'=>'Invalid Username & Password!'], 401);
}else{
//return($query);
$report['CCAvenue_MERCHANT_ID']=config('indipay.ccavenue.merchantId');
$report['CCAvenue_ACCESS_CODE']=config('indipay.ccavenue.accessCode');
$report['CCAvenue_WORKING_KEY']=config('indipay.ccavenue.workingKey');
return response()->json(['success' => $report], $this->successStatus);
}
}
public function getpayments(Request $request)
{
$request->header('Authorization');
$splittoke=explode(" ",$request->header('Authorization'));
$token=$splittoke[1];
$exists =$this->varify_user_token($token);
if($exists===null){
return response()->json(['error'=>'Invalid Username & Password!'], 401);
}else{
//return($query);
$customer_number=$exists->ACCOUNT_NUMBER;
$reports=OutstandingReport::query()->where('customer_number',$customer_number)->orderBy('id', 'DESC')->get();
if(count($reports)>0){
$report['status']=$reports;
}else {
$report['status']='no record found';
}
return response()->json(['success' => $report], $this->successStatus);
}
}
public function varify_user_token($token){
$query=DB::table('customers')
->where('remember_token', $token)
->first();
return $query;
}
public function deshboard_count(Request $request)
{
$request->header('Authorization');
$splittoke=explode(" ",$request->header('Authorization'));
$token=$splittoke[1];
$exists =$this->varify_user_token($token);
if($exists===null){
return response()->json(['error'=>'Invalid Username & Password!'], 401);
}else{
//return($query);
$customer_number=$exists->ACCOUNT_NUMBER;
$paid=0;
$unpaid=0;
$totalamt=0;
$recamt=0;
//$id = Auth::user()->user_name;
//$cust_id=CustomerMasterModel::where('customer_code',$id)->first()->id;
//$customer_number=Auth::guard('customers')->user()->ACCOUNT_NUMBER;
$Subscriptionquery = 0;
$Invoicequery= DB::table('outstanding_reports')
->where('customer_number',$customer_number)
->get();
$total_recamt=DB::table('outstanding_reports')
->where('customer_number',$customer_number)
->where('txn_status','0')
->sum('bal_func_amt');
$id['id']='';
foreach ($Invoicequery as $row) {
//$totalamt = isset(InvoiceMasters::find($row->id)->ledgers()->first()->amount)?InvoiceMasters::find($row->id)->ledgers()->first()->amount:"0";
//$recamt =InvoiceMasters::find($row->id)->receipt()->sum('amount');
if($row->txn_status=='1')
{
$paid++;
}
else{
$unpaid ++;
$id['id'].=$row->id.'@';
}
}
$report= array(
'subscription' =>0,
'invoice'=>$Invoicequery->count(),
'paid'=>$paid,
'unpaid'=>$unpaid,
'balance'=>$total_recamt,
'orderid'=>$id['id'],
);
}
//$report=OutstandingReport::query()->where('customer_number',$customer_number)->orderBy('id', 'DESC')->get();
return response()->json(['success' => $report], $this->successStatus);
}
public function changepassword(Request $request)
{
$request->header('Authorization');
$splittoke=explode(" ",$request->header('Authorization'));
$token=$splittoke[1];
$exists =$this->varify_user_token($token);
if($exists===null){
return response()->json(['error'=>'Invalid Username & Password!'], 401);
}else{
//return($query);
$customer_number=$exists->ACCOUNT_NUMBER;
$curPassword = $request->current_password;
$newPassword = $request->password;
$id=$exists->id;
//$obj_user = Customer::where('id', $id)->first();
//$obj_user = Customer::find($id);
$password = Hash::make($newPassword);
//$obj_user->save();
$report=DB::table('customers')
->where('id', $id)
->update(['password' => $password]);
$reports['status']='success';
$reports['details']=$report;
return response()->json(['success' => $reports], $this->successStatus);
}
}
}