fix datatable using token api and paginate when searching, fix skrd_amount column to decimal 20

This commit is contained in:
arifal hidayat
2025-01-30 01:28:36 +07:00
parent 538cdb87ae
commit 8591fafd84
27 changed files with 1228 additions and 1012 deletions

View File

@@ -8,6 +8,7 @@ use App\Http\Resources\GlobalSettingResource;
use App\Models\GlobalSetting;
use App\Traits\GlobalApiResponse;
use Exception;
use Illuminate\Http\Request;
class GlobalSettingsController extends Controller
{
@@ -15,9 +16,13 @@ class GlobalSettingsController extends Controller
/**
* Display a listing of the resource.
*/
public function index()
public function index(Request $request)
{
$query = GlobalSetting::query()->orderBy('id','desc');
if($request->has('search') && !empty($request->get("search"))){
$query->where('key', 'LIKE', '%'.$request->get('search').'%');
}
return GlobalSettingResource::collection($query->paginate());
}

View File

@@ -20,7 +20,7 @@ class ImportDatasourceController extends Controller
$search = $request->get("search");
$query->where('status', 'like', "%".$search."%");
}
return ImportDatasourceResource::collection($query->paginate(10));
return ImportDatasourceResource::collection($query->paginate());
}
/**

View File

@@ -12,9 +12,12 @@ class RequestAssignmentController extends Controller
/**
* Display a listing of the resource.
*/
public function index()
public function index(Request $request)
{
$query = PbgTask::query();
if($request->has('search') && !empty($request->get("search"))){
$query->where('name', 'LIKE', '%'.$request->get('search').'%');
}
return RequestAssignmentResouce::collection($query->paginate());
}

View File

@@ -4,12 +4,15 @@ namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Http\Requests\Auth\LoginRequest;
use App\Http\Resources\UserResource;
use App\Models\User;
use App\Traits\GlobalApiResponse;
use Illuminate\Support\Facades\Hash;
use Illuminate\Http\Request;
class UsersController extends Controller
{
use GlobalApiResponse;
public function login(LoginRequest $request){
$user = User::where('email', $request->email)->first();
@@ -21,7 +24,15 @@ class UsersController extends Controller
return response(['user' => $user, 'token' => $token], 200);
}
public function index(){
return response()->json(User::all());
public function index(Request $request){
$query = User::query();
if($request->has('search') && !empty($request->get("search"))){
$query->where('name', 'LIKE', '%'.$request->get('search').'%');
}
return UserResource::collection($query->paginate());
}
public function logout(Request $request){
$request->user()->tokens()->delete();
return response()->json(['message' => 'logged out successfully']);
}
}

View File

@@ -33,6 +33,15 @@ class AuthenticatedSessionController extends Controller
$request->session()->regenerate();
// Ambil user yang sedang login
$user = Auth::user();
// Buat token untuk API
$token = $user->createToken(env('APP_KEY'))->plainTextToken;
// Simpan token di session (bisa digunakan di JavaScript)
session(['api_token' => $token]);
return redirect()->intended(RouteServiceProvider::HOME);
}
@@ -44,12 +53,16 @@ class AuthenticatedSessionController extends Controller
*/
public function destroy(Request $request)
{
if($request->user()){
$request->user()->tokens()->delete();
}
Auth::guard('web')->logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect('/');
return redirect()->route('login');
}
}

View File

@@ -7,12 +7,18 @@ use Illuminate\Http\Request;
use Illuminate\Validation\Rules;
use Illuminate\Support\Facades\Hash;
use App\Models\User;
use App\Traits\GlobalApiResponse;
use Illuminate\Auth\Events\Registered;
class UsersController extends Controller
{
use GlobalApiResponse;
public function allUsers(Request $request){
$users = User::all();
return $this->resSuccess($users);
}
public function index(){
$users = User::paginate(20);
$users = User::paginate();
return view('master.users.index', compact('users'));
}
public function create(){

View File

@@ -15,6 +15,7 @@ class RequestAssignmentResouce extends JsonResource
public function toArray(Request $request): array
{
return [
'id' => $this->id,
'uuid' => $this->uuid,
'name' => $this->name,
'owner_name' => $this->owner_name,

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class UserResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @return array<string, mixed>
*/
public function toArray(Request $request): array
{
return [
'id' =>$this->id,
'name' =>$this->name,
'email' =>$this->email,
'created_at' =>$this->created_at->toDateTimeString(),
'updated_at' =>$this->updated_at->toDateTimeString(),
'position' => $this->position,
'firstname' => $this->firstname,
'lastname' => $this->lastname,
];
}
}