fixed api

This commit is contained in:
kicap1992
2022-06-29 22:50:13 +08:00
parent 70b9a9a04b
commit a6c69c1164
23 changed files with 1748 additions and 778 deletions

View File

@ -2,34 +2,26 @@
import 'dart:async';
import 'dart:convert';
import 'dart:developer';
import 'dart:io';
import 'package:flutter/cupertino.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 BeforeLoginApi extends ChangeNotifier {
// class BeforeLoginApi {
static var client = http.Client();
class BeforeLoginApi extends GetConnect {
static final log = Logger();
static var storage = GetStorage();
static clientClose(http.Client client) {
client.close();
}
// sign up kurir
static Future<Map<String, dynamic>> sign_up_kurir(Map data, String fotoKTP,
Future<Map<String, dynamic>> sign_up_kurir(Map data, String fotoKTP,
String fotoHoldingKTP, String fotoKendaraan, String fotoProfil) async {
Map<String, dynamic> result;
client = http.Client();
// result = "sini berlakunya signup";
bool _cek_jaringan = await cek_jaringan(client);
if (_cek_jaringan) {
bool _checkServer = await cek_jaringan();
if (_checkServer) {
try {
await EasyLoading.show(
status: 'Melakukan\nPendaftaran...',
@ -48,14 +40,14 @@ class BeforeLoginApi extends ChangeNotifier {
.add(await http.MultipartFile.fromPath('photo', fotoProfil));
var streamResponse =
await request.send().timeout(const Duration(seconds: 30));
await request.send().timeout(const Duration(seconds: 120));
// var streamResponse = await request.send();
var response = await http.Response.fromStream(streamResponse);
var datanya = jsonDecode(response.body);
final datanya = jsonDecode(response.body);
log(response.statusCode.toString() + " ini status code");
log(datanya.toString());
log.i(response.statusCode.toString() + " ini status code");
log.i(datanya.toString());
if (response.statusCode == 200) {
result = {
'status': response.statusCode,
@ -72,24 +64,33 @@ class BeforeLoginApi extends ChangeNotifier {
await EasyLoading.dismiss();
// closeClient();
log(e.toString() + " ini error socket");
log.i(e.toString() + " ini error socket");
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} on TimeoutException catch (e) {
// client.close();
log(e.toString() + " ini timeout");
log.i(e.toString() + " ini timeout");
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} on Exception catch (e) {
// client.close();
log.i(e.toString() + " ini error");
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} catch (e) {
log(e.toString() + " ini di catch");
log.i(e.toString() + " ini di catch");
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} finally {
await EasyLoading.dismiss();
}
} else {
result = {
@ -102,132 +103,126 @@ class BeforeLoginApi extends ChangeNotifier {
}
// sign up pengirim
static Future<Map<String, dynamic>> sign_up_pengirim(
Future<Map<String, dynamic>> sign_up_pengirim(
Map data, String fotoProfil) async {
// open client
client = http.Client();
Map<String, dynamic> result;
// result = {'status': 500, 'message': "sini berlakunya signup pengirim"};
bool _cek_jaringan = await cek_jaringan(client);
bool _checkServer = await cek_jaringan();
log("cek jaringan : " + _cek_jaringan.toString());
if (_checkServer) {
try {
await EasyLoading.show(
status: 'Melakukan\nPendaftaran...',
maskType: EasyLoadingMaskType.black,
);
if (!_cek_jaringan) {
result = {
'status': 500,
'message':
"Tidak dapat terhubung ke server, Sila periksa koneksi internet anda"
};
} else {
if (_cek_jaringan) {
try {
await EasyLoading.show(
status: 'Melakukan\nPendaftaran...',
maskType: EasyLoadingMaskType.black,
);
var postUri = Uri.parse('${globals.http_to_server}api/login/daftar1');
var request = http.MultipartRequest("POST", postUri);
request.fields['data'] = jsonEncode(data);
var postUri = Uri.parse('${globals.http_to_server}api/login/daftar1');
var request = http.MultipartRequest("POST", postUri);
request.fields['data'] = jsonEncode(data);
request.files
.add(await http.MultipartFile.fromPath('photo', fotoProfil));
request.files
.add(await http.MultipartFile.fromPath('photo', fotoProfil));
var streamResponse =
await request.send().timeout(const Duration(seconds: 30));
// var streamResponse = await request.send();
var response = await http.Response.fromStream(streamResponse);
var streamResponse =
await request.send().timeout(const Duration(seconds: 60));
// var streamResponse = await request.send();
var response = await http.Response.fromStream(streamResponse);
var datanya = jsonDecode(response.body);
// final form = FormData({
// 'photo': MultipartFile(File(fotoProfil).readAsBytesSync(),
// filename: 'photo.jpg'),
// 'data': jsonEncode(data),
// });
log(response.statusCode.toString() + " ini status code");
log(datanya.toString());
if (response.statusCode == 200) {
result = {
'status': response.statusCode,
'message': datanya['message'],
};
} else {
result = {
'status': response.statusCode,
'message': datanya['message']
};
}
} on SocketException catch (e) {
// abort the client
await EasyLoading.dismiss();
// closeClient();
// final response =
// await post('${globals.http_to_server}api/login/daftar1', form);
log(e.toString() + " ini error socket");
var datanya = jsonDecode(response.body);
log.i(response.statusCode.toString() + " ini status code");
log.i(datanya.toString());
if (response.statusCode == 200) {
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
'status': response.statusCode,
'message': datanya['message'],
};
} on TimeoutException catch (e) {
// client.close();
log(e.toString() + " ini timeout");
} else {
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} catch (e) {
log(e.toString() + " ini di catch");
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
'status': response.statusCode,
'message': datanya['message']
};
}
} else {
} on SocketException catch (e) {
// abort the client
await EasyLoading.dismiss();
// closeClient();
log.i(e.toString() + " ini error socket");
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} on TimeoutException catch (e) {
// client.close();
log.i(e.toString() + " ini timeout");
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} on Exception catch (e) {
// client.close();
log.i(e.toString() + " ini error");
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} catch (e) {
log.i(e.toString() + " ini di catch");
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;
}
// log in user
static Future<Map<String, dynamic>> log_in_user(
Future<Map<String, dynamic>> log_in_user(
String username, String password, String role) async {
client = http.Client();
// client = http.Client();
late Map<String, dynamic> result;
bool _cek_jaringan = await cek_jaringan(client);
bool _checkServer = await cek_jaringan();
log("cek jaringan : " + _cek_jaringan.toString());
if (!_cek_jaringan) {
result = {
'status': 500,
'message':
"Tidak dapat terhubung ke server, Sila periksa koneksi internet anda"
};
} else {
// wait for 3 sec
if (_checkServer) {
try {
await EasyLoading.show(
status: 'Sedang\nLogin\n...',
maskType: EasyLoadingMaskType.black,
);
var _url = Uri.parse(
// var _response = await get(
// '${globals.http_to_server}api/login?username=$username&password=$password&role=$role');
var uri = Uri.parse(
'${globals.http_to_server}api/login?username=$username&password=$password&role=$role');
var _response = await http.get(
_url,
// body: {'username': username, 'password': password, 'role': role},
headers: {
"Accept": "application/json",
// "authorization":
// "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}",
"crossDomain": "true"
},
);
var _response = await http.get(uri, headers: {
'Content-Type': 'application/json',
"crossDomain": "true",
}).timeout(const Duration(seconds: 15));
var _data = jsonDecode(_response.body);
log(_response.statusCode.toString() + " ini status code");
log(_data['data']['_idnya'].toString() + " ini id");
log.i(_response.statusCode.toString() + " ini status code");
log.i(_data['data']['_idnya'].toString() + " ini id");
if (_response.statusCode == 200) {
storage.write('username', username);
storage.write('password', password);
@ -248,16 +243,35 @@ class BeforeLoginApi extends ChangeNotifier {
'focus': _data['data'],
};
}
} catch (e) {
storage.erase();
log(e.toString() + " ini di catch");
} on TimeoutException catch (e) {
log.i(e.toString() + " ini timeout");
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} on Exception catch (e) {
log.i(e.toString() + " ini error");
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} catch (e) {
log.i(e.toString() + " ini di catch");
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"
};
}
await EasyLoading.dismiss();
return result;
}
@ -270,13 +284,18 @@ class BeforeLoginApi extends ChangeNotifier {
}
// checking connection to server
static Future<bool> cek_jaringan(http.Client client) async {
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 client.get(Uri.parse("${globals.http_to_server}api"), headers: {
await http.get(Uri.parse("${globals.http_to_server}api"), headers: {
"Accept": "application/json",
// "authorization":
// "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}",
@ -289,66 +308,25 @@ class BeforeLoginApi extends ChangeNotifier {
result = false;
}
} on SocketException {
await EasyLoading.dismiss();
result = false;
await clientClose(client);
log(" ini error socket");
// await clientClose(client);
log.i(" ini error socket");
} on TimeoutException {
await EasyLoading.dismiss();
result = false;
// close client
await clientClose(client);
log(" ini timeout");
// await clientClose(client);
log.i(" ini timeout");
} on Exception {
result = false;
log(" ini timeout");
log.i(" ini timeout");
} catch (e) {
result = false;
log(" ini timeout");
log.i(" ini timeout");
} finally {
await EasyLoading.dismiss();
}
return result;
}
// // checking connection to server
// Future<bool> cek_jaringan1(http.Client client) async {
// late bool result;
// // client get for globals.http_to_server
// try {
// var response =
// await client.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: 5));
// // final data = jsonDecode(response.body);
// if (response.statusCode == 200) {
// result = true;
// } else {
// result = false;
// }
// } on SocketException {
// await EasyLoading.dismiss();
// result = false;
// await clientClose(client);
// log(" ini error socket");
// } on TimeoutException {
// await EasyLoading.dismiss();
// result = false;
// // close client
// await clientClose(client);
// log(" ini timeout");
// } on Exception {
// result = false;
// log(" ini timeout");
// } catch (e) {
// result = false;
// log(" ini timeout");
// }
// return result;
// }
}

View File

@ -1,54 +1,36 @@
// ignore_for_file: non_constant_identifier_names, file_names
// ignore: unused_import
import 'dart:developer' as dev;
// ignore_for_file: file_names
import 'dart:async';
import 'dart:convert';
import 'dart:developer';
import 'dart:io';
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 '../globals.dart' as globals;
class KurirApi {
static var client = http.Client();
class KurirApi extends GetConnect {
static var storage = GetStorage();
static var username = storage.read("username");
static var password = storage.read("password");
static var id = storage.read("id");
static clientClose(http.Client client) {
client.close();
}
// get all pengiriman status ='Dalam Pengesahan Kurir'
static Future<Map<String, dynamic>>
getAllPengirimanDalamPengesahanKurir() async {
client = http.Client();
Future<Map<String, dynamic>> getAllPengirimanDalamPengesahanKurir() async {
late Map<String, dynamic> result;
bool _cek_jaringan = await cek_jaringan(client);
log("cek jaringan : " + _cek_jaringan.toString());
if (!_cek_jaringan) {
result = {
'status': 500,
'message':
"Tidak dapat terhubung ke server, Sila periksa koneksi internet anda"
};
} else {
// wait for 3 sec
// await Future.delayed(Duration(seconds: 3));
// result = {'status': 200, 'message': "sini dia"};
bool _checkServer = await cek_jaringan();
if (_checkServer) {
try {
// log("${globals.http_to_server}api/kurir/get_all_kurir_dalam_pengesahan?username=$username&password=$password&id=$id");
var response = await client.get(
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: {
@ -69,42 +51,131 @@ class KurirApi {
} else {
result = {'status': 400, 'message': "Server Error", 'data': data};
}
} catch (e) {
// dev.log(e.toString());
} on SocketException {
// abort the client
// closeClient();
result = {
'status': 500,
'message':
"Tidak dapat terhubung ke server, Sila periksa koneksi internet anda"
'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));
final data = jsonDecode(response.body);
// 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
static Future<Map<String, dynamic>> cekPengaturanKurir() async {
client = http.Client();
Future<Map<String, dynamic>> cekPengaturanKurir() async {
late Map<String, dynamic> result;
bool _cek_jaringan = await cek_jaringan(client);
bool _checkServer = await cek_jaringan();
log("cek jaringan : " + _cek_jaringan.toString());
if (!_cek_jaringan) {
result = {
'status': 500,
'message':
"Tidak dapat terhubung ke server, Sila periksa koneksi internet anda"
};
} else {
// wait for 3 sec
// await Future.delayed(Duration(seconds: 3));
// result = {'status': 200, 'message': "sini dia"};
if (_checkServer) {
await EasyLoading.show(
status: 'Loading...',
maskType: EasyLoadingMaskType.black,
);
try {
log("${globals.http_to_server}api/kurir/pengaturan?username=$username&password=$password&id=$id");
var response = await client.get(
var response = await http.get(
Uri.parse(
"${globals.http_to_server}api/kurir/pengaturan?username=$username&password=$password&id=$id"),
headers: {
@ -129,40 +200,58 @@ class KurirApi {
'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, Sila periksa koneksi internet anda"
'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
static Future<Map<String, dynamic>> pengaturanKurir(
Future<Map<String, dynamic>> pengaturanKurir(
String minimalBiaya, String maksimalBiaya, String biayaPerKilo) async {
client = http.Client();
late Map<String, dynamic> result;
bool _cek_jaringan = await cek_jaringan(client);
log("cek jaringan : " + _cek_jaringan.toString());
if (!_cek_jaringan) {
result = {
'status': 500,
'message':
"Tidak dapat terhubung ke server, Sila periksa koneksi internet anda"
};
} else {
// wait for 3 sec
// await Future.delayed(Duration(seconds: 3));
// result = {'status': 200, 'message': "sini dia"};
bool _checkServer = await cek_jaringan();
if (_checkServer) {
try {
var response = await client.post(
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: {
@ -188,40 +277,53 @@ class KurirApi {
'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, Sila periksa koneksi internet anda"
'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'
static Future<Map<String, dynamic>> sahkanPengiriman(
String? idPengiriman) async {
client = http.Client();
Future<Map<String, dynamic>> sahkanPengiriman(String? idPengiriman) async {
late Map<String, dynamic> result;
bool _cek_jaringan = await cek_jaringan(client);
// log("cek jaringan : " + _cek_jaringan.toString());
if (!_cek_jaringan) {
result = {
'status': 500,
'message':
"Tidak dapat terhubung ke server, Sila periksa koneksi internet anda"
};
} else {
// wait for 3 sec
// await Future.delayed(Duration(seconds: 3));
// result = {'status': 200, 'message': "sini dia"};
bool _checkServer = await cek_jaringan();
if (_checkServer) {
try {
var response = await client.post(
var response = await http.post(
Uri.parse(
"${globals.http_to_server}api/kurir/sahkan_pengiriman?username=$username&password=$password&id=$id"),
headers: {
@ -249,35 +351,52 @@ class KurirApi {
'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, Sila periksa koneksi internet anda"
'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;
}
static Future<Map<String, dynamic>> detailPengiriman(
String idPengiriman) async {
client = http.Client();
Future<Map<String, dynamic>> detailPengiriman(String idPengiriman) async {
late Map<String, dynamic> result;
bool _cek_jaringan = await cek_jaringan(client);
if (!_cek_jaringan) {
result = {
'status': 500,
'message':
"Tidak dapat terhubung ke server, Sila periksa koneksi internet anda"
};
} else {
// wait for 3 sec
// await Future.delayed(Duration(seconds: 3));
// result = {'status': 200, 'message': "sini dia"};
bool _checkServer = await cek_jaringan();
if (_checkServer) {
try {
var response = await client.get(
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: {
@ -302,39 +421,53 @@ class KurirApi {
'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, Sila periksa koneksi internet anda"
'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;
}
static Future<Map<String, dynamic>> mengambilPaketPengiriman(
Future<Map<String, dynamic>> mengambilPaketPengiriman(
String? idPengiriman) async {
client = http.Client();
late Map<String, dynamic> result;
bool _cek_jaringan = await cek_jaringan(client);
// log("cek jaringan : " + _cek_jaringan.toString());
if (!_cek_jaringan) {
result = {
'status': 500,
'message':
"Tidak dapat terhubung ke server, Sila periksa koneksi internet anda"
};
} else {
// wait for 3 sec
// await Future.delayed(Duration(seconds: 3));
// result = {'status': 200, 'message': "sini dia"};
bool _checkServer = await cek_jaringan();
if (_checkServer) {
try {
var response = await client.post(
var response = await http.post(
Uri.parse(
"${globals.http_to_server}api/kurir/mengambil_paket_pengiriman?username=$username&password=$password&id=$id"),
headers: {
@ -362,26 +495,58 @@ class KurirApi {
'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, Sila periksa koneksi internet anda"
'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
static Future<bool> cek_jaringan(http.Client client) async {
// 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 client.get(Uri.parse("${globals.http_to_server}api"), headers: {
await http.get(Uri.parse("${globals.http_to_server}api"), headers: {
"Accept": "application/json",
// "authorization":
// "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}",
@ -394,22 +559,18 @@ class KurirApi {
result = false;
}
} on SocketException {
await EasyLoading.dismiss();
result = false;
await clientClose(client);
log(" ini error socket");
// await clientClose(client);
} on TimeoutException {
await EasyLoading.dismiss();
result = false;
// close client
await clientClose(client);
log(" ini timeout");
// await clientClose(client);
} on Exception {
result = false;
log(" ini timeout");
} catch (e) {
result = false;
log(" ini timeout");
} finally {
await EasyLoading.dismiss();
}
return result;

View File

@ -2,49 +2,37 @@
import 'dart:async';
import 'dart:convert';
import 'dart:developer';
import 'dart:io';
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 PengirimApi {
static var client = http.Client();
class PengirimApi extends GetConnect {
static var storage = GetStorage();
static var username = storage.read("username");
static var password = storage.read("password");
static var id = storage.read("id");
static clientClose(http.Client client) {
client.close();
}
final log = Logger();
// get all kurir
static Future<Map<String, dynamic>> getAllKurir() async {
client = http.Client();
Future<Map<String, dynamic>> getAllKurir() async {
late Map<String, dynamic> result;
bool _cek_jaringan = await cek_jaringan(client);
// log("cek jaringan : " + _cek_jaringan.toString());
if (!_cek_jaringan) {
result = {
'status': 500,
'message':
"Tidak dapat terhubung ke server, Sila periksa koneksi internet anda"
};
} else {
// wait for 3 sec
// await Future.delayed(Duration(seconds: 3));
// result = {'status': 200, 'message': "sini dia"};
bool _checkServer = await cek_jaringan();
if (_checkServer) {
await EasyLoading.show(
status: 'Loading...',
maskType: EasyLoadingMaskType.black,
);
try {
var response = await client.get(
var response = await http.get(
Uri.parse(
"${globals.http_to_server}api/pengirim/kurir?username=$username&password=$password&id=$id"),
headers: {
@ -69,40 +57,63 @@ class PengirimApi {
'data': data
};
}
} catch (e) {
} on SocketException catch (e) {
// abort the client
await EasyLoading.dismiss();
// closeClient();
log.i(e.toString() + " ini error socket");
result = {
'status': 500,
'message':
"Tidak dapat terhubung ke server, Sila periksa koneksi internet anda"
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} on TimeoutException catch (e) {
// client.close();
log.i(e.toString() + " ini timeout");
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} on Exception catch (e) {
// client.close();
log.i(e.toString() + " ini error");
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} catch (e) {
log.i(e.toString() + " ini di catch");
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, Sila periksa koneksi internet anda"
};
}
return result;
}
// get kurir by nama
static Future<Map<String, dynamic>> getKurirByNama(String nama) async {
client = http.Client();
Future<Map<String, dynamic>> getKurirByNama(String nama) async {
late Map<String, dynamic> result;
bool _cek_jaringan = await cek_jaringan(client);
// log("cek jaringan : " + _cek_jaringan.toString());
if (!_cek_jaringan) {
result = {
'status': 500,
'message':
"Tidak dapat terhubung ke server, Sila periksa koneksi internet anda"
};
} else {
// wait for 3 sec
// await Future.delayed(Duration(seconds: 3));
// result = {'status': 200, 'message': "sini dia"};
bool _checkServer = await cek_jaringan();
if (_checkServer) {
try {
var response = await client.get(
await EasyLoading.show(
status: 'Loading...',
maskType: EasyLoadingMaskType.black,
);
var response = await http.get(
Uri.parse(
"${globals.http_to_server}api/pengirim/kurir/nama?nama=$nama&username=$username&password=$password&id=$id"),
headers: {
@ -127,45 +138,68 @@ class PengirimApi {
'data': data
};
}
} catch (e) {
} on SocketException catch (e) {
// abort the client
await EasyLoading.dismiss();
// closeClient();
log.i(e.toString() + " ini error socket");
result = {
'status': 500,
'message':
"Tidak dapat terhubung ke server, Sila periksa koneksi internet anda"
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} on TimeoutException catch (e) {
// client.close();
log.i(e.toString() + " ini timeout");
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} on Exception catch (e) {
// client.close();
log.i(e.toString() + " ini error");
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} catch (e) {
log.i(e.toString() + " ini di catch");
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, Sila periksa koneksi internet anda"
};
}
return result;
}
// get kurir by nama
static Future<Map<String, dynamic>> getKurirByFilter(
Future<Map<String, dynamic>> getKurirByFilter(
String? nama, int? biayaMaksimal, int? biayaPerKm) async {
client = http.Client();
late Map<String, dynamic> result;
bool _cek_jaringan = await cek_jaringan(client);
// log("cek jaringan : " + _cek_jaringan.toString());
if (!_cek_jaringan) {
result = {
'status': 500,
'message':
"Tidak dapat terhubung ke server, Sila periksa koneksi internet anda"
};
} else {
// wait for 3 sec
// await Future.delayed(Duration(seconds: 3));
// result = {'status': 200, 'message': "sini dia"};
bool _checkServer = await cek_jaringan();
if (_checkServer) {
await EasyLoading.show(
status: 'Loading...',
maskType: EasyLoadingMaskType.black,
);
try {
String _nama = nama ?? "";
String _biayaMaksimal = biayaMaksimal?.toString() ?? "";
String _biayaPerKm = biayaPerKm?.toString() ?? "";
var response = await client.get(
var response = await http.get(
Uri.parse(
"${globals.http_to_server}api/pengirim/kurir/filter?nama=$_nama&biaya_maksimal=$_biayaMaksimal&biaya_per_km=$_biayaPerKm&username=$username&password=$password&id=$id"),
headers: {
@ -190,41 +224,67 @@ class PengirimApi {
'data': data
};
}
} catch (e) {
} on SocketException catch (e) {
// abort the client
await EasyLoading.dismiss();
// closeClient();
log.i(e.toString() + " ini error socket");
result = {
'status': 500,
'message':
"Tidak dapat terhubung ke server, Sila periksa koneksi internet anda"
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} on TimeoutException catch (e) {
// client.close();
log.i(e.toString() + " ini timeout");
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} on Exception catch (e) {
// client.close();
log.i(e.toString() + " ini error");
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} catch (e) {
log.i(e.toString() + " ini di catch");
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, Sila periksa koneksi internet anda"
};
}
return result;
}
// post create pengiriman barang
static Future<Map<String, dynamic>> createPengirimanBarang(
Future<Map<String, dynamic>> createPengirimanBarang(
Map<String, dynamic> _datanya) async {
client = http.Client();
late Map<String, dynamic> result;
bool _cek_jaringan = await cek_jaringan(client);
bool _checkServer = await cek_jaringan();
// log("cek jaringan : " + _cek_jaringan.toString());
if (!_cek_jaringan) {
result = {
'status': 500,
'message':
"Tidak dapat terhubung ke server, Sila periksa koneksi internet anda"
};
} else {
if (_checkServer) {
try {
await EasyLoading.show(
status: 'Loading...',
maskType: EasyLoadingMaskType.black,
);
String foto_path = _datanya['foto_path'];
// log(foto_path.toString() + " ini datanya di pengiriman barang");
// remove foto_path from _datanya
_datanya.remove('foto_path');
log(_datanya.toString());
var postUri = Uri.parse(
'${globals.http_to_server}api/pengirim/pengiriman_barang?username=$username&password=$password&id=$id');
var request = http.MultipartRequest("POST", postUri);
@ -232,49 +292,68 @@ class PengirimApi {
request.files.add(
await http.MultipartFile.fromPath('foto_pengiriman', foto_path));
var streamResponse =
await request.send().timeout(const Duration(seconds: 30));
await request.send().timeout(const Duration(seconds: 60));
// var streamResponse = await request.send();
var response = await http.Response.fromStream(streamResponse);
var datanya = jsonDecode(response.body);
log(datanya.toString() + " ini datanya di pengiriman barang");
result = {
'status': 200,
'message': datanya['message'],
};
} on SocketException catch (e) {
// abort the client
// closeClient();
log.i(e.toString() + " ini error socket");
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} on TimeoutException catch (e) {
// client.close();
log.i(e.toString() + " ini timeout");
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} on Exception catch (e) {
// client.close();
log.i(e.toString() + " ini error");
result = {
'status': 500,
'message': "Tidak dapat terhubung ke server,koneksi timeout"
};
} catch (e) {
log(e.toString() + " ini error");
result = {'status': 500, 'message': e.toString()};
log.i(e.toString() + " ini di catch");
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, Sila periksa koneksi internet anda"
};
}
return result;
}
// get log Kiriman
static Future<Map<String, dynamic>> getLogKiriman() async {
client = http.Client();
Future<Map<String, dynamic>> getLogKiriman() async {
late Map<String, dynamic> result;
bool _cek_jaringan = await cek_jaringan(client);
// log("cek jaringan : " + _cek_jaringan.toString());
if (!_cek_jaringan) {
result = {
'status': 500,
'message':
"Tidak dapat terhubung ke server, Sila periksa koneksi internet anda"
};
} else {
// wait for 3 sec
// await Future.delayed(Duration(seconds: 3));
// result = {'status': 200, 'message': "sini dia"};
bool _checkServer = await cek_jaringan();
if (_checkServer) {
try {
var response = await client.get(
var response = await http.get(
Uri.parse(
"${globals.http_to_server}api/pengirim/log_kiriman?username=$username&password=$password&id=$id"),
headers: {
@ -298,66 +377,88 @@ class PengirimApi {
'data': data
};
}
} catch (e) {
log(e.toString() + " ini error");
} on SocketException {
// abort the client
// closeClient();
result = {
'status': 500,
'message':
"Tidak dapat terhubung ke server, Sila periksa koneksi internet anda"
'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, Sila periksa koneksi internet anda"
};
}
return result;
}
static Future<double> jarak_route(
Future<double> jarak_route(
double lat1, double lng1, double lat2, double lng2) async {
client = http.Client();
double jarak = 0;
bool _cek_jaringan = await cek_jaringan(client);
try {
var response = await http.get(
Uri.parse(
"https://maps.googleapis.com/maps/api/directions/json?origin=$lat1,$lng1&destination=$lat2,$lng2&key=${globals.api_key}"),
headers: {
"Accept": "application/json",
// "authorization":
// "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}",
"crossDomain": "true"
}).timeout(const Duration(seconds: 10));
// log("cek jaringan : " + _cek_jaringan.toString());
// log()
final data = jsonDecode(response.body);
if (!_cek_jaringan) {
jarak = 0;
} else {
try {
var response = await client.get(
Uri.parse(
"https://maps.googleapis.com/maps/api/directions/json?origin=$lat1,$lng1&destination=$lat2,$lng2&key=${globals.api_key}"),
headers: {
"Accept": "application/json",
// "authorization":
// "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}",
"crossDomain": "true"
}).timeout(const Duration(seconds: 10));
// log()
final data = jsonDecode(response.body);
if (data["routes"].length > 0) {
jarak = data["routes"][0]["legs"][0]["distance"]["value"] / 1000;
} else {
jarak = 0;
}
} catch (e) {
if (data["routes"].length > 0) {
jarak = data["routes"][0]["legs"][0]["distance"]["value"] / 1000;
} else {
jarak = 0;
}
} catch (e) {
jarak = 0;
}
return jarak;
}
// checking connection to server
static Future<bool> cek_jaringan(http.Client client) async {
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 client.get(Uri.parse("${globals.http_to_server}api"), headers: {
await http.get(Uri.parse("${globals.http_to_server}api"), headers: {
"Accept": "application/json",
// "authorization":
// "Basic ${base64Encode(utf8.encode("Kicap_karan:bb10c6d9f01ec0cb16726b59e36c2f73"))}",
@ -370,22 +471,23 @@ class PengirimApi {
result = false;
}
} on SocketException {
await EasyLoading.dismiss();
result = false;
await clientClose(client);
log(" ini error socket");
// await clientClose(client);
log.i(" ini error socket");
} on TimeoutException {
await EasyLoading.dismiss();
result = false;
// close client
await clientClose(client);
log(" ini timeout");
// await clientClose(client);
log.i(" ini timeout");
} on Exception {
result = false;
log(" ini timeout");
log.i(" ini timeout");
} catch (e) {
result = false;
log(" ini timeout");
log.i(" ini timeout");
} finally {
await EasyLoading.dismiss();
}
return result;