Viewing file: ApiController.php (3.18 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php namespace App\Http\Controllers;
use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Validator; use App\Models\User; use App\Models\TransactionDetails; use App\Models\AgentRating; use App\Models\AgentLoginLog; use Carbon\Carbon;
class ApiController extends Controller { public function login(Request $request) { // Validate request $validator = Validator::make($request->all(), [ 'user_name' => 'required', 'password' => 'required|string|min:6' ]); if ($validator->fails()) { return response()->json(['error' => $validator->errors()], 422); } // Find user by email $user = User::where('email', $request->user_name)->first(); // Check if user exists and password matches if ($user && Hash::check($request->password, $user->password)) { AgentLoginLog::create([ 'user_id' => $user->id, 'device' => 2, 'device_info' => $request->header('User-Agent'), 'type' => 'login', ]); return response()->json(['message' => 'Login successful', 'user' => $user], 200); } return response()->json(['error' => 'Invalid credentials'], 401); } function getService($user_id , Request $request) { // $data=TransactionDetails::where("user_id",$user_id)->where("rate",0)->orderBy('TRANS_ID','desc')->first(); // if ($data) { // $data->rate=1; // $data->save(); // } // AgentRating::create([ // 'trans_id' => $data->TRANS_ID, // 'user_id' => $data->USER_ID, // 'service_id' => $data->SERVICE_ID, // 'rating' => 0 // ]); // var_dump($request->input('last_date')); // $query = AgentRating::query(); // if ($request->input('last_date')) { // $query->where('created_at', '>', $request->input('last_date')); // }else { // $query->where('created_at', '>', Carbon::today()); // } // $data = $query->where('user_id', $user_id)->whereNull('rating')->orderBy('created_at','desc')->first(); $query = AgentRating::query();
// Get the latest created_at where rating is not null (at least 0) $latest = AgentRating::where('user_id', $user_id) ->whereNotNull('rating') ->orderBy('created_at', 'desc') ->value('id'); if ($latest) { $query->where('id', '>', $latest); } $data = $query->where('user_id', $user_id) ->whereNull('rating') ->where('created_at', '>', Carbon::today()) ->orderBy('created_at', 'desc') ->first(); if ($data) { $agerr=AgentRating::find($data->id); $agerr->update([ 'rating' => 0 ]); } return response()->json(['data' => $data], 200); } function setRate(Request $req) { AgentRating::where('id', $req->input('trans_id'))->update([ 'rating' => $req->input('rating') ]); return response()->json(['message' => 'Successful'], 200); } }
?>
|