refactor: ApiProvider uses
parent
1ce2765172
commit
946e3528e7
|
|
@ -12,24 +12,27 @@ import 'package:mobdr/main.dart';
|
|||
import 'package:mobdr/service/shared_prefs.dart';
|
||||
|
||||
class ApiProvider {
|
||||
Dio dio = Dio();
|
||||
final Dio _dio;
|
||||
|
||||
ApiProvider() : _dio = Dio();
|
||||
|
||||
String connErr = 'Please check your internet connection and try again';
|
||||
|
||||
Future<Response> getCrud(url, body) async {
|
||||
print('url : ' + url.toString());
|
||||
try {
|
||||
dio.options.headers['content-Type'] = 'application/json';
|
||||
dio.options.headers['Accept'] = 'application/json';
|
||||
dio.options.headers['Cookie'] = "pguid=${SharedPrefs().guid}";
|
||||
_dio.options.headers['content-Type'] = 'application/json';
|
||||
_dio.options.headers['Accept'] = 'application/json';
|
||||
_dio.options.headers['Cookie'] = "pguid=${SharedPrefs().guid}";
|
||||
|
||||
dio.options.connectTimeout = Duration(seconds: 5);
|
||||
dio.options.receiveTimeout = Duration(seconds: 4);
|
||||
_dio.options.connectTimeout = Duration(seconds: 5);
|
||||
_dio.options.receiveTimeout = Duration(seconds: 4);
|
||||
|
||||
if (body != null) {
|
||||
dio.options.queryParameters = body;
|
||||
_dio.options.queryParameters = body;
|
||||
}
|
||||
|
||||
return await dio.get(url);
|
||||
return await _dio.get(url);
|
||||
} on DioError catch (e) {
|
||||
//print(e.toString()+' | '+url.toString());
|
||||
if (e.type == DioErrorType.badResponse) {
|
||||
|
|
@ -47,19 +50,18 @@ class ApiProvider {
|
|||
throw 'cancel';
|
||||
}
|
||||
throw connErr;
|
||||
} finally {
|
||||
//dio.close(); // TODO: Attention pas close
|
||||
}
|
||||
}
|
||||
|
||||
Future<Response> getConnect(url, apiToken) async {
|
||||
print('url : ' + url.toString());
|
||||
try {
|
||||
dio.options.headers['content-Type'] = 'application/x-www-form-urlencoded';
|
||||
dio.options.connectTimeout = Duration(seconds: 5);
|
||||
dio.options.receiveTimeout = Duration(seconds: 4);
|
||||
_dio.options.headers['content-Type'] =
|
||||
'application/x-www-form-urlencoded';
|
||||
_dio.options.connectTimeout = Duration(seconds: 5);
|
||||
_dio.options.receiveTimeout = Duration(seconds: 4);
|
||||
|
||||
return await dio.post(url, cancelToken: apiToken);
|
||||
return await _dio.post(url, cancelToken: apiToken);
|
||||
} on DioError catch (e) {
|
||||
//print(e.toString()+' | '+url.toString());
|
||||
if (e.type == DioErrorType.badResponse) {
|
||||
|
|
@ -77,8 +79,6 @@ class ApiProvider {
|
|||
throw 'cancel';
|
||||
}
|
||||
throw connErr;
|
||||
} finally {
|
||||
//dio.close(); // TODO: Attention pas close
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -86,11 +86,12 @@ class ApiProvider {
|
|||
print('url : ' + url.toString());
|
||||
print('postData : ' + data.toString());
|
||||
try {
|
||||
dio.options.headers['content-Type'] = 'application/x-www-form-urlencoded';
|
||||
dio.options.connectTimeout = Duration(seconds: 5);
|
||||
dio.options.receiveTimeout = Duration(seconds: 4);
|
||||
_dio.options.headers['content-Type'] =
|
||||
'application/x-www-form-urlencoded';
|
||||
_dio.options.connectTimeout = Duration(seconds: 5);
|
||||
_dio.options.receiveTimeout = Duration(seconds: 4);
|
||||
|
||||
return await dio.post(url, data: data, cancelToken: apiToken);
|
||||
return await _dio.post(url, data: data, cancelToken: apiToken);
|
||||
} on DioError catch (e) {
|
||||
//print(e.toString()+' | '+url.toString());
|
||||
if (e.type == DioErrorType.badResponse) {
|
||||
|
|
@ -108,8 +109,6 @@ class ApiProvider {
|
|||
throw 'cancel';
|
||||
}
|
||||
throw connErr;
|
||||
} finally {
|
||||
//dio.close(); // TODO: Attention pas close
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -165,7 +164,7 @@ class ApiProvider {
|
|||
|
||||
/// get image from url
|
||||
Response ReponseImg =
|
||||
await dio.get(ApiConstants.baseUrl + response.data['photo'],
|
||||
await _dio.get(ApiConstants.baseUrl + response.data['photo'],
|
||||
options: Options(
|
||||
responseType: ResponseType.bytes,
|
||||
contentType: 'application/octet-stream',
|
||||
|
|
@ -478,4 +477,8 @@ class ApiProvider {
|
|||
|
||||
return "OK";
|
||||
}
|
||||
|
||||
void close() {
|
||||
_dio.close();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ class SigninPage extends StatefulWidget {
|
|||
class _SigninPageState extends State<SigninPage> {
|
||||
bool _obscureText = true;
|
||||
IconData _iconVisible = Icons.visibility_off;
|
||||
ApiProvider _apiProvider = ApiProvider(); // TODO: A voir si bien positionné
|
||||
late ApiProvider _apiProvider;
|
||||
|
||||
TextEditingController _etUserName = TextEditingController();
|
||||
TextEditingController _etPinCode = TextEditingController();
|
||||
|
|
@ -38,6 +38,9 @@ class _SigninPageState extends State<SigninPage> {
|
|||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
|
||||
_apiProvider = ApiProvider();
|
||||
_etUserName = TextEditingController(text: SharedPrefs().login);
|
||||
_etPinCode = TextEditingController(text: '');
|
||||
|
||||
|
|
@ -57,14 +60,14 @@ class _SigninPageState extends State<SigninPage> {
|
|||
// set to french
|
||||
SharedPrefs().langage = "fr";
|
||||
}
|
||||
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_etUserName.dispose();
|
||||
_etPinCode.dispose();
|
||||
_apiProvider.close();
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,15 +29,17 @@ class _VerificationPageState extends State<VerificationPage> {
|
|||
|
||||
bool _buttonDisabled = true;
|
||||
String _securityCode = '';
|
||||
ApiProvider _apiProvider = ApiProvider(); // TODO: A voir si bien positionné
|
||||
late ApiProvider _apiProvider;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_apiProvider = ApiProvider();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_apiProvider.close();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ class _SynchronizationPageState extends State<SynchronizationPage>
|
|||
|
||||
late AnimationController _animationController;
|
||||
late Animation<double> _rotationAnimation;
|
||||
late ApiProvider _apiProvider;
|
||||
|
||||
bool _isSyncing = false;
|
||||
bool _isInternetConnexion = true;
|
||||
|
|
@ -37,6 +38,8 @@ class _SynchronizationPageState extends State<SynchronizationPage>
|
|||
void initState() {
|
||||
super.initState();
|
||||
|
||||
_apiProvider = ApiProvider();
|
||||
|
||||
_animationController = AnimationController(
|
||||
vsync: this,
|
||||
duration: Duration(seconds: 2),
|
||||
|
|
@ -49,6 +52,7 @@ class _SynchronizationPageState extends State<SynchronizationPage>
|
|||
@override
|
||||
void dispose() {
|
||||
_animationController.dispose();
|
||||
_apiProvider.close();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
|
|
@ -71,7 +75,7 @@ class _SynchronizationPageState extends State<SynchronizationPage>
|
|||
}
|
||||
}
|
||||
|
||||
Future<void> _uploadVisitPhotos(ApiProvider _apiProvider) async {
|
||||
Future<void> _uploadVisitPhotos() async {
|
||||
List<VisitPhoto> _visitPhotosList = objectbox.getAllVisitPhotos();
|
||||
int _totalUploaded = 0;
|
||||
|
||||
|
|
@ -212,8 +216,6 @@ class _SynchronizationPageState extends State<SynchronizationPage>
|
|||
|
||||
_animationController.repeat();
|
||||
|
||||
final ApiProvider _apiProvider = ApiProvider();
|
||||
|
||||
// log tracker
|
||||
LoggerUtil.dblog('LOG', 'MOBDR',
|
||||
'Nombre Photo(s): ' + objectbox.getVisitPhotoCount().toString(), 0);
|
||||
|
|
@ -225,7 +227,7 @@ class _SynchronizationPageState extends State<SynchronizationPage>
|
|||
}
|
||||
|
||||
// upload photo to server
|
||||
await _uploadVisitPhotos(_apiProvider);
|
||||
await _uploadVisitPhotos();
|
||||
|
||||
// delete visits without a photo!
|
||||
await objectbox.DeleteVisitWithoutPhoto();
|
||||
|
|
|
|||
Loading…
Reference in New Issue