// ignore_for_file: file_names import 'dart:async'; // import 'dart:convert'; import 'dart:io'; import 'package:dio/dio.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:get/get.dart'; import 'package:get_storage/get_storage.dart'; // import 'package:http/http.dart' as http; import 'package:logger/logger.dart'; import '../globals.dart' as globals; class KurirApi extends GetxController { final dev = Logger(); static var storage = GetStorage(); static var username = storage.read("username"); static var password = storage.read("password"); static var id = storage.read("id"); static var options = BaseOptions( // baseUrl: 'https://www.xx.com/api', connectTimeout: 10000, receiveTimeout: 10000, ); Dio dio = Dio(options); // get all pengiriman status ='Dalam Pengesahan Kurir' Future> getAllPengirimanDalamPengesahanKurir() async { late Map result; bool _checkServer = await cek_jaringan(); if (_checkServer) { try { await EasyLoading.show( status: 'Loading...', maskType: EasyLoadingMaskType.black, ); // var response = await http.get( // Uri.parse( // "${globals.http_to_server}api/kurir/pengiriman_kurir_dalam_pengesahan?username=$username&password=$password&id=$id"), // headers: { // "Accept": "application/json", // // "authorization": // // "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}", // "crossDomain": "true" // }).timeout(const Duration(seconds: 10)); var response = await dio.get( "${globals.http_to_server}api/kurir/pengiriman_kurir_dalam_pengesahan?username=$username&password=$password&id=$id", options: Options( headers: { "Accept": "application/json", // "authorization": // "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}", "crossDomain": "true" }, )); final data = response.data; // log(data.toString()); // log("ini status : " + response.statusCode.toString()); if (response.statusCode == 200) { result = { 'status': 200, 'message': data['message'], 'data': data['data'] }; } else { result = {'status': 400, 'message': "Server Error", 'data': data}; } } on SocketException { // abort the client // closeClient(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } on TimeoutException { // client.close(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } on Exception { // client.close(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } catch (e) { result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } finally { await EasyLoading.dismiss(); } } else { result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } return result; } // get all pengiriman status ='Paket Diterima Oleh Penerima, Ditolak Oleh Kurir, Dibatalkan Oleh Pengirim' Future> getAllPengirimanCompleted() async { late Map result; bool _checkServer = await cek_jaringan(); if (_checkServer) { try { await EasyLoading.show( status: 'Loading...', maskType: EasyLoadingMaskType.black, ); // var response = await http.get( // Uri.parse( // "${globals.http_to_server}api/kurir/pengiriman_completed?username=$username&password=$password&id=$id"), // headers: { // "Accept": "application/json", // // "authorization": // // "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}", // "crossDomain": "true" // }).timeout(const Duration(seconds: 10)); var response = await dio.get( "${globals.http_to_server}api/kurir/pengiriman_completed?username=$username&password=$password&id=$id", options: Options( headers: { "Accept": "application/json", // "authorization": // "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}", "crossDomain": "true" }, )); final data = response.data; // log(data.toString()); // log("ini status : " + response.statusCode.toString()); if (response.statusCode == 200) { result = { 'status': 200, 'message': data['message'], 'data': data['data'] }; } else { result = {'status': 400, 'message': "Server Error", 'data': data}; } } on SocketException { // abort the client // closeClient(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } on TimeoutException { // client.close(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } on Exception { // client.close(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } catch (e) { result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } finally { await EasyLoading.dismiss(); } } else { result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } return result; } // cek pengaturan kurir Future> cekPengaturanKurir() async { late Map result; bool _checkServer = await cek_jaringan(); if (_checkServer) { await EasyLoading.show( status: 'Loading...', maskType: EasyLoadingMaskType.black, ); try { // var response = await http.get( // Uri.parse( // "${globals.http_to_server}api/kurir/pengaturan?username=$username&password=$password&id=$id"), // headers: { // "Accept": "application/json", // // "authorization": // // "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}", // "crossDomain": "true" // }).timeout(const Duration(seconds: 10)); var response = await dio.get( "${globals.http_to_server}api/kurir/pengaturan?username=$username&password=$password&id=$id", options: Options( headers: { "Accept": "application/json", // "authorization": // "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}", "crossDomain": "true" }, )); final data = response.data; if (response.statusCode == 200) { result = { 'status': 200, 'message': data['message'], 'data': data['data'] }; } else { result = { 'status': 500, 'message': "Gagal mengatur biaya pengiriman", 'data': data }; } } on SocketException { // abort the client // closeClient(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } on TimeoutException { // client.close(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } on Exception { // client.close(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } catch (e) { result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } finally { await EasyLoading.dismiss(); } } else { result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } return result; } // tambah/edit pengaturan kurir Future> pengaturanKurir( String minimalBiaya, String maksimalBiaya, String biayaPerKilo) async { late Map result; bool _checkServer = await cek_jaringan(); if (_checkServer) { try { await EasyLoading.show( status: 'Loading...', maskType: EasyLoadingMaskType.black, ); // var response = await http.post( // Uri.parse( // "${globals.http_to_server}api/kurir/pengaturan?username=$username&password=$password&id=$id"), // headers: { // "Accept": "application/json", // // "authorization": // // "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}", // "crossDomain": "true" // }, // body: { // "minimal_biaya_pengiriman": minimalBiaya, // "maksimal_biaya_pengiriman": maksimalBiaya, // "biaya_per_kilo": biayaPerKilo // }).timeout(const Duration(seconds: 10)); // final data = jsonDecode(response.body); var response = await dio.post( "${globals.http_to_server}api/kurir/pengaturan?username=$username&password=$password&id=$id", options: Options( headers: { "Accept": "application/json", // "authorization": // "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}", "crossDomain": "true" }, ), data: { "minimal_biaya_pengiriman": minimalBiaya, "maksimal_biaya_pengiriman": maksimalBiaya, "biaya_per_kilo": biayaPerKilo }); final data = response.data; if (response.statusCode == 200) { result = {'status': 200, 'message': data['message'], 'data': data}; } else { result = { 'status': 500, 'message': "Gagal mengatur biaya pengiriman", 'data': data }; } } on SocketException { // abort the client // closeClient(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } on TimeoutException { // client.close(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } on Exception { // client.close(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } catch (e) { result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } finally { await EasyLoading.dismiss(); } } else { result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } return result; } // terima pengiriman kurir dan ubah status ke 'Pengiriman Disahkan kurir' Future> sahkanPengiriman(String? idPengiriman) async { late Map result; bool _checkServer = await cek_jaringan(); if (_checkServer) { try { // var response = await http.post( // Uri.parse( // "${globals.http_to_server}api/kurir/sahkan_pengiriman?username=$username&password=$password&id=$id"), // headers: { // "Accept": "application/json", // // "authorization": // // "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}", // "crossDomain": "true" // }, // body: { // "id_pengiriman": idPengiriman // }).timeout(const Duration(seconds: 60)); // final data = jsonDecode(response.body); var response = await dio.post( "${globals.http_to_server}api/kurir/sahkan_pengiriman?username=$username&password=$password&id=$id", options: Options( headers: { "Accept": "application/json", // "authorization": // "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}", "crossDomain": "true" }, ), data: {"id_pengiriman": idPengiriman}); final data = response.data; // log(data.toString()); // log("ini status : " + response.statusCode.toString()); if (response.statusCode == 200) { result = { 'status': 200, 'message': data['message'], 'data': data['data'] }; } else { result = { 'status': response.statusCode, 'message': data['message'], 'data': data }; } } on SocketException { // abort the client // closeClient(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } on TimeoutException { // client.close(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } on Exception { // client.close(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } catch (e) { result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } finally { await EasyLoading.dismiss(); } } else { result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } return result; } Future> detailPengiriman(String idPengiriman) async { late Map result; bool _checkServer = await cek_jaringan(); if (_checkServer) { try { // var response = await http.get( // Uri.parse( // "${globals.http_to_server}api/kurir/detail_pengiriman?username=$username&password=$password&id=$id&id_pengiriman=$idPengiriman"), // headers: { // "Accept": "application/json", // // "authorization": // // "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}", // "crossDomain": "true" // }).timeout(const Duration(seconds: 60)); // final data = jsonDecode(response.body); var response = await dio.get( "${globals.http_to_server}api/kurir/detail_pengiriman?username=$username&password=$password&id=$id&id_pengiriman=$idPengiriman", options: Options( headers: { "Accept": "application/json", // "authorization": // "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}", "crossDomain": "true" }, )); final data = response.data; // log(data.toString()); // log("ini status : " + response.statusCode.toString()); if (response.statusCode == 200) { result = { 'status': 200, 'message': data['message'], 'data': data['data'] }; } else { result = { 'status': response.statusCode, 'message': data['message'], 'data': data }; } } on SocketException { // abort the client // closeClient(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } on TimeoutException { // client.close(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } on Exception { // client.close(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } catch (e) { result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } finally { await EasyLoading.dismiss(); } } else { result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } return result; } Future> mengambilPaketPengiriman( String? idPengiriman) async { late Map result; bool _checkServer = await cek_jaringan(); if (_checkServer) { try { // var response = await http.post( // Uri.parse( // "${globals.http_to_server}api/kurir/mengambil_paket_pengiriman?username=$username&password=$password&id=$id"), // headers: { // "Accept": "application/json", // // "authorization": // // "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}", // "crossDomain": "true" // }, // body: { // "id_pengiriman": idPengiriman // }).timeout(const Duration(seconds: 60)); // final data = jsonDecode(response.body); var response = await dio.post( "${globals.http_to_server}api/kurir/mengambil_paket_pengiriman?username=$username&password=$password&id=$id", options: Options( headers: { "Accept": "application/json", // "authorization": // "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}", "crossDomain": "true" }, ), data: {"id_pengiriman": idPengiriman}); final data = response.data; // log(data.toString()); // log("ini status : " + response.statusCode.toString()); if (response.statusCode == 200) { result = { 'status': 200, 'message': data['message'], 'data': data['data'] }; } else { result = { 'status': response.statusCode, 'message': data['message'], 'data': data }; } } on SocketException { // abort the client // closeClient(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } on TimeoutException { // client.close(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } on Exception { // client.close(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } catch (e) { result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } finally { await EasyLoading.dismiss(); } } else { result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } return result; } // checking connection to server // ignore: non_constant_identifier_names Future cek_jaringan() async { late bool result; // client get for globals.http_to_server await EasyLoading.show( status: 'Sedang\nCek\nJaringan\n...', maskType: EasyLoadingMaskType.black, ); try { // var response = // await http.get(Uri.parse("${globals.http_to_server}api"), headers: { // "Accept": "application/json", // // "authorization": // // "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}", // "crossDomain": "true" // }).timeout(const Duration(seconds: 10)); var response = await dio.get("${globals.http_to_server}api", options: Options( headers: { "Accept": "application/json", // "authorization": // "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}", "crossDomain": "true" }, )); // final data = jsonDecode(response.body); if (response.statusCode == 200) { result = true; } else { result = false; } } on SocketException { result = false; // await clientClose(client); } on TimeoutException { result = false; // close client // await clientClose(client); } on Exception { result = false; } catch (e) { result = false; } finally { await EasyLoading.dismiss(); } return result; } Future> profileKurir2() async { late Map result; bool _checkServer = await cek_jaringan(); if (_checkServer) { try { // var response = await http.get( // Uri.parse( // "${globals.http_to_server}api/kurir/profil_kurir?username=$username&password=$password&id=$id"), // headers: { // "Accept": "application/json", // // "authorization": // // "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}", // "crossDomain": "true" // }).timeout(const Duration(seconds: 10)); // final data = jsonDecode(response.body); var response = await dio.get( "${globals.http_to_server}api/kurir/profil_kurir?username=$username&password=$password&id=$id", options: Options( headers: { "Accept": "application/json", // "authorization": // "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}", "crossDomain": "true" }, )); final data = response.data; dev.i(data); if (response.statusCode == 200) { result = { 'status': 200, 'message': data['message'], 'data': data['data'] }; } else { result = { 'status': response.statusCode, 'message': data['message'], 'data': data }; } } on SocketException { // abort the client // closeClient(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } on TimeoutException { // client.close(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } on Exception { // client.close(); result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } catch (e) { result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } finally { await EasyLoading.dismiss(); } } else { result = { 'status': 500, 'message': "Tidak dapat terhubung ke server,koneksi timeout" }; } return result; } }