iq/lib/app/modules/service/api_service.dart

104 lines
2.8 KiB
Dart
Raw Permalink Normal View History

2023-09-11 12:11:35 +00:00
// 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;
}
}
}
}