104 lines
2.8 KiB
Dart
104 lines
2.8 KiB
Dart
// ignore_for_file: unnecessary_overrides
|
|
import 'dart:async';
|
|
import 'dart:io';
|
|
|
|
import 'package:http/http.dart' as http;
|
|
import 'package:logger/logger.dart';
|
|
|
|
import 'package:IQ/main.dart';
|
|
|
|
class APIService {
|
|
static Future getUrl(url) async {
|
|
try {
|
|
http.Request response;
|
|
// ignore: unrelated_type_equality_checks
|
|
response = http.Request('GET', Uri.parse(url));
|
|
http.StreamedResponse request = await response.send();
|
|
if (request.statusCode != 200) {
|
|
return request.statusCode;
|
|
}
|
|
String res = await request.stream.bytesToString();
|
|
return res;
|
|
} catch (e) {
|
|
if (e is SocketException) {
|
|
return 0;
|
|
} else if (e is TimeoutException) {
|
|
return -2;
|
|
}
|
|
}
|
|
}
|
|
|
|
static Future get(route, [bool auth = true]) async {
|
|
try {
|
|
var baseUrl = storage.read('baseUrl');
|
|
var token = storage.read('token');
|
|
// isExpired = JwtDecoder.isExpired(token!);
|
|
// if (isExpired) {
|
|
// storage.remove('token');
|
|
// Get.offAllNamed(Routes.AUTOLOGIN);
|
|
// return -1;
|
|
// }
|
|
http.Request response;
|
|
response = http.Request('GET', Uri.parse('$baseUrl/$route'));
|
|
if (auth) response.headers.addAll({'Authorization': 'Bearer $token'});
|
|
|
|
http.StreamedResponse request = await response.send();
|
|
Logger().e("token $token");
|
|
if (request.statusCode != 200) {
|
|
token = null;
|
|
storage.remove('token');
|
|
// Get.offAllNamed(Routes.SELECT_I_S_P);
|
|
return request.statusCode;
|
|
}
|
|
String res = await request.stream.bytesToString();
|
|
Logger().e("request $res");
|
|
return res;
|
|
} catch (e) {
|
|
if (e is SocketException) {
|
|
return 0;
|
|
} else if (e is TimeoutException) {
|
|
return -2;
|
|
}
|
|
}
|
|
}
|
|
|
|
static Future post(route, String payload, [bool auth = true]) async {
|
|
try {
|
|
var baseUrl = storage.read('baseUrl');
|
|
var token = storage.read('token');
|
|
var request = http.Request(
|
|
'POST',
|
|
Uri.parse('$baseUrl/$route'),
|
|
);
|
|
request.bodyFields = {'payload': payload};
|
|
// isExpired = JwtDecoder.isExpired(token!);
|
|
// if (isExpired) {
|
|
// storage.remove('token');
|
|
// Get.offAllNamed(Routes.AUTOLOGIN);
|
|
// return -1;
|
|
// }
|
|
|
|
if (auth) {
|
|
request.headers.addAll({
|
|
'Authorization': 'Bearer $token',
|
|
'Accept': 'application/json',
|
|
});
|
|
}
|
|
|
|
http.StreamedResponse response = await request.send();
|
|
if (response.statusCode != 200) {
|
|
return response.statusCode;
|
|
}
|
|
String res = await response.stream.bytesToString();
|
|
|
|
return res;
|
|
} catch (e) {
|
|
if (e is SocketException) {
|
|
return 0;
|
|
} else if (e is TimeoutException) {
|
|
return -2;
|
|
}
|
|
}
|
|
}
|
|
}
|