Untitled
unknown
dart
3 years ago
34 kB
2
Indexable
import 'dart:convert'; import 'dart:io'; import 'dart:math'; import 'dart:developer' as dev; import 'package:dio/dio.dart' as mPart; import 'package:dio/dio.dart'; import 'package:get/get.dart'; import 'package:get_storage/get_storage.dart'; import 'package:iketfaa_delivery/App/Common/Backend/firebase_crud.dart'; import 'package:iketfaa_delivery/App/Common/Models/Main/AppUser.dart'; import 'package:iketfaa_delivery/App/Common/Models/Main/BusinessRegDto.dart'; import 'package:iketfaa_delivery/App/Common/Models/Main/CityItem.dart'; import 'package:iketfaa_delivery/App/Common/Models/Main/ForgetPasswordDTOo.dart'; import 'package:iketfaa_delivery/App/Common/Models/Main/ForgetPasswordDto.dart'; import 'package:iketfaa_delivery/App/Common/Models/Main/RecommendedService.dart'; import 'package:iketfaa_delivery/App/Common/Models/Main/UserFirebase.dart'; import 'package:iketfaa_delivery/App/Common/Models/Main/address.dart'; import 'package:iketfaa_delivery/App/Common/Models/Main/document_dto.dart'; import 'package:iketfaa_delivery/App/Common/Models/Main/myfatoorah_banks.dart'; import 'package:iketfaa_delivery/App/Common/Models/Main/reset_password_dto.dart'; import 'package:iketfaa_delivery/App/Common/Models/RequestsParameters/AddSupplierParam.dart'; import 'package:iketfaa_delivery/App/Common/Models/RequestsParameters/EditSupplierBankInfoAddedParam.dart'; import 'package:iketfaa_delivery/App/Common/Models/RequestsParameters/EditSupplierCodeParam.dart'; import 'package:iketfaa_delivery/App/Common/Models/RequestsParameters/LoginParam.dart'; import 'package:iketfaa_delivery/App/Common/Models/RequestsParameters/UploadSupplierDocParam.dart'; import 'package:iketfaa_delivery/App/Common/Models/personel_register_model.dart'; import 'package:iketfaa_delivery/App/Common/Modules/Dashboard/binding/dashboard_binding.dart'; import 'package:iketfaa_delivery/App/Common/Modules/Dashboard/view/dashboard_view.dart'; import 'package:iketfaa_delivery/App/Common/Modules/OTP/binding/otp_binding.dart'; import 'package:iketfaa_delivery/App/Common/Modules/OTP/view/otp_view.dart'; import 'package:iketfaa_delivery/App/Common/Modules/SetPassword/binding/set_password_binding.dart'; import 'package:iketfaa_delivery/App/Common/Modules/SetPassword/view/set_password_view.dart'; import 'package:iketfaa_delivery/App/Common/Modules/SignUp/controller/signup_controller.dart'; import 'package:iketfaa_delivery/App/Common/Modules/Splash/view/start_page.dart'; import 'package:iketfaa_delivery/App/Common/Services/AuthenticationService/Core/manager.dart'; import 'package:iketfaa_delivery/App/Common/Successful/view/successful_view.dart'; import 'package:iketfaa_delivery/App/Common/Utilities/Constants/Strings/General.dart'; import 'package:iketfaa_delivery/App/Common/Utilities/Constants/UI.dart'; import 'package:iketfaa_delivery/App/Common/Utilities/Methods/tools.dart'; import 'package:iketfaa_delivery/App/Common/Widgets/SuccessfullPage.dart'; import 'package:iketfaa_delivery/App/Delivery/Models/Main/RequestParameter/CarModelItems.dart'; import 'package:iketfaa_delivery/App/Delivery/Models/Main/RequestParameter/CarTypesItems.dart'; import 'package:iketfaa_delivery/App/Delivery/Models/Main/RequestParameter/VehicleTypesItems.dart'; import 'package:iketfaa_delivery/App/Delivery/Models/Main/UserDeliveryCarDetails.dart'; import '../Models/Main/address_book_dto.dart'; import '../Models/Main/document_dto.dart'; import '../Models/Main/myfatoorah_banks.dart'; import '../Utilities/Constants/UI.dart'; class Api { static final Dio httpClient = Dio(); static final String baseUrl = BASE_URL; static final String localBaseUrl = LOCALE_BASE_URL; static final GetStorage storage = GetStorage(); static final CommonTools commonTools = CommonTools(); final FirebaseCRUD firebaseCRUD = new FirebaseCRUD(); static final String baseUrlMyFatoorah = 'https://api.myfatoorah.com/v2/'; static final String myFatoorahAPItoken = MY_FATOORAH_TOKEN; Future setPassword(ResetPasswordDTO param, String id) async { final AuthenticationManager authManager = Get.find(); await httpClient .post( baseUrl + 'Account/SetPassword', data: param.toJson(), options: Options( headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Accept-Language': '${Get.locale!.languageCode}', }, ), ) .then((value) async { if (value.statusCode == 200) { authManager.logOut(); Get.back(); Get.offAll( () => SuccessfulView( content: 'successRegisterMess', duration: 4, function: () { Get.offAll(() => SignInStartView()); // Get.offAll(() => SignInView(), binding: SignInBinding()); }, ), ); // authManager.commonTools.showSuccessSnackBar('successRegisterMess'); } }).catchError((e) { Get.back(); authManager.commonTools.showFailedSnackBar(e.response!.data != null ? e.response!.data[0] != null ? e.response!.data[0]['errorMessage'] : 'errorMessage' : 'errorMessage'); }); } Future<void> verifyOtp(String code, String target) async { final AuthenticationManager authManager = Get.find(); await httpClient .post( baseUrl + 'Otp/VerifyOtp', data: { 'appUserId': authManager.appUser.value.id, 'code': code, }, options: Options( headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Accept-Language': '${Get.locale!.languageCode}', }, ), ) .then((response) { if (response.statusCode == 200) { if (target == 'ResetPassword') { Get.back(); Get.offAll(() => SetPasswordView(), binding: SetPasswordBinding()); authManager.commonTools.showSuccessSnackBar('verifiedSuccess'); } } }).catchError((e) { Get.back(); authManager.commonTools.showFailedSnackBar(e.response!.data != null ? e.response!.data[0] != null ? e.response!.data[0]['errorMessage'] : 'notCorrectOtp' : 'notCorrectOtp'); }); } Future<bool> userDeliveryCarDetails( UserDeliveryCarDetails userDeliveryCarDetails) async { final AuthenticationManager authManager = Get.find(); // GetStorage box = GetStorage(); bool result = false; await httpClient .post( baseUrl + 'Iktifaa/UserDeliveryCarDetails/Add', data: userDeliveryCarDetails.toJson(), options: Options( headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': authManager.getToken(), 'Accept-Language': '${Get.locale!.languageCode}', }, ), ) .then((response) { print(response.data); if (response.statusCode == 200) { result = true; // box.write('delivery', 'delivery'); } }).catchError((e) { Get.back(); print(e); authManager.commonTools.showFailedSnackBar( e.response!.data[0]['errorMessage'] ?? 'notCorrect'); }); return result; } Future<void> personalReg(RegisterPersonalDto param) async { final AuthenticationManager authManager = Get.find(); final SignUpController signUpController = Get.find(); try { await httpClient .post( baseUrl + 'Iktifaa/Registration/RegisterRequesterIndividual', data: param.toJson(), options: Options( maxRedirects: 1, headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', 'Accept-Language': '${Get.locale!.languageCode}', }, ), ) .then((resoponse) async { if (resoponse.statusCode == 200) { print(resoponse.data); authManager.login(resoponse.data); await getUserDataByToken(); Get.back(); Get.offAll(() => OtpView(), binding: OtpBinding(), arguments: ['ResetPassword']); signUpController.clearPersonalTextField(); commonTools.showSuccessSnackBar('successRegisterMess'); } }); } on DioError catch (e) { Get.back(); Get.log('Status Code ${e.response!.statusCode} message ${e.response}'); commonTools.showFailedSnackBar( e.response!.data[0]['errorMessage'] ?? 'failedRegisterMess'); } } Future<List<RecommendedService>> getAllRecommendedServices() async { final AuthenticationManager authenticationManager = Get.find(); List<RecommendedService> items = []; try { var response = await httpClient.get(baseUrl + 'RecommendedServices/GetAll', options: Options(headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': authenticationManager.getToken(), 'Accept-Language': '${Get.locale!.languageCode}', })); if (response.statusCode == 200) { items = List<RecommendedService>.from(json .decode(json.encode(response.data['data']['items'])) .map((x) => RecommendedService.fromJson(x))); } } on DioError { // commonTools.showFailedSnackBar(e.message); } return items; } Future<void> providerLogin(LoginParam param) async { AuthenticationManager authManager = Get.find(); await httpClient .post( baseUrl + 'Account/Login', data: param.toMap(), options: Options( headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Accept-Language': '${Get.locale!.languageCode}', }, ), ) .then((response) async { if (response.statusCode == 200) { if (response.data['appUser'] != null) { authManager.appUser.value = AppUser.fromJson(response.data['appUser']); UserFirebase? userData = await authManager.firebaseCRUD.getCurrentUserDataByIDWithAdd(); if (userData!.docID != null) { Get.back(); if (response.data['token'] != null) { authManager.appUser.value.userFirebase = userData; storage.write('appUserId', authManager.appUser.value.id); authManager.login(response.data['token']); authManager.isLogged.value = true; Get.offAll(() => DashboardView(), binding: DashboardBinding(), arguments: ['login']); } } else { authManager.appUser.value = AppUser(); Get.back(); commonTools.showFailedSnackBar('error login'); } } } else { Get.back(); commonTools.showFailedSnackBar('error login'); } }).catchError((e) { Get.back(); commonTools.showFailedSnackBar(e.response!.data != null ? e.response!.data[0] != null ? e.response!.data[0]['errorMessage'] : 'error login' : 'error login'); }); } Future<void> getUserDataByToken() async { AuthenticationManager authManager = Get.find(); print('get data'); try { await httpClient.get( baseUrl + 'Account/GetUserDataByToken', options: Options( headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Accept-Language': '${Get.locale!.languageCode}', }, ), queryParameters: { 'token': authManager.getToken(), }, ).then((response) { if (response.statusCode == 200) { dev.log(response.data.toString()); authManager.appUser.value = AppUser.fromJson(response.data); } }); } on DioError catch (e) { print(e); } } Future<bool> addSupplier(AddSupplierParam param, String id) async { bool result = false; try { await httpClient .post( baseUrlMyFatoorah + 'CreateSupplier', data: param.toJson(), options: Options( sendTimeout: 6 * 1000, receiveTimeout: 6 * 1000, receiveDataWhenStatusError: true, headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': 'Bearer $myFatoorahAPItoken', }, ), ) .then((value) async { if (value.statusCode == 200) { print('1'); if (value.data['Data']['SupplierCode'] != null) { print('2'); result = await updateSupplierCodeBankInfoAdded( true, value.data['Data']['SupplierCode']); if (result) { print('3'); firebaseCRUD.addSupplierToFirebase( param, id, value.data['Data']['SupplierCode']); } } else { print('4'); Get.back(); commonTools.showFailedSnackBar('Please try again in few seconds'); return result; } } else { print('5'); Get.back(); commonTools.showFailedSnackBar('Please try again in few seconds'); return result; } }); } on DioError catch (e) { print('6'); Get.back(); if (e.response.toString().contains('Invalid Iban!')) { commonTools.showFailedSnackBar('enterValidIban'); } return result; } print('7'); return result; } Future editUserProfileData( {String? email, String? mobileNumber, String? provider}) async { AuthenticationManager authManager = Get.find(); commonTools.showLoading(); // add roles list to parameter try { var response = await httpClient.put( baseUrl + 'Account/EditUserProfileData/${authManager.appUser.value.id}', data: { 'MobileNumber': mobileNumber, 'EMail': email, 'Roles': '$provider' }, options: Options( headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': authManager.getToken(), }, ), ); if (response.statusCode == 200) { Get.back(); Get.back(); authManager.commonTools .showSuccessSnackBar('You have been registered successfully'); } } on DioError catch (e) { print(e.message); Get.back(); authManager.commonTools.showSuccessSnackBar(e.message); } } Future<bool> updateSupplierCodeBankInfoAdded(bool supplier, int? code) async { AuthenticationManager authManager = Get.find(); var data; if (supplier) data = EditSupplierCodeParam(supplierCode: code!); else data = EditSupplierBankInfoAddedParam(bankInfoAdded: true); try { var response = await httpClient.put( baseUrl + 'Account/EditProviderProfileData/${authManager.appUser.value.id}', data: data.toJson(), options: Options( headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': authManager.getToken(), 'Accept-Language': '${Get.locale!.languageCode}', }, ), ); if (response.statusCode == 200) { supplier ? authManager.appUser.value.provider!.supplierCode = code : authManager.appUser.value.provider!.bankInfoAdded = true; return true; } } on DioError catch (e) { print(e); return false; } return false; } Future<bool> uploadSupllierDocs( UploadSupplierDocParam doc, int supplierCode) async { bool result = false; mPart.FormData formData = mPart.FormData.fromMap({ 'FileUpload': await mPart.MultipartFile.fromFile(doc.filePath, filename: doc.fileName), 'FileType': doc.fileType, 'SupplierCode': supplierCode }); try { await httpClient .put( baseUrlMyFatoorah + 'UploadSupplierDocument', data: formData, options: Options( sendTimeout: 6 * 1000, receiveTimeout: 6 * 1000, receiveDataWhenStatusError: true, headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': 'Bearer $myFatoorahAPItoken', }, ), ) .then((value) async { if (value.statusCode == 200) { if (doc.fileType == 1) { result = await updateSupplierCodeBankInfoAdded(false, supplierCode); } else { result = true; Get.back(); } } else { Get.back(); } }); } on DioError catch (e) { print(e.message); Get.back(); } return result; } Future forgetPass(ForgetPasswordDto param) async { commonTools.showLoading(); var response = await httpClient .post( baseUrl + 'Account/ForgetPassword', data: param.toJson(), options: Options( headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Accept-Language': '${Get.locale!.languageCode}', }, ), ) .catchError((e) { print(e); Get.back(); commonTools.showFailedSnackBar(e.response!.data != null ? e.response!.data[0] != null ? e.response!.data[0]['errorMessage'] : 'email not found' : 'email not found'); }); if (response.statusCode == 200) { GetStorage box = GetStorage(); print('please wait for the new password...'); print('the status is = ' + '${response.statusCode}'); final validMap = json.decode(json.encode(response.data)) as Map<String, dynamic>; ForgetPasswordDTO resp = ForgetPasswordDTO.fromJson(validMap); box.write('newToken', resp.data); print('new token =${resp.data} '); Get.back(); return resp; } } Future<String> resetPassword(ResetPasswordDTO param, context) async { commonTools.showLoading(); try { await httpClient .put( baseUrl + 'Account/ResetPassword', data: param.toJson(), options: Options( headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Accept-Language': '${Get.locale!.languageCode}', }, ), ) .then((value) { if (value.statusCode == 200) { commonTools.unFocusKeyboard(context); Get.back(); Get.to(() => SuccessfullPage( content: 'Password changed successfully'.tr, function: () { Get.offAll(() => SignInStartView()); }, )); commonTools.showSuccessSnackBar('Password changed successfully'); return 'Success'; } }); } on DioError catch (e) { Get.back(); print(e.message); commonTools.showFailedSnackBar(e.response!.data != null ? e.response!.data[0] != null ? e.response!.data[0]['errorMessage'] : 'errorMessage' : 'errorMessage'); } return 'failed'; } Future businessReg(BusinessRegDto param) async { final AuthenticationManager authManager = Get.find(); print(param.toJson().toString()); try { await httpClient .post( baseUrl + 'Iktifaa/Registration/RegisterBuisness', data: param.toJson(), options: Options( maxRedirects: 1, headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', 'Accept-Language': '${Get.locale!.languageCode}', }, ), ) .then((resoponse) async { if (resoponse.statusCode == 200) { authManager.login(resoponse.data); await getUserDataByToken(); } }); } on DioError catch (e) { Get.back(); authManager.logOut(); commonTools.showFailedSnackBar(e.response!.data != null ? e.response!.data[0] != null ? e.response!.data[0]['errorMessage'] : 'failedRegisterMess' : 'failedRegisterMess'); } } Future<String> requesterAddAddressBook(AddressBookDto param) async { GetStorage box = GetStorage(); try { var response = await httpClient .post( baseUrl + 'Iktifaa/RequesterAddressBooks/Add', data: param.toJson(), options: Options( headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': box.read('token'), 'Accept-Language': '${Get.locale!.languageCode}', }, ), ) .then((value) { if (value.statusCode == 200) { print(value.statusCode); Get.showSnackbar(UI.SuccessSnackBar( title: 'Success'.tr, message: 'Address information completed', )); } }); return response.data; } on DioError catch (e) { Get.log( 'Status Code ${e.response!.statusCode} message ${e.response!.statusMessage}'); Get.showSnackbar( UI.ErrorSnackBar( title: '', message: 'There are errors in some fields please correct them!'.tr), ); return 'error'; } } Future<void> addDocument( {IktifaaRegDocsDTO? param, List<File>? listFiles, Function? function}) async { final AuthenticationManager authManager = Get.find(); mPart.FormData form = mPart.FormData.fromMap({ 'documents': jsonEncode(param!.documents!.map((e) => e.toJson()).toList()) }); for (var file in listFiles!) { form.files.add( MapEntry( '[files]', mPart.MultipartFile.fromBytes( file.readAsBytesSync(), filename: '${DateTime.now().toUtc()}${Random().nextInt(1000)}.jpg', ), ), ); } try { await httpClient .post( baseUrl + 'Iktifaa/UserRegistrationDocuments/Add', data: form, options: Options( headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': authManager.getToken(), 'Accept-Language': '${Get.locale!.languageCode}', }, ), ) .then((response) { if (response.statusCode == 200) { Get.back(); function!(); commonTools.showSuccessSnackBar('successRegisterMess'); } }); } on DioError catch (e) { print(e.response!.data); Get.back(); commonTools.showFailedSnackBar(e.response!.data != null ? e.response!.data[0] != null ? e.response!.data[0]['errorMessage'] : 'failedRegisterMess' : 'failedRegisterMess'); } } Future<List<CarTypesItems>> getAllCarTypes() async { final AuthenticationManager authManager = Get.find(); List<CarTypesItems> carTypesItems = []; try { await httpClient .get(baseUrl + 'LookupCarTypes/GetAll', options: Options(headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': authManager.getToken(), 'Accept-Language': '${Get.locale!.languageCode}', })) .then((response) { if (response.statusCode == 200) { carTypesItems = List<CarTypesItems>.from(json .decode(json.encode(response.data['data']['items'])) .map((x) => CarTypesItems.fromJson(x))); return CarTypesItems; } }); } on DioError catch (e) { authManager.commonTools.showFailedSnackBar(e.response!.data != null ? e.response!.data[0] != null ? e.response!.data[0]['errorMessage'] : 'errorMessage' : 'errorMessage'); } return carTypesItems; } Future<List<VehicleTypesItems>> getAllVehicleTypes() async { final AuthenticationManager authManager = Get.find(); List<VehicleTypesItems> vehicleTypesItems = []; try { var response = await httpClient.get(baseUrl + 'LookupVehicleTypes/GetAll', options: Options(headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': authManager.getToken(), 'Accept-Language': '${Get.locale!.languageCode}', })); if (response.statusCode == 200) { vehicleTypesItems = List<VehicleTypesItems>.from(json .decode(json.encode(response.data['data']['items'])) .map((x) => VehicleTypesItems.fromJson(x))); return vehicleTypesItems; } } on DioError catch (e) { authManager.commonTools.showFailedSnackBar(e.response!.data != null ? e.response!.data[0] != null ? e.response!.data[0]['errorMessage'] : 'errorMessage' : 'errorMessage'); } return vehicleTypesItems; } Future<List<CarModelItems>> getAllCarModels(String? carTypeID) async { List<CarModelItems> carsModelsList = []; final AuthenticationManager authManager = Get.find(); try { var response = await httpClient.get(baseUrl + 'LookupCarModels/GetAll', queryParameters: {'searchCriteriaModel.carTypeId': carTypeID}, options: Options(headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Accept-Language': '${Get.locale!.languageCode}', })); if (response.statusCode == 200) { carsModelsList = List<CarModelItems>.from(json .decode(json.encode(response.data['data']['items'])) .map((x) => CarModelItems.fromJson(x))); return carsModelsList; } } on DioError catch (e) { authManager.commonTools.showFailedSnackBar(e.response!.data != null ? e.response!.data[0] != null ? e.response!.data[0]['errorMessage'] : 'errorMessage' : 'errorMessage'); } return carsModelsList; } Future<List<CityItem>> getAllCities() async { final AuthenticationManager authManager = Get.find(); List<CityItem> list = []; try { await httpClient .get(baseUrl + 'City/GetAll', options: Options(headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': authManager.getToken(), 'Accept-Language': '${Get.locale!.languageCode}', })) .then((response) { if (response.statusCode == 200) { list = List<CityItem>.from(json .decode(json.encode(response.data['data']['items'])) .map((x) => CityItem.fromJson(x))); } }); } on DioError catch (e) { authManager.commonTools.showFailedSnackBar(e.response!.data != null ? e.response!.data[0] != null ? e.response!.data[0]['errorMessage'] : 'errorMessage' : 'errorMessage'); } return list; } Future<List<MyFatoorahBank>> getBanksList() async { List<MyFatoorahBank> bankList = <MyFatoorahBank>[]; try { await httpClient .get( baseUrlMyFatoorah + 'GetBanks', options: Options( headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': 'Bearer $myFatoorahAPItoken', }, ), ) .then((value) async { bankList = List<MyFatoorahBank>.from(json .decode(json.encode(value.data)) .map((x) => MyFatoorahBank.fromJson(x))); return bankList; }); } on DioError catch (e) { Get.log('Status Code ${e.response!.statusCode} message ${e.response}'); } return bankList; } Future resendOTP() async { final AuthenticationManager authManager = Get.find(); try { await httpClient .post( baseUrl + 'Otp/ReSendOtp', data: { 'token': authManager.getToken(), }, options: Options( headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': authManager.getToken(), 'Accept-Language': '${Get.locale!.languageCode}', }, ), ) .then((response) async { if (response.statusCode == 200) { authManager.commonTools.showSuccessSnackBar('otpSentSuccessfully'); } }); } on DioError catch (e) { authManager.commonTools.showFailedSnackBar(e.response!.data != null ? e.response!.data[0] != null ? e.response!.data[0]['errorMessage'] : 'otpSentFailed' : 'otpSentFailed'); } } Future<List<Address>> getAllAddresses() async { final AuthenticationManager authManager = Get.find(); List<Address> list = []; try { await httpClient .get(baseUrl + 'Iktifaa/RequesterAddressBooks/GetAll', queryParameters: { 'searchCriteriaModel.requesterId': authManager.appUser.value.id, }, options: Options(headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': authManager.getToken(), 'Accept-Language': '${Get.locale!.languageCode}', })) .then((response) { if (response.statusCode == 200) { list = List<Address>.from(json .decode(json.encode(response.data['data']['items'])) .map((x) => Address.fromJson(x))); } }); } on DioError catch (e) { authManager.commonTools.showFailedSnackBar(e.response!.data != null ? e.response!.data[0] != null ? e.response!.data[0]['errorMessage'] : 'errorMessage' : 'errorMessage'); } return list; } Future<bool> editProfilePicture(mPart.MultipartFile file) async { final AuthenticationManager authManager = Get.find(); authManager.commonTools.showLoading(); bool result = false; mPart.FormData form = mPart.FormData.fromMap({ 'id': authManager.appUser.value.id, }); form.files.add(MapEntry('file', file)); try { await httpClient.post( baseUrl + 'Account/ChangeProfilePicture', data: form, onSendProgress: (a, b) { print('onSendProgress $a $b'); }, onReceiveProgress: (a, b) { print('onReceiveProgress $a $b'); }, options: Options( headers: { 'accept': 'multipart/form-data', 'Content-Type': 'multipart/form-data', 'Authorization': authManager.getToken() }, ), ).then((response) { if (response.statusCode == 200) { if (response.data['succeeded'] == true) { print(response.data); result = true; authManager.appUser.update((val) { val!.profilePictureUrl = response.data['data']; }); } } Get.back(); }); } on DioError catch (e) { Get.back(); authManager.commonTools.showFailedSnackBar(e.response!.data != null ? e.response!.data[0] != null ? e.response!.data[0]['errorMessage'] : 'errorMessage' : 'errorMessage'); } return result; } Future<bool> editCoverPicture(mPart.MultipartFile file) async { final AuthenticationManager authManager = Get.find(); authManager.commonTools.showLoading(); bool result = false; mPart.FormData form = mPart.FormData.fromMap({ 'id': authManager.appUser.value.id, }); form.files.add(MapEntry('file', file)); try { await httpClient.post( baseUrl + 'Account/ChangeProfileCoverPhoto', data: form, onSendProgress: (a, b) { print('onSendProgress $a $b'); }, onReceiveProgress: (a, b) { print('onReceiveProgress $a $b'); }, options: Options( headers: { 'accept': 'multipart/form-data', 'Content-Type': 'multipart/form-data', 'Authorization': authManager.getToken() }, ), ).then((response) { if (response.statusCode == 200) { if (response.data['succeeded'] == true) { print(response.data); result = true; authManager.appUser.update((val) { val!.profileCoverPhotoUrl = response.data['data']; }); } } Get.back(); }); } on DioError catch (e) { Get.back(); authManager.commonTools.showFailedSnackBar(e.response!.data != null ? e.response!.data[0] != null ? e.response!.data[0]['errorMessage'] : 'errorMessage' : 'errorMessage'); } return result; } }
Editor is loading...