first commit

This commit is contained in:
2024-07-12 08:03:32 +07:00
commit 7f9359656d
122 changed files with 13427 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}
+24
View File
@@ -0,0 +1,24 @@
<?php
namespace App\Http\Controllers;
class PasienController extends Controller
{
public function inquiryStatus()
{
$response = [
'responseCode' => '5047300',
'responseMessage' => 'Timeout',
];
return response()->json($response, 500);
}
public function login()
{
$response = [
'responseCode' => '5047300',
'responseMessage' => 'Timeout',
];
return response()->json($response, 500);
}
}
@@ -0,0 +1,16 @@
<?php
namespace App\Http\Controllers\Poct;
use App\Http\Controllers\Controller;
use App\Models\Poct\Driver;
use Illuminate\Http\Request;
class DriverController extends Controller
{
public function GetDriver()
{
$aa= Driver::all();
dd($aa);
}
}
@@ -0,0 +1,135 @@
<?php
namespace App\Http\Controllers\Poct;
use App\Http\Controllers\Controller;
use App\Models\Poct\Request\ListPemeriksaanRequest;
use App\Models\Poct\Request\ListPemeriksaanResponse;
use App\Services\Poct\ListPemeriksaanService;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use Illuminate\Validation\ValidationException;
class PemeriksaanController extends Controller
{
public function ListPemeriksaan(Request $request, ListPemeriksaanService $listPemeriksaanService)
{
$validator = validator($request->all(), [
'tgl_order' => ['required', 'date_format:Y-m-d'],
], [], [
'tgl_order' => 'Tgl Order',
]);
$data = new ListPemeriksaanRequest($request->all());
$result = new ListPemeriksaanResponse($request->all());
try {
$validator->validate();
$timestamp = $request->header('x-timestamp');
$signarture = $request->header('x-signature');
$token = $request->header('authorization');
if (!empty($timestamp) && !empty($signarture) && !empty($token)) {
if ($token == env('PEC_TOKEN')){
$verif_signarture = $this->generateSignature($token, $timestamp);
if ($verif_signarture == $signarture) {
$proses = $listPemeriksaanService->fetchPemeriksaan($data, $result, 'list');
$response = $proses->toArray();
} else {
$result->setresponseCode("01");
$result->setresponseMessage("Unauthorized X-Signature!");
$response = $result->toArray();
}
}else{
$result->setresponseCode("01");
$result->setresponseMessage("Unauthorized Token!");
$response = $result->toArray();
}
} else {
$result->setresponseCode("01");
$result->setresponseMessage("Invalid X-Timestamp or X-Signature or Token!");
$response = $result->toArray();
}
return response()->json($response, 200);
} catch (ValidationException $e) {
$result->setresponseCode("00");
$result->setresponseMessage($e->getMessage());
$response = $result->toArray();
return response()->json($response, 400);
}
}
public function RekapPemeriksaan(Request $request, ListPemeriksaanService $listPemeriksaanService)
{
$validator = validator($request->all(), [
'tgl_awal' => ['required', 'date_format:Y-m-d'],
'tgl_akhir' => ['required', 'date_format:Y-m-d'],
], [], [
'tgl_awal' => 'Tgl Awal',
'tgl_akhir' => 'Tgl Akhir',
]);
$data = new ListPemeriksaanRequest($request->all());
$result = new ListPemeriksaanResponse($request->all());
try {
$validator->validate();
$timestamp = $request->header('x-timestamp');
$signarture = $request->header('x-signature');
$token = $request->header('authorization');
if (!empty($timestamp) && !empty($signarture) && !empty($token)) {
if ($token == env('PEC_TOKEN')){
$verif_signarture = $this->generateSignature($token, $timestamp);
if ($verif_signarture == $signarture) {
$proses = $listPemeriksaanService->fetchPemeriksaan($data, $result, 'rekap');
$response = $proses->toArray();
return response()->json($response, 200);
} else {
$result->setresponseCode("01");
$result->setresponseMessage("Unauthorized X-Signature!");
$response = $result->toArray();
}
}else{
$result->setresponseCode("01");
$result->setresponseMessage("Unauthorized Token!");
$response = $result->toArray();
}
} else {
$result->setresponseCode("01");
$result->setresponseMessage("Invalid X-Timestamp or X-Signature or Token!");
$response = $result->toArray();
}
return response()->json($response, 200);
} catch (ValidationException $e) {
$result->setresponseCode("00");
$result->setresponseMessage($e->getMessage());
$response = $result->toArray();
return response()->json($response, 400);
}
}
public function Signature(Request $request)
{
$signature = $this->generateSignature($request->token, $request->timestamp);
$response = array(
"signature" => $signature
);
return response()->json($response, 200);
}
public function Token(Request $request)
{
$strToken = Str::random(60);
$response = array(
"token" => $strToken
);
return response()->json($response, 200);
}
public function generateSignature($token, $timestamp)
{
$strToString = env('PEC_TOKEN') . '_' . $timestamp;
$signature = hash('sha256', $strToString);
return $signature;
}
}
@@ -0,0 +1,138 @@
<?php
namespace App\Http\Controllers\Qris\v1;
use App\Http\Controllers\Controller;
use App\Models\Qris\v1\QrisJatimCheckStatusQrisRequest;
use App\Models\Qris\v1\QrisJatimGenerateRequest;
use App\Models\Qris\v1\QrisJatimGenerateResponse;
use App\Models\Qris\v1\QrisJatimPaymentRequest;
use App\Models\Qris\v1\QrisJatimPaymentResponse;
use App\Services\Qris\v1\QrisJatimService;
use Illuminate\Http\Request;
use Illuminate\Validation\ValidationException;
/**
* Created by PhpStorm.
* User: ITKOM-EFFENDY
* Date: 01/04/2024
* Time: 14:15
*/
class QrisJatimController extends Controller
{
protected $settings;
public function __construct()
{
$this->settings = array(
'apiUrl' => env('BANK_JATIM_URL', 'https://jatimva.bankjatim.co.id/'),
'merchant' => env('BANK_JATIM_MERCHANT', '9360011400001347721'),
'hashcode' => env('BANK_JATIM_HASCODE', 'Y1MACZ4B5R'),
'terminalUser' => env('BANK_JATIM_TERMINAL_USER', 'ID2024310949969'),
'username' => env('BANK_JATIM_USERNAME', 'RSUDDRSA3206'),
'password' => env('BANK_JATIM_PASSWORD', '111111'),
);
}
public function GenerateQris(QrisJatimService $qrisJatimService, Request $request)
{
$validator = validator($request->all(), [
'billNumber' => ['required', 'string', 'max:20'],
'purposetrx' => ['required', 'string', 'max:28'],
'storelabel' => ['required', 'string', 'max:100'],
'customerlabel' => ['nullable', 'string', 'max:100'],
'terminalUser' => ['nullable', 'string', 'max:30'],
'expiredDate' => ['nullable', 'string', 'max:30'],
'amount' => ['nullable', 'string'],
], [], [
'billNumber' => 'Bill Number',
'purposetrx' => 'Purpose Set Trx',
'storelabel' => 'Store Label',
'customerlabel' => 'Customer Label',
'terminalUser' => 'Terminal User',
'expiredDate' => 'Expired Date',
'amount' => 'Amount',
]);
try {
$validator->validate();
$data = new QrisJatimGenerateRequest($request->all());
$generateHashCode = $this->generateHashCode($this->settings['merchant'], $data->getbillNumber(), $data->getterminalUser(), $this->settings['hashcode']);
$data->setmerchantPan($this->settings['merchant']);
$data->sethashcodeKey('3C569A8C898FD24243CE0FABD4B6B60E30267C7409A5A06F859416C325482964');
// $data->sethashcodeKey(strtoupper($generateHashCode['hashCode']));
$response = $qrisJatimService->generateApiQris($data);
return response()->json($response, 200);
} catch (ValidationException $e) {
dd($e);
} catch (\Exception $e) {
dd($e);
}
}
public function PaymentQris(Request $request, QrisJatimService $qrisJatimService){
$validator = validator($request->all(), [
'billNumber' => ['required', 'string', 'max:20'],
'purposetrx' => ['required', 'string', 'max:28'],
'storelabel' => ['required', 'string', 'max:100'],
'customerlabel' => ['nullable', 'string', 'max:100'],
'terminalUser' => ['nullable', 'string', 'max:30'],
'amount' => ['nullable', 'string'],
'core_reference'=>['nullable', 'string'],
'customerPan'=>['nullable', 'string'],
'merchantPan'=>['nullable', 'string'],
'pjsp'=>['nullable', 'string'],
'invoice_number'=>['nullable', 'string'],
'transactionDate'=>['nullable', 'string'],
]);
try{
$validator->validate();
$data = new QrisJatimPaymentRequest($request->all());
$result = new QrisJatimPaymentResponse($request->all());
$proses = $qrisJatimService->updateQris($data, $result);
$response = $proses->toArray();
$qrisJatimService->log('bankjatim/PaymentQr', $data->toArray(), $proses->toArray());
return response()->json($response, 200);
} catch (ValidationException $e) {
dd($e);
} catch (\Exception $e) {
dd($e);
}
}
public function CheckStatusQris(QrisJatimService $qrisJatimService, Request $request)
{
$validator = validator($request->all(), [
'username' => ['required', 'string', 'max:20'],
'password' => ['required', 'string', 'max:28'],
'invoice_number' => ['required', 'string', 'max:100'],
]);
try {
$validator->validate();
$data = new QrisJatimCheckStatusQrisRequest($request->all());
$response = $qrisJatimService->checkStatusQrisPayment($data);
return response()->json($response, 200);
} catch (ValidationException $e) {
} catch (\Exception $e) {
}
}
public function generateHashCode($marchant, $billNumber, $terminalUser, $hashCode)
{
$stringToSign = $marchant . $billNumber . $terminalUser . $hashCode;
return [
'hashCode' => hash('sha256',$stringToSign)
];
}
}
@@ -0,0 +1,93 @@
<?php
namespace App\Http\Controllers\Va\v1;
use App\Http\Controllers\Controller;
use App\Models\Va\v1\VirtualAccountJatimRequest;
use App\Models\Va\v1\VirtualAccountJatimResponse;
use App\Services\Va\v1\VirtualAccountJatimService;
use Illuminate\Validation\ValidationException;
use Illuminate\Http\Request;
/**
* Created by PhpStorm.
* User: USER
* Date: 14/05/2024
* Time: 9:36
*/
class VirtualAccountController extends Controller
{
protected $settings;
public function __construct()
{
$this->settings = array(
'apiUrl' => env('BANK_JATIM_URL', 'https://jatimva.bankjatim.co.id/'),
'merchant' => env('BANK_JATIM_MERCHANT', '9360011400001347721'),
'hashcode' => env('BANK_JATIM_HASCODE', 'Y1MACZ4B5R'),
'terminalUser' => env('BANK_JATIM_TERMINAL_USER', 'ID2024310949969'),
'username' => env('BANK_JATIM_USERNAME', 'RSUDDRSA3206'),
'password' => env('BANK_JATIM_PASSWORD', '111111'),
);
}
public function CreateVirtualAccountFull(Request $request)
{
$validator = validator($request->all(), [
'VirtualAccount' => ['required', 'string', 'max:16'],
'Nama' => ['required', 'string', 'max:100'],
'TotalTagihan' => ['required', 'string'],
'TanggalExp' => ['required', 'date_format:YYYYMMDD'],
'Berita1' => ['nullable', 'string', 'max:50'],
'Berita2' => ['nullable', 'string', 'max:50'],
'Berita3' => ['nullable', 'string', 'max:50'],
'Berita4' => ['nullable', 'string', 'max:50'],
'Berita5' => ['nullable', 'string', 'max:50'],
'FlagProses' => ['nullable', 'string', 'max:1'],
], [], [
'VirtualAccount' => 'Virtual Account',
'Nama' => 'Nama',
'TotalTagihan' => 'Store Label',
'TanggalExp' => 'Tanggal Exp',
'Berita1' => 'Berita 1',
'Berita2' => 'Berita 2',
'Berita3' => 'Berita 3',
'Berita4' => 'Berita 4',
'Berita5' => 'Berita 5',
]);
}
public function CallbackVa(VirtualAccountJatimService $virtualAccountJatimService, Request $request)
{
$validator = validator($request->all(), [
'VirtualAccount' => ['required', 'string', 'max:16'],
'Nama' => ['required', 'string', 'max:100'],
'Amount' => ['required', 'numeric'],
'References' => ['required', 'string', 'max:50'],
'Tanggal' => ['required', 'date_format:Y-m-d H:i:s'],
], [], [
'VirtualAccount' => 'Virtual Account',
'Nama' => 'Nama',
'Amount' => 'Amount',
'References' => 'References',
'Tanggal' => 'Tanggal',
]);
try {
// $validator->validate();
$data = new VirtualAccountJatimRequest($request->all());
$result = new VirtualAccountJatimResponse($request->all());
$proses = $virtualAccountJatimService->updatePayment($data, $result);
$response = $proses->toArray();
$virtualAccountJatimService->log('bankjatim/callback-va', $data->toArray(), $proses->toArray());
return response()->json($response, 200);
} catch (ValidationException $e) {
dd($e);
} catch (\Exception $e) {
dd($e);
}
}
}
+66
View File
@@ -0,0 +1,66 @@
<?php
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array
*/
protected $middleware = [
// \App\Http\Middleware\TrustHosts::class,
\App\Http\Middleware\TrustProxies::class,
\Fruitcake\Cors\HandleCors::class,
\App\Http\Middleware\PreventRequestsDuringMaintenance::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
];
}
+21
View File
@@ -0,0 +1,21 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Auth\Middleware\Authenticate as Middleware;
class Authenticate extends Middleware
{
/**
* Get the path the user should be redirected to when they are not authenticated.
*
* @param \Illuminate\Http\Request $request
* @return string|null
*/
protected function redirectTo($request)
{
if (! $request->expectsJson()) {
return route('login');
}
}
}
+17
View File
@@ -0,0 +1,17 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
class EncryptCookies extends Middleware
{
/**
* The names of the cookies that should not be encrypted.
*
* @var array
*/
protected $except = [
//
];
}
@@ -0,0 +1,17 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance as Middleware;
class PreventRequestsDuringMaintenance extends Middleware
{
/**
* The URIs that should be reachable while maintenance mode is enabled.
*
* @var array
*/
protected $except = [
//
];
}
@@ -0,0 +1,31 @@
<?php
namespace App\Http\Middleware;
use App\Providers\RouteServiceProvider;
use Closure;
use Illuminate\Support\Facades\Auth;
class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string[]|null ...$guards
* @return mixed
*/
public function handle($request, Closure $next, ...$guards)
{
$guards = empty($guards) ? [null] : $guards;
foreach ($guards as $guard) {
if (Auth::guard($guard)->check()) {
return redirect(RouteServiceProvider::HOME);
}
}
return $next($request);
}
}
+18
View File
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;
class TrimStrings extends Middleware
{
/**
* The names of the attributes that should not be trimmed.
*
* @var array
*/
protected $except = [
'password',
'password_confirmation',
];
}
+20
View File
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Http\Middleware\TrustHosts as Middleware;
class TrustHosts extends Middleware
{
/**
* Get the host patterns that should be trusted.
*
* @return array
*/
public function hosts()
{
return [
$this->allSubdomainsOfApplicationUrl(),
];
}
}
+23
View File
@@ -0,0 +1,23 @@
<?php
namespace App\Http\Middleware;
use Fideloper\Proxy\TrustProxies as Middleware;
use Illuminate\Http\Request;
class TrustProxies extends Middleware
{
/**
* The trusted proxies for this application.
*
* @var array|string|null
*/
protected $proxies;
/**
* The headers that should be used to detect proxies.
*
* @var int
*/
protected $headers = Request::HEADER_X_FORWARDED_ALL;
}
+18
View File
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
class VerifyCsrfToken extends Middleware
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
'bankjatim/*',
'poct/*',
];
}