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