diff --git a/lib/api/client/user_api_client.dart b/lib/api/client/user_api_client.dart index ccf67be..7975fc1 100644 --- a/lib/api/client/user_api_client.dart +++ b/lib/api/client/user_api_client.dart @@ -5,6 +5,7 @@ import 'package:car_provider_app/models/user/cities.dart'; import 'package:car_provider_app/models/user/confirm_email.dart'; import 'package:car_provider_app/models/user/confirm_mobile.dart'; import 'package:car_provider_app/models/user/country.dart'; +import 'package:car_provider_app/models/user/image_response.dart'; import 'package:car_provider_app/models/user/role.dart'; import 'package:car_provider_app/models/user/confirm_password.dart'; import 'package:car_provider_app/models/user/forget_password_otp_compare.dart'; @@ -184,21 +185,21 @@ class UserApiClent { return await ApiClient().postJsonForObject((json) => MResponse.fromJson(json), ApiConsts.EmailVerifyOTPVerify, postParams, token: t); } - Future UpdateUserImage(String image) async { + Future UpdateUserImage(String image) async { var postParams = {"userID": AppState().getUser.data!.userInfo!.userId, "userImage": image}; // return await ApiClient().postJsonForResponse(ApiConsts.ChangePassword, postParams); String t = AppState().getUser.data!.accessToken ?? ""; print("tokeen " + t); - return await ApiClient().postJsonForResponse(ApiConsts.UpdateUserImage, postParams, token: t); + return await ApiClient().postJsonForObject((json) => ImageResponse.fromJson(json), ApiConsts.UpdateUserImage, postParams, token: t); } - Future GetUserImage(String image) async { + Future GetUserImage(String image) async { var postParams = {}; // return await ApiClient().postJsonForResponse(ApiConsts.ChangePassword, postParams); String t = AppState().getUser.data!.accessToken ?? ""; print("tokeen " + t); - return await ApiClient().postJsonForResponse(ApiConsts.GetUserImage, postParams, token: t); + return await ApiClient().postJsonForObject((json) => ImageResponse.fromJson(json), ApiConsts.UpdateUserImage, postParams, token: t); } } diff --git a/lib/models/user/image_response.dart b/lib/models/user/image_response.dart new file mode 100644 index 0000000..6ca0b41 --- /dev/null +++ b/lib/models/user/image_response.dart @@ -0,0 +1,37 @@ +// To parse this JSON data, do +// +// final imageResponse = imageResponseFromJson(jsonString); + +import 'dart:convert'; + +ImageResponse imageResponseFromJson(String str) => ImageResponse.fromJson(json.decode(str)); + +String imageResponseToJson(ImageResponse data) => json.encode(data.toJson()); + +class ImageResponse { + ImageResponse({ + this.totalItemsCount, + this.data, + this.messageStatus, + this.message, + }); + + dynamic? totalItemsCount; + String? data; + int? messageStatus; + String? message; + + factory ImageResponse.fromJson(Map json) => ImageResponse( + totalItemsCount: json["totalItemsCount"], + data: json["data"] == null ? null : json["data"], + messageStatus: json["messageStatus"] == null ? null : json["messageStatus"], + message: json["message"] == null ? null : json["message"], + ); + + Map toJson() => { + "totalItemsCount": totalItemsCount, + "data": data == null ? null : data, + "messageStatus": messageStatus == null ? null : messageStatus, + "message": message == null ? null : message, + }; +} diff --git a/lib/pages/dashboard/dashboard_page.dart b/lib/pages/dashboard/dashboard_page.dart index d8cc7c7..0e54543 100644 --- a/lib/pages/dashboard/dashboard_page.dart +++ b/lib/pages/dashboard/dashboard_page.dart @@ -6,6 +6,7 @@ import 'package:car_provider_app/classes/consts.dart'; import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/models/m_response.dart'; +import 'package:car_provider_app/models/user/image_response.dart'; import 'package:car_provider_app/theme/colors.dart'; import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/utils.dart'; @@ -117,9 +118,12 @@ class _DashboardPageState extends State { color: Colors.blue, ).onPress(() async { Utils.showLoading(context); - Response response = await UserApiClent().UpdateUserImage(""); - if (response.statusCode == 201 || response.statusCode == 200) { - Utils.showToast("Image is uploaded"); + ImageResponse response = await UserApiClent().UpdateUserImage(""); + if (response.messageStatus == 1) { + Utils.showToast("Image is Deleted"); + setState(() { + AppState().getUser.data!.userInfo!.userImageUrl=response.data; + }); } Utils.hideLoading(context); }), @@ -263,11 +267,16 @@ class _DashboardPageState extends State { image64 = convertFileToBase64(pickedImageFile); Utils.showLoading(context); - Response response = await UserApiClent().UpdateUserImage(image64); - if (response.statusCode == 201 || response.statusCode == 200) { + ImageResponse response = await UserApiClent().UpdateUserImage(image64); + Utils.hideLoading(context); + Navigator.pop(context); + if (response.messageStatus == 1) { Utils.showToast("Image is uploaded"); + AppState().getUser.data!.userInfo!.userImageUrl=response.data; + } else { + Utils.showToast(response.message ?? ""); } - Utils.hideLoading(context); + setState(() { imagePicked = pickedImageFile; }); @@ -275,28 +284,33 @@ class _DashboardPageState extends State { } void cameraImage() async { - // final picker = ImagePicker(); - // final pickedImage = await picker.pickImage( - // source: ImageSource.camera, - // ); - // final pickedImageFile = File(pickedImage!.path); - // int sizeInBytes = pickedImageFile.lengthSync(); - // // double sizeInMb = sizeInBytes / (1024 * 1024); - // if (sizeInBytes > 1000) { - // Utils.showToast("File is larger then 1KB"); - // } else { - // image64 = convertFileToBase64(pickedImageFile); - // - // Utils.showLoading(context); - // Response response = await UserApiClent().UpdateUserImage(image64); - // if (response.statusCode == 201 || response.statusCode == 200) { - // Utils.showToast("Image is uploaded"); - // } - // Utils.hideLoading(context); - // setState(() { - // imagePicked = pickedImageFile; - // }); - // } - UserApiClent().GetUserImage("image"); + final picker = ImagePicker(); + final pickedImage = await picker.pickImage( + source: ImageSource.camera, + ); + final pickedImageFile = File(pickedImage!.path); + int sizeInBytes = pickedImageFile.lengthSync(); + // double sizeInMb = sizeInBytes / (1024 * 1024); + if (sizeInBytes > 1000) { + Utils.showToast("File is larger then 1KB"); + } else { + image64 = convertFileToBase64(pickedImageFile); + + Utils.showLoading(context); + ImageResponse response = await UserApiClent().UpdateUserImage(image64); + Utils.hideLoading(context); + Navigator.pop(context); + if (response.messageStatus == 1) { + Utils.showToast("Image is uploaded"); + AppState().getUser.data!.userInfo!.userImageUrl=response.data; + } else { + Utils.showToast(response.message ?? ""); + } + + setState(() { + imagePicked = pickedImageFile; + }); + } + } } diff --git a/lib/pages/user/login_with_password_page.dart b/lib/pages/user/login_with_password_page.dart index 8d8a97d..a8a2cca 100644 --- a/lib/pages/user/login_with_password_page.dart +++ b/lib/pages/user/login_with_password_page.dart @@ -145,7 +145,7 @@ class _LoginWithPasswordState extends State { Utils.hideLoading(context); LoginPassword user = LoginPassword.fromJson(jsonDecode(response.body)); if (user.messageStatus == 1) { - SharedPrefManager.setPhoneOrEmail(phoneNum); + SharedPrefManager.setPhoneOrEmail(type == ClassType.NUMBER ? countryCode + phoneNum : phoneNum); SharedPrefManager.setUserPassword(password); navigateReplaceWithName(context, AppRoutes.loginMethodSelection, arguments: user.data!.userToken); } else {