diff --git a/app/Http/Middleware/NoHttpCache.php b/app/Http/Middleware/NoHttpCache.php index d76a5eb..21392d2 100644 --- a/app/Http/Middleware/NoHttpCache.php +++ b/app/Http/Middleware/NoHttpCache.php @@ -31,10 +31,10 @@ class NoHttpCache /** * @var $headers \Symfony\Component\HttpFoundation\HeaderBag */ - $response->header('Pragma', 'no-cache'); - $response->header('Expires', 'Fri, 01 Jan 1990 00:00:00 GMT'); - $response->header('Cache-Control', 'no-cache, must-revalidate, no-store, max-age=0, private'); + $response->headers->set('Pragma', 'no-cache'); + $response->headers->set('Expires', 'Fri, 01 Jan 1990 00:00:00 GMT'); + $response->headers->set('Cache-Control', 'no-cache, must-revalidate, no-store, max-age=0, private'); return $response; } -} \ No newline at end of file +} diff --git a/config/filesystems.php b/config/filesystems.php index 94c8112..6298208 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -48,6 +48,11 @@ return [ 'root' => storage_path('app'), ], + 'supports' => [ + 'driver' => 'local', + 'root' => storage_path('drivers'), + ], + 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), diff --git a/public/js/iris-mykad-websocket-client-api.js b/public/js/iris-mykad-websocket-client-api.js index 6101f3d..181dfe5 100644 --- a/public/js/iris-mykad-websocket-client-api.js +++ b/public/js/iris-mykad-websocket-client-api.js @@ -1,258 +1,294 @@ -WebSocketManager = { - url:"", +WebSocketManager = { + url:"", init: function(url) { WebSocketManager.url = url; - }, - open: function(callback, slot) { + }, + open: function(callback, slot) { wsocket = new WebSocket(WebSocketManager.url); wsocket.onopen = function () { - wsocket.send('{"Cmd":"OPEN","Slot":"'+ slot +'"}'); - }; + wsocket.send('{"Cmd":"OPEN","Slot":"'+ slot +'"}'); + }; wsocket.onmessage = function (evt) { var obj = JSON.parse(evt.data); wsocket.close(); callback(obj); - }; - - }, - listReader: function(callback) { + }; + + }, + listReader: function(callback) { wsocket = new WebSocket(WebSocketManager.url); wsocket.onopen = function () { - wsocket.send('{"Cmd":"LIST_READER"}'); - }; + wsocket.send('{"Cmd":"LIST_READER"}'); + }; wsocket.onmessage = function (evt) { - var obj = JSON.parse(evt.data); - var data = JSON.parse(obj.RespMessage); + var obj = JSON.parse(evt.data); + var data = JSON.parse(obj.RespMessage); wsocket.close(); callback(data, obj.RespCode); - }; - - }, + }; + + wsocket.onerror = evt => { + let hideLoader = () => { + let pageLoader = document.getElementById('page_loader'); + pageLoader.removeAttribute('class'); + }; + + hideLoader(); + wsocket.close(); + Swal.fire({ + icon: 'error', + title: 'MyKad driver/services not found, please install driver', + html: ` +
+
+
+
+ `, + showCancelButton: false, + showConfirmButton: false, + willOpen: () => { + const yes = document.querySelector('button.btn-yes') + const download_driver = document.querySelector('button.btn-download-driver') + + yes.addEventListener('click', () => { + swal.close(); + }) + + download_driver.addEventListener('click', () => { + window.location.href = mykad_reader_driver_endpoint; + }) + } + }); + + }; + }, close: function(callback) { wsocket = new WebSocket(WebSocketManager.url); wsocket.onopen = function () { wsocket.send('{"Cmd":"CLOSE"}'); - }; + }; wsocket.onmessage = function (evt) { var obj = JSON.parse(evt.data); wsocket.close(); callback(obj); }; - }, - verifyFPTemplate: function(callback, ThumbCode, Bas64FPLeft, Bas64FPRight) { + }, + verifyFPTemplate: function(callback, ThumbCode, Bas64FPLeft, Bas64FPRight) { wsocket = new WebSocket(WebSocketManager.url); wsocket.onopen = function () { - wsocket.send('{"Cmd":"VERIFY_FP_TEMPLATE","ThumbCode":"'+ ThumbCode +'","Bas64FPLeft":"'+ Bas64FPLeft +'","Bas64FPRight":"'+ Bas64FPRight +'"}'); - }; + wsocket.send('{"Cmd":"VERIFY_FP_TEMPLATE","ThumbCode":"'+ ThumbCode +'","Bas64FPLeft":"'+ Bas64FPLeft +'","Bas64FPRight":"'+ Bas64FPRight +'"}'); + }; wsocket.onmessage = function (evt) { var obj = JSON.parse(evt.data); wsocket.close(); - callback(obj.RespCode, obj.RespMessage); - }; - + callback(obj.RespCode, obj.RespMessage); + }; + }, - readMyKad: function (callback) { + readMyKad: function (callback) { wsocket = new WebSocket(WebSocketManager.url); wsocket.onopen = function () { - wsocket.send('{"Cmd":"READ_MYKAD"}'); - }; + wsocket.send('{"Cmd":"READ_MYKAD"}'); + }; wsocket.onmessage = function (evt) { - var obj = JSON.parse(evt.data); - var data = JSON.parse(obj.RespMessage); - wsocket.close(); - callback(data, obj.RespCode, obj.RespSW12AndApiName); - }; - }, - readAllText: function (callback) { - wsocket = new WebSocket(WebSocketManager.url); - wsocket.onopen = function () { - wsocket.send('{"Cmd":"READ_ALL_TEXT"}'); - }; - wsocket.onmessage = function (evt) { - var obj = JSON.parse(evt.data); - var data = JSON.parse(obj.RespMessage); - wsocket.close(); - callback(data, obj.RespCode, obj.RespSW12AndApiName); - }; - }, - readPhoto: function (callback) { - wsocket = new WebSocket(WebSocketManager.url); - wsocket.onopen = function () { - wsocket.send('{"Cmd":"READ_PHOTO"}'); - }; - wsocket.onmessage = function (evt) { - var obj = JSON.parse(evt.data); - var data = JSON.parse(obj.RespMessage); - wsocket.close(); - callback(data, obj.RespCode, obj.RespSW12AndApiName); - }; - }, - readBio: function (callback) { - wsocket = new WebSocket(WebSocketManager.url); - wsocket.onopen = function () { - wsocket.send('{"Cmd":"READ_BIO"}'); - }; - wsocket.onmessage = function (evt) { - var obj = JSON.parse(evt.data); - var data = JSON.parse(obj.RespMessage); - wsocket.close(); - callback(data, obj.RespCode, obj.RespSW12AndApiName); - }; - }, - readMyKid: function (callback) { - wsocket = new WebSocket(WebSocketManager.url); - wsocket.onopen = function () { - wsocket.send('{"Cmd":"READ_MYKID"}'); - }; - wsocket.onmessage = function (evt) { - var obj = JSON.parse(evt.data); - var data = JSON.parse(obj.RespMessage); - wsocket.close(); - callback(data, obj.RespCode, obj.RespSW12AndApiName); - }; - }, - FPBioEnrol: function (callback) { - wsocket = new WebSocket(WebSocketManager.url); - wsocket.onopen = function () { - wsocket.send('{"Cmd":"FP_BIO_ENROL"}'); - }; - wsocket.onmessage = function (evt) { - var obj = JSON.parse(evt.data); - //var data = JSON.parse(obj.RespMessage); - wsocket.close(); - callback(obj); - }; - }, - getThumbImage: function (callback) { - wsocket = new WebSocket(WebSocketManager.url); - wsocket.onopen = function () { - wsocket.send('{"Cmd":"GET_MYKAD_THUMB_IMAGE"}'); - }; - wsocket.onmessage = function (evt) { - var obj = JSON.parse(evt.data); + var obj = JSON.parse(evt.data); var data = JSON.parse(obj.RespMessage); wsocket.close(); callback(data, obj.RespCode, obj.RespSW12AndApiName); - }; - }, - getThumbBin1: function (callback) { + }; + }, + readAllText: function (callback) { wsocket = new WebSocket(WebSocketManager.url); wsocket.onopen = function () { - wsocket.send('{"Cmd":"GET_THUMB_BIN1"}'); - }; + wsocket.send('{"Cmd":"READ_ALL_TEXT"}'); + }; wsocket.onmessage = function (evt) { - var obj = JSON.parse(evt.data); - var data = JSON.parse(obj.RespMessage); + var obj = JSON.parse(evt.data); + var data = JSON.parse(obj.RespMessage); wsocket.close(); callback(data, obj.RespCode, obj.RespSW12AndApiName); - }; - }, - getThumbBin2: function (callback) { + }; + }, + readPhoto: function (callback) { wsocket = new WebSocket(WebSocketManager.url); wsocket.onopen = function () { - wsocket.send('{"Cmd":"GET_THUMB_BIN2"}'); - }; + wsocket.send('{"Cmd":"READ_PHOTO"}'); + }; wsocket.onmessage = function (evt) { - var obj = JSON.parse(evt.data); - var data = JSON.parse(obj.RespMessage); + var obj = JSON.parse(evt.data); + var data = JSON.parse(obj.RespMessage); wsocket.close(); callback(data, obj.RespCode, obj.RespSW12AndApiName); - }; - }, - FPBioEnrolBin1: function (callback) { + }; + }, + readBio: function (callback) { wsocket = new WebSocket(WebSocketManager.url); wsocket.onopen = function () { - wsocket.send('{"Cmd":"FP_BIO_ENROL_BIN1"}'); - }; + wsocket.send('{"Cmd":"READ_BIO"}'); + }; wsocket.onmessage = function (evt) { - var obj = JSON.parse(evt.data); + var obj = JSON.parse(evt.data); + var data = JSON.parse(obj.RespMessage); + wsocket.close(); + callback(data, obj.RespCode, obj.RespSW12AndApiName); + }; + }, + readMyKid: function (callback) { + wsocket = new WebSocket(WebSocketManager.url); + wsocket.onopen = function () { + wsocket.send('{"Cmd":"READ_MYKID"}'); + }; + wsocket.onmessage = function (evt) { + var obj = JSON.parse(evt.data); + var data = JSON.parse(obj.RespMessage); + wsocket.close(); + callback(data, obj.RespCode, obj.RespSW12AndApiName); + }; + }, + FPBioEnrol: function (callback) { + wsocket = new WebSocket(WebSocketManager.url); + wsocket.onopen = function () { + wsocket.send('{"Cmd":"FP_BIO_ENROL"}'); + }; + wsocket.onmessage = function (evt) { + var obj = JSON.parse(evt.data); //var data = JSON.parse(obj.RespMessage); wsocket.close(); callback(obj); - }; - }, - FPBioEnrolBin2: function (callback) { + }; + }, + getThumbImage: function (callback) { wsocket = new WebSocket(WebSocketManager.url); wsocket.onopen = function () { - wsocket.send('{"Cmd":"FP_BIO_ENROL_BIN2"}'); - }; + wsocket.send('{"Cmd":"GET_MYKAD_THUMB_IMAGE"}'); + }; wsocket.onmessage = function (evt) { - var obj = JSON.parse(evt.data); + var obj = JSON.parse(evt.data); + var data = JSON.parse(obj.RespMessage); + wsocket.close(); + callback(data, obj.RespCode, obj.RespSW12AndApiName); + }; + }, + getThumbBin1: function (callback) { + wsocket = new WebSocket(WebSocketManager.url); + wsocket.onopen = function () { + wsocket.send('{"Cmd":"GET_THUMB_BIN1"}'); + }; + wsocket.onmessage = function (evt) { + var obj = JSON.parse(evt.data); + var data = JSON.parse(obj.RespMessage); + wsocket.close(); + callback(data, obj.RespCode, obj.RespSW12AndApiName); + }; + }, + getThumbBin2: function (callback) { + wsocket = new WebSocket(WebSocketManager.url); + wsocket.onopen = function () { + wsocket.send('{"Cmd":"GET_THUMB_BIN2"}'); + }; + wsocket.onmessage = function (evt) { + var obj = JSON.parse(evt.data); + var data = JSON.parse(obj.RespMessage); + wsocket.close(); + callback(data, obj.RespCode, obj.RespSW12AndApiName); + }; + }, + FPBioEnrolBin1: function (callback) { + wsocket = new WebSocket(WebSocketManager.url); + wsocket.onopen = function () { + wsocket.send('{"Cmd":"FP_BIO_ENROL_BIN1"}'); + }; + wsocket.onmessage = function (evt) { + var obj = JSON.parse(evt.data); //var data = JSON.parse(obj.RespMessage); wsocket.close(); callback(obj); - }; - }, - FPBioVerify: function (callback) { + }; + }, + FPBioEnrolBin2: function (callback) { wsocket = new WebSocket(WebSocketManager.url); wsocket.onopen = function () { - wsocket.send('{"Cmd":"FP_BIO_VERIFY"}'); - }; + wsocket.send('{"Cmd":"FP_BIO_ENROL_BIN2"}'); + }; wsocket.onmessage = function (evt) { - var obj = JSON.parse(evt.data); - var data = JSON.parse(obj.RespMessage); + var obj = JSON.parse(evt.data); + //var data = JSON.parse(obj.RespMessage); wsocket.close(); - callback(data, obj.RespCode, obj.RespSW12AndApiName); - }; - }, - FPBioVerifyBin: function (callback) { + callback(obj); + }; + }, + FPBioVerify: function (callback) { wsocket = new WebSocket(WebSocketManager.url); wsocket.onopen = function () { - wsocket.send('{"Cmd":"FP_BIO_VERIFY_BIN"}'); - }; + wsocket.send('{"Cmd":"FP_BIO_VERIFY"}'); + }; wsocket.onmessage = function (evt) { - var obj = JSON.parse(evt.data); - var data = JSON.parse(obj.RespMessage); + var obj = JSON.parse(evt.data); + var data = JSON.parse(obj.RespMessage); wsocket.close(); callback(data, obj.RespCode, obj.RespSW12AndApiName); - }; - }, - FPBioVerifyLeft: function (callback) { + }; + }, + FPBioVerifyBin: function (callback) { wsocket = new WebSocket(WebSocketManager.url); wsocket.onopen = function () { - wsocket.send('{"Cmd":"FP_BIO_VERIFY_LEFT"}'); - }; + wsocket.send('{"Cmd":"FP_BIO_VERIFY_BIN"}'); + }; wsocket.onmessage = function (evt) { - var obj = JSON.parse(evt.data); - var data = JSON.parse(obj.RespMessage); + var obj = JSON.parse(evt.data); + var data = JSON.parse(obj.RespMessage); wsocket.close(); callback(data, obj.RespCode, obj.RespSW12AndApiName); - }; - }, - FPBioVerifyBinLeft: function (callback) { + }; + }, + FPBioVerifyLeft: function (callback) { wsocket = new WebSocket(WebSocketManager.url); wsocket.onopen = function () { - wsocket.send('{"Cmd":"FP_BIO_VERIFY_BIN_LEFT"}'); - }; + wsocket.send('{"Cmd":"FP_BIO_VERIFY_LEFT"}'); + }; wsocket.onmessage = function (evt) { - var obj = JSON.parse(evt.data); - var data = JSON.parse(obj.RespMessage); + var obj = JSON.parse(evt.data); + var data = JSON.parse(obj.RespMessage); wsocket.close(); callback(data, obj.RespCode, obj.RespSW12AndApiName); - }; - }, - FPBioVerifyRight: function (callback) { + }; + }, + FPBioVerifyBinLeft: function (callback) { wsocket = new WebSocket(WebSocketManager.url); wsocket.onopen = function () { - wsocket.send('{"Cmd":"FP_BIO_VERIFY_RIGHT"}'); - }; + wsocket.send('{"Cmd":"FP_BIO_VERIFY_BIN_LEFT"}'); + }; wsocket.onmessage = function (evt) { - var obj = JSON.parse(evt.data); - var data = JSON.parse(obj.RespMessage); + var obj = JSON.parse(evt.data); + var data = JSON.parse(obj.RespMessage); wsocket.close(); callback(data, obj.RespCode, obj.RespSW12AndApiName); - }; - }, - FPBioVerifyBinRight: function (callback) { + }; + }, + FPBioVerifyRight: function (callback) { wsocket = new WebSocket(WebSocketManager.url); wsocket.onopen = function () { - wsocket.send('{"Cmd":"FP_BIO_VERIFY_BIN_RIGHT"}'); - }; + wsocket.send('{"Cmd":"FP_BIO_VERIFY_RIGHT"}'); + }; wsocket.onmessage = function (evt) { - var obj = JSON.parse(evt.data); - var data = JSON.parse(obj.RespMessage); + var obj = JSON.parse(evt.data); + var data = JSON.parse(obj.RespMessage); wsocket.close(); callback(data, obj.RespCode, obj.RespSW12AndApiName); - }; - } + }; + }, + FPBioVerifyBinRight: function (callback) { + wsocket = new WebSocket(WebSocketManager.url); + wsocket.onopen = function () { + wsocket.send('{"Cmd":"FP_BIO_VERIFY_BIN_RIGHT"}'); + }; + wsocket.onmessage = function (evt) { + var obj = JSON.parse(evt.data); + var data = JSON.parse(obj.RespMessage); + wsocket.close(); + callback(data, obj.RespCode, obj.RespSW12AndApiName); + }; + } } diff --git a/resources/views/customers/index.blade.php b/resources/views/customers/index.blade.php index 986a32f..f124faa 100644 --- a/resources/views/customers/index.blade.php +++ b/resources/views/customers/index.blade.php @@ -1206,6 +1206,7 @@ // mycard-read endpoint initialization let mykad_reader_endpoint = "{{ config('mykad-reader.endpoint') }}"; let wakil_caricustomer_endpoint = "{{ route('wakil.caricustomer') }}"; + let mykad_reader_driver_endpoint = "{{ route('mykadreader.driver.download') }}"; diff --git a/routes/web.php b/routes/web.php index f290847..3253e3d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -2,6 +2,7 @@ use Illuminate\Support\Facades\Route; use App\Services\ImbangdugaServices; +use Illuminate\Support\Facades\Storage; /* |-------------------------------------------------------------------------- | Web Routes @@ -375,3 +376,7 @@ Route::get('admin/searchpelanggan',['as'=>'admin.searchpelanggan','uses'=>'Khaza Route::get('admin/poskod',['as'=>'admin.poskod','uses'=>'HomeController@poskod']); Route::get('pembeliannotifykomuditi',['as'=>'beli.notifyKomoditi','uses'=>'OperasiController@notifyKomoditi'])->middleware('auth','operasi'); + +Route::get('supports/driver/mykad-reader',['as'=>'mykadreader.driver.download', function(){ + return Storage::disk('supports')->download('MykadReaderDriver.zip'); +}])->middleware('auth','teller'); diff --git a/storage/drivers/MykadReaderDriver.zip b/storage/drivers/MykadReaderDriver.zip new file mode 100644 index 0000000..9241c9f Binary files /dev/null and b/storage/drivers/MykadReaderDriver.zip differ