Files
kurir_mobile/lib/api/kurirApi.dart
2022-07-01 06:00:55 +08:00

763 lines
24 KiB
Dart

// 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<Map<String, dynamic>> getAllPengirimanDalamPengesahanKurir() async {
late Map<String, dynamic> 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<Map<String, dynamic>> getAllPengirimanCompleted() async {
late Map<String, dynamic> 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<Map<String, dynamic>> cekPengaturanKurir() async {
late Map<String, dynamic> 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<Map<String, dynamic>> pengaturanKurir(
String minimalBiaya, String maksimalBiaya, String biayaPerKilo) async {
late Map<String, dynamic> 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<Map<String, dynamic>> sahkanPengiriman(String? idPengiriman) async {
late Map<String, dynamic> 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<Map<String, dynamic>> detailPengiriman(String idPengiriman) async {
late Map<String, dynamic> 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<Map<String, dynamic>> mengambilPaketPengiriman(
String? idPengiriman) async {
late Map<String, dynamic> 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<bool> 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<Map<String, dynamic>> profileKurir2() async {
late Map<String, dynamic> 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;
}
}