add crud api global setting and make global api response and handle response web and api on bootstrap app
This commit is contained in:
@@ -2,15 +2,15 @@
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Helpers\ApiResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\PbgTask;
|
||||
use App\Models\PbgTaskRetributions;
|
||||
use App\Traits\GlobalApiResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class DashboardController extends Controller
|
||||
{
|
||||
use GlobalApiResponse;
|
||||
|
||||
public function businnessDocument(Request $request){
|
||||
$businessData = DB::table('pbg_task')
|
||||
->leftJoin('pbg_task_retributions', 'pbg_task.uuid', '=', 'pbg_task_retributions.pbg_task_uid')
|
||||
@@ -30,7 +30,7 @@ class DashboardController extends Controller
|
||||
"series" => [$taskCount],
|
||||
"total" => $taskTotal
|
||||
];
|
||||
return ApiResponse::successResponse($result, "Successfully count businness doucument");
|
||||
return $this->resSuccess($result);
|
||||
}
|
||||
public function nonBusinnessDocument(Request $request){
|
||||
$businessData = DB::table('pbg_task')
|
||||
@@ -50,7 +50,7 @@ class DashboardController extends Controller
|
||||
"series" => [$taskCount],
|
||||
"total" => $taskTotal
|
||||
];
|
||||
return ApiResponse::successResponse($result, "Successfully count not businness doucument");
|
||||
return $this->resSuccess($result);
|
||||
}
|
||||
public function allTaskDocuments(){
|
||||
$query = DB::table('pbg_task')
|
||||
@@ -67,6 +67,6 @@ class DashboardController extends Controller
|
||||
"series" => [$taskCount],
|
||||
"total" => $taskTotal
|
||||
];
|
||||
return ApiResponse::successResponse($result, "Successfully count all tasks documents");
|
||||
return $this->resSuccess($result);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,10 +6,12 @@ use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\GlobalSettingRequest;
|
||||
use App\Http\Resources\GlobalSettingResource;
|
||||
use App\Models\GlobalSetting;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Traits\GlobalApiResponse;
|
||||
use Exception;
|
||||
|
||||
class GlobalSettingsController extends Controller
|
||||
{
|
||||
use GlobalApiResponse;
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
@@ -25,15 +27,10 @@ class GlobalSettingsController extends Controller
|
||||
public function store(GlobalSettingRequest $request)
|
||||
{
|
||||
try {
|
||||
//code...
|
||||
$data = GlobalSetting::create($request->validated());
|
||||
return new GlobalSettingResource($data);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json(
|
||||
[
|
||||
"errors" => $e->getMessage()
|
||||
]
|
||||
);
|
||||
return $this->resError($e->getMessage(), null, $e->getCode());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,15 +39,36 @@ class GlobalSettingsController extends Controller
|
||||
*/
|
||||
public function show(string $id)
|
||||
{
|
||||
//
|
||||
try{
|
||||
$data = GlobalSetting::find($id);
|
||||
if(!$data){
|
||||
return $this->resError("Invalid id", null, 404);
|
||||
}
|
||||
return new GlobalSettingResource($data);
|
||||
}catch(Exception $e){
|
||||
return $this->resError($e->getMessage(), null, $e->getCode());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request, string $id)
|
||||
public function update(GlobalSettingRequest $request, string $id)
|
||||
{
|
||||
//
|
||||
try{
|
||||
|
||||
$data = GlobalSetting::find($id);
|
||||
if(!$data){
|
||||
return $this->resError("Invalid id", null, 400);
|
||||
}
|
||||
|
||||
$data->update($request->validated());
|
||||
|
||||
return new GlobalSettingResource($data);
|
||||
|
||||
}catch(Exception $e){
|
||||
return $this->resError($e->getMessage(), null, $e->getCode());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -58,6 +76,17 @@ class GlobalSettingsController extends Controller
|
||||
*/
|
||||
public function destroy(string $id)
|
||||
{
|
||||
//
|
||||
try{
|
||||
$data = GlobalSetting::find($id);
|
||||
if(!$data){
|
||||
return $this->resError("Invalid id", null, 404);
|
||||
}
|
||||
|
||||
$data->delete();
|
||||
|
||||
return new GlobalSettingResource($data);
|
||||
}catch(Exception $e){
|
||||
return $this->resError($e->getMessage(), null, $e->getCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ namespace App\Http\Controllers\Api;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Auth\LoginRequest;
|
||||
use App\Models\User;
|
||||
use Hash;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class UsersController extends Controller
|
||||
|
||||
@@ -15,6 +15,7 @@ class GlobalSettingResource extends JsonResource
|
||||
public function toArray(Request $request): array
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'key' => $this->key,
|
||||
'value' => $this->value,
|
||||
'type' => $this->type,
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace App;
|
||||
use App\Helpers\ApiResponse;
|
||||
use App\Traits\GlobalApiResponse;
|
||||
use GuzzleHttp\Client;
|
||||
use Exception;
|
||||
class ServiceClient
|
||||
{
|
||||
use GlobalApiResponse;
|
||||
private $client;
|
||||
private $baseUrl;
|
||||
private $headers;
|
||||
@@ -41,9 +42,9 @@ class ServiceClient
|
||||
$response = $this->client->request($method, $this->baseUrl . $url, $options);
|
||||
|
||||
$resultResponse = json_decode($response->getBody(), true);
|
||||
return ApiResponse::successResponse($resultResponse, "Successfully fetched data");
|
||||
return $this->resSuccess($resultResponse);
|
||||
} catch (Exception $e) {
|
||||
return ApiResponse::errorResponse($e->getMessage(), $e->getCode());
|
||||
return $this->resError($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,17 +3,18 @@
|
||||
namespace App;
|
||||
|
||||
use App\Enums\ImportDatasourceStatus;
|
||||
use App\Helpers\ApiResponse;
|
||||
use App\Models\ImportDatasource;
|
||||
use App\Models\PbgTaskIndexIntegrations;
|
||||
use App\Models\PbgTaskPrasarana;
|
||||
use App\Models\PbgTaskRetributions;
|
||||
use Exception;
|
||||
use App\Models\PbgTask;
|
||||
use App\Traits\GlobalApiResponse;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class ServiceSIMBG
|
||||
{
|
||||
use GlobalApiResponse;
|
||||
private $email;
|
||||
private $password;
|
||||
/**
|
||||
@@ -106,7 +107,7 @@ class ServiceSIMBG
|
||||
'status' => ImportDatasourceStatus::Failed->value,
|
||||
'message' => 'Failed to retrive token'
|
||||
]);
|
||||
return ApiResponse::errorResponse("Failed to retrieve token", 401);
|
||||
return $this->resError("Failed to retrive token");
|
||||
}
|
||||
|
||||
$apiToken = $resToken->original['data']['token']['access'];
|
||||
@@ -127,7 +128,7 @@ class ServiceSIMBG
|
||||
'status' => ImportDatasourceStatus::Failed->value,
|
||||
'message' => 'Invalid response: no total_page'
|
||||
]);
|
||||
return ApiResponse::errorResponse("Invalid response from API", 400);
|
||||
return $this->resError("Invalid response from API");
|
||||
}
|
||||
|
||||
$totalPage = $initialResponse->original['data']['total_page'];
|
||||
@@ -214,7 +215,7 @@ class ServiceSIMBG
|
||||
]);
|
||||
|
||||
Log::info("syncTaskList completed", $result);
|
||||
return ApiResponse::successResponse(json_encode($result), "Successfully saved");
|
||||
return $this->resSuccess($result);
|
||||
}
|
||||
|
||||
|
||||
|
||||
30
app/Traits/GlobalApiResponse.php
Normal file
30
app/Traits/GlobalApiResponse.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Traits;
|
||||
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
trait GlobalApiResponse
|
||||
{
|
||||
protected function resSuccess($result, $code = 200){
|
||||
|
||||
$response = [
|
||||
'success' => true,
|
||||
'data' => $result
|
||||
];
|
||||
|
||||
if(!empty($message)){
|
||||
$response['message'] = $message;
|
||||
}
|
||||
|
||||
return response()->json($response, $code);
|
||||
}
|
||||
protected function resError(string $message, $errors = null, int $code = 400){
|
||||
Log::error($message);
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => $message,
|
||||
'errors' => $errors,
|
||||
], $code);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user