mycart
This commit is contained in:
218
lib/src/logic/provider/auth_provider.dart
Normal file
218
lib/src/logic/provider/auth_provider.dart
Normal file
@@ -0,0 +1,218 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:grocery_app/src/core/network_services/service_locator.dart';
|
||||
import 'package:grocery_app/src/core/utils/snack_bar.dart';
|
||||
import 'package:grocery_app/src/logic/repo/auth_repo.dart';
|
||||
import 'package:grocery_app/utils/constants/shared_pref_utils.dart';
|
||||
import 'package:grocery_app/utils/extensions/extensions.dart';
|
||||
|
||||
class AuthProvider extends ChangeNotifier {
|
||||
int _currentIndex = 0;
|
||||
final int _totalPages = 4; // Set total number of pages
|
||||
final PageController _pageController = PageController();
|
||||
|
||||
final TextEditingController name = TextEditingController();
|
||||
final TextEditingController lastName = TextEditingController();
|
||||
final TextEditingController email = TextEditingController();
|
||||
final TextEditingController address = TextEditingController();
|
||||
|
||||
final TextEditingController passwordController = TextEditingController();
|
||||
final TextEditingController confirmPasswordController =
|
||||
TextEditingController();
|
||||
|
||||
int get currentIndex => _currentIndex;
|
||||
PageController get pageController => _pageController;
|
||||
|
||||
// Calculate progress as a percentage
|
||||
double get progress => (_currentIndex + 1) / _totalPages;
|
||||
|
||||
final _authRepo = getIt<AuthRepo>();
|
||||
String numberwithCode = '';
|
||||
|
||||
Future<bool> sendOtp(String number, BuildContext context) async {
|
||||
context.showLoader(show: true);
|
||||
|
||||
var data = {"phone": "+91" + number};
|
||||
|
||||
numberwithCode = "+91" + number;
|
||||
try {
|
||||
var response = await _authRepo.sendOtp(data);
|
||||
print("check response ${response}");
|
||||
context.showLoader(show: false);
|
||||
|
||||
return response.fold(
|
||||
(error) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(error.message),
|
||||
backgroundColor: Colors.red,
|
||||
),
|
||||
);
|
||||
return false;
|
||||
},
|
||||
(response) {
|
||||
print("hdsfvjhdfghjdf");
|
||||
_showSnackBar(context, "OTP sent successfully", Colors.green);
|
||||
|
||||
return true;
|
||||
},
|
||||
);
|
||||
} catch (e) {
|
||||
context.showLoader(show: false);
|
||||
print("Unexpected error: $e");
|
||||
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text("Something went wrong. Please try again."),
|
||||
backgroundColor: Colors.red,
|
||||
),
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Future<bool> verifiOtp(String otp, BuildContext context) async {
|
||||
context.showLoader(show: true);
|
||||
var data = {
|
||||
"phone": numberwithCode,
|
||||
"otp": otp,
|
||||
};
|
||||
|
||||
try {
|
||||
var result = await _authRepo.verifyOtp(data);
|
||||
|
||||
return result.fold(
|
||||
(error) {
|
||||
// Show error Snackbar
|
||||
context.showLoader(show: false);
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(error.message),
|
||||
backgroundColor: Colors.red,
|
||||
),
|
||||
);
|
||||
return false; // Login failed
|
||||
},
|
||||
(response) {
|
||||
// Login success
|
||||
context.showLoader(show: false);
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text("OTP Verify successful!"),
|
||||
backgroundColor: Colors.green,
|
||||
),
|
||||
);
|
||||
return true;
|
||||
},
|
||||
);
|
||||
} catch (e) {
|
||||
context.showLoader(show: false);
|
||||
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text("Something went wrong. Please try again."),
|
||||
backgroundColor: Colors.red,
|
||||
),
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// //login
|
||||
|
||||
// //vendorRegister
|
||||
|
||||
Future<bool> vendorRegister(BuildContext context) async {
|
||||
context.showLoader(show: true);
|
||||
var data = {
|
||||
"firstName": await SharedPrefUtils.getFirstName(),
|
||||
"lastName": await SharedPrefUtils.getLastName(),
|
||||
"email": await SharedPrefUtils.getEmail(),
|
||||
"password": await SharedPrefUtils.getPassword(),
|
||||
"vendorType": "individual",
|
||||
|
||||
};
|
||||
|
||||
try {
|
||||
var result = await _authRepo.customerRegister(data);
|
||||
return result.fold(
|
||||
(error) {
|
||||
// Show error Snackbar
|
||||
context.showLoader(show: false);
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(error.message),
|
||||
backgroundColor: Colors.red,
|
||||
),
|
||||
);
|
||||
return false; // Login failed
|
||||
},
|
||||
(response) {
|
||||
// Login success
|
||||
context.showLoader(show: false);
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text("Vendor Register successful!"),
|
||||
backgroundColor: Colors.green,
|
||||
),
|
||||
);
|
||||
return true;
|
||||
},
|
||||
);
|
||||
} catch (e) {
|
||||
context.showLoader(show: false);
|
||||
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text("Something went wrong. Please try again."),
|
||||
backgroundColor: Colors.red,
|
||||
),
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// void goToNextPage() {
|
||||
// // Ensure that the current index is updated correctly
|
||||
// if (_currentIndex < _totalPages - 1) {
|
||||
// _currentIndex++; // Increment the index here
|
||||
// _pageController.animateToPage(
|
||||
// _currentIndex,
|
||||
// duration: const Duration(milliseconds: 300),
|
||||
// curve: Curves.ease,
|
||||
// );
|
||||
// notifyListeners(); // Notify listeners to update the view
|
||||
// }
|
||||
// }
|
||||
|
||||
// void goToPage(int index) {
|
||||
// if (index >= 0 && index < _totalPages) {
|
||||
// _currentIndex = index;
|
||||
// print("Navigating to page: $_currentIndex"); // Debug print
|
||||
// _pageController.animateToPage(
|
||||
// _currentIndex,
|
||||
// duration: const Duration(milliseconds: 300),
|
||||
// curve: Curves.ease,
|
||||
// );
|
||||
// notifyListeners();
|
||||
// }
|
||||
// }
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_pageController.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
// bool _isChecked = false;
|
||||
|
||||
// bool get isChecked => _isChecked;
|
||||
|
||||
// void toggleCheckbox(bool value) {
|
||||
// _isChecked = value;
|
||||
// notifyListeners();
|
||||
// }
|
||||
|
||||
void _showSnackBar(BuildContext context, String message, Color color) {
|
||||
showTopSnackBar(context, message, color);
|
||||
}
|
||||
}
|
||||
350
lib/src/logic/provider/crate_store_provider.dart
Normal file
350
lib/src/logic/provider/crate_store_provider.dart
Normal file
@@ -0,0 +1,350 @@
|
||||
// import 'dart:io';
|
||||
|
||||
// import 'package:flutter/material.dart';
|
||||
// import 'package:intl/intl.dart';
|
||||
// import 'package:vendor_app/src/core/network_services/service_locator.dart';
|
||||
// import 'package:vendor_app/src/core/routes/routes.dart';
|
||||
// import 'package:vendor_app/src/core/utiils_lib/extensions.dart';
|
||||
// import 'package:vendor_app/src/core/utiils_lib/shared_pref_utils.dart';
|
||||
// import 'package:vendor_app/src/data/store_model.dart';
|
||||
// import 'package:vendor_app/src/logic/repo/auth_repo.dart';
|
||||
// import 'package:vendor_app/src/logic/repo/store_repo.dart';
|
||||
|
||||
// class DaySelectionProvider with ChangeNotifier {
|
||||
// List<String> _selectedDays = [];
|
||||
|
||||
// List<String> get selectedDays => _selectedDays;
|
||||
// final _storeRepo = getIt<StoreRepo>();
|
||||
|
||||
// void toggleDay(String day) {
|
||||
// if (_selectedDays.contains(day)) {
|
||||
// _selectedDays.remove(day);
|
||||
// } else {
|
||||
// _selectedDays.add(day);
|
||||
// }
|
||||
// notifyListeners();
|
||||
// }
|
||||
|
||||
// void removeDay(String day) {
|
||||
// _selectedDays.remove(day);
|
||||
// notifyListeners();
|
||||
// }
|
||||
|
||||
// final TextEditingController storeName = TextEditingController();
|
||||
// final TextEditingController storeDescription = TextEditingController();
|
||||
// final TextEditingController officialPhoneNumber = TextEditingController();
|
||||
// final TextEditingController storeAddress = TextEditingController();
|
||||
// final TextEditingController storeGSTNumber = TextEditingController();
|
||||
// final TextEditingController storeGumastaNumber = TextEditingController();
|
||||
|
||||
// bool _editStore = false;
|
||||
|
||||
// bool get editStore => _editStore;
|
||||
|
||||
// setEditStore(bool type) {
|
||||
// _editStore = type;
|
||||
// notifyListeners();
|
||||
// }
|
||||
|
||||
// File? _image;
|
||||
|
||||
// File? get image => _image;
|
||||
|
||||
// void setImage(File? image) {
|
||||
// _image = image;
|
||||
// notifyListeners();
|
||||
// }
|
||||
|
||||
// //// create store /////////////////////////////////////////////////////
|
||||
|
||||
// final TextEditingController bankName = TextEditingController();
|
||||
// final TextEditingController accountHoldername = TextEditingController();
|
||||
// final TextEditingController accountNumber = TextEditingController();
|
||||
// final TextEditingController ifscCode = TextEditingController();
|
||||
// final TextEditingController appwithdrawalPin = TextEditingController();
|
||||
|
||||
// String _selectedTime = 'Open';
|
||||
|
||||
// String _selectedClosedTime = 'Close';
|
||||
|
||||
// String get selectedTime => _selectedTime;
|
||||
|
||||
// String get selectedClosedTime => _selectedClosedTime;
|
||||
|
||||
// Future<void> Opening(BuildContext context) async {
|
||||
// TimeOfDay? pickedTime = await showTimePicker(
|
||||
// context: context,
|
||||
// initialTime: TimeOfDay.now(),
|
||||
// );
|
||||
|
||||
// if (pickedTime != null) {
|
||||
// _selectedTime = pickedTime.format(context);
|
||||
// notifyListeners();
|
||||
// }
|
||||
// }
|
||||
|
||||
// Future<void> closedTiming(BuildContext context) async {
|
||||
// TimeOfDay? pickedTime = await showTimePicker(
|
||||
// context: context,
|
||||
// initialTime: TimeOfDay.now(),
|
||||
// );
|
||||
|
||||
// if (pickedTime != null) {
|
||||
// _selectedClosedTime = pickedTime.format(context);
|
||||
// notifyListeners();
|
||||
// }
|
||||
// }
|
||||
|
||||
// String _pin = '';
|
||||
// String _confirmPin = '';
|
||||
// bool _isMatch = true;
|
||||
|
||||
// String get pin => _pin;
|
||||
// String get confirmPin => _confirmPin;
|
||||
// bool get isMatch => _isMatch;
|
||||
|
||||
// void setPin(String pin) {
|
||||
// _pin = pin;
|
||||
// _validatePins();
|
||||
// }
|
||||
|
||||
// void setConfirmPin(String confirmPin) {
|
||||
// _confirmPin = confirmPin;
|
||||
// _validatePins();
|
||||
// }
|
||||
|
||||
// void _validatePins() {
|
||||
// _isMatch = _pin == _confirmPin;
|
||||
// notifyListeners();
|
||||
// }
|
||||
|
||||
// void reset() {
|
||||
// _pin = '';
|
||||
// _confirmPin = '';
|
||||
// _isMatch = true;
|
||||
// notifyListeners();
|
||||
// }
|
||||
|
||||
// // create store
|
||||
|
||||
// // Dynamically build the operateDates map
|
||||
// Map<String, bool> getOperateDates(List<String> selectedDays) {
|
||||
// // Define all possible days
|
||||
// List<String> allDays = [
|
||||
// 'monday',
|
||||
// 'tuesday',
|
||||
// 'wednesday',
|
||||
// 'thursday',
|
||||
// 'friday',
|
||||
// 'saturday',
|
||||
// 'sunday'
|
||||
// ];
|
||||
|
||||
// // Create the operateDates map
|
||||
// Map<String, bool> operateDates = {
|
||||
// for (var day in allDays)
|
||||
// day: selectedDays.map((e) => e.toLowerCase()).contains(day)
|
||||
// };
|
||||
|
||||
// return operateDates;
|
||||
// }
|
||||
|
||||
// Future<bool> createStore(BuildContext context) async {
|
||||
// context.showLoader(show: true);
|
||||
|
||||
// var data = {
|
||||
// "storeName": storeName.text,
|
||||
// "storeDescription": storeDescription.text,
|
||||
// "officialPhoneNumber": officialPhoneNumber.text,
|
||||
// "storeAddress": storeAddress.text,
|
||||
// "gstNumber": storeGSTNumber.text,
|
||||
// "gumastaNumber": storeGumastaNumber.text,
|
||||
// "storePicture": image!.path.split('/').last,
|
||||
// "operateDates": getOperateDates(selectedDays),
|
||||
// "operateTimes": {
|
||||
// "startTime": selectedTime,
|
||||
// "endTime": selectedClosedTime
|
||||
// },
|
||||
// "paymentDetails": {
|
||||
// "bankName": bankName.text,
|
||||
// "accountHolder": accountHoldername.text,
|
||||
// "accountNumber": accountNumber.text,
|
||||
// "ifscCode": ifscCode.text,
|
||||
// "appWithdrawalPin": confirmPin.toString()
|
||||
// }
|
||||
// };
|
||||
|
||||
// try {
|
||||
// var result = await _storeRepo.createStore(data);
|
||||
|
||||
// context.showLoader(show: false);
|
||||
|
||||
// return result.fold(
|
||||
// (error) {
|
||||
// // Show error Snackbar
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text(error.message),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false; // Login failed
|
||||
// },
|
||||
// (response) {
|
||||
// // Login success
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text("Store created successful!"),
|
||||
// backgroundColor: Colors.green,
|
||||
// ),
|
||||
// );
|
||||
// return true;
|
||||
// },
|
||||
// );
|
||||
// } catch (e) {
|
||||
// context.showLoader(show: false);
|
||||
// print("Unexpected error: $e");
|
||||
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text("Something went wrong. Please try again."),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
||||
// Future<bool> updateSore(BuildContext context,String id) async {
|
||||
// context.showLoader(show: true);
|
||||
|
||||
// var data = {
|
||||
// "operateDates": getOperateDates(selectedDays),
|
||||
// "operateTimes": {
|
||||
// "startTime": selectedTime,
|
||||
// "endTime": selectedClosedTime
|
||||
// },
|
||||
// "paymentDetails": {
|
||||
// "bankName": bankName.text,
|
||||
// "accountHolder": accountHoldername.text,
|
||||
// "accountNumber": accountNumber.text,
|
||||
// "ifscCode": ifscCode.text,
|
||||
// "appWithdrawalPin": confirmPin.toString()
|
||||
// }
|
||||
// };
|
||||
|
||||
// print("dfhgkjhg ${data}");
|
||||
|
||||
// try {
|
||||
// var result = await _storeRepo.updateStore(data);
|
||||
|
||||
// context.showLoader(show: false);
|
||||
|
||||
// return result.fold(
|
||||
// (error) {
|
||||
// // Show error Snackbar
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text(error.message),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false; // Login failed
|
||||
// },
|
||||
// (response) {
|
||||
// // Login success
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text("Store created successful!"),
|
||||
// backgroundColor: Colors.green,
|
||||
// ),
|
||||
// );
|
||||
// return true;
|
||||
// },
|
||||
// );
|
||||
// } catch (e) {
|
||||
// context.showLoader(show: false);
|
||||
// print("Unexpected error: $e");
|
||||
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text("Something went wrong. Please try again."),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
||||
// bool isLoading = false;
|
||||
|
||||
// StoreModel? store_model;
|
||||
// Future<void> getStore() async {
|
||||
// isLoading = true;
|
||||
// notifyListeners();
|
||||
|
||||
// final result = await _storeRepo.getStore({});
|
||||
// result.fold(
|
||||
// (error) {
|
||||
// // Handle error
|
||||
// isLoading = false;
|
||||
// notifyListeners();
|
||||
// },
|
||||
// (store) {
|
||||
// setEditStore(false);
|
||||
// print("lksjdfdkjf ${store.createdAt}");
|
||||
// isLoading = false;
|
||||
// store_model = store;
|
||||
// notifyListeners();
|
||||
// },
|
||||
// );
|
||||
// }
|
||||
|
||||
// Future<bool> vendorLogOut(BuildContext context) async {
|
||||
// context.showLoader(show: true);
|
||||
|
||||
// var data = {};
|
||||
|
||||
// try {
|
||||
// var result = await _storeRepo.vendorLogOut(data);
|
||||
|
||||
// context.showLoader(show: false);
|
||||
|
||||
// return result.fold(
|
||||
// (error) {
|
||||
// // Show error Snackbar
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text(error.message),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false; // Login failed
|
||||
// },
|
||||
// (response) async {
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text("Store created successful!"),
|
||||
// backgroundColor: Colors.green,
|
||||
// ),
|
||||
// );
|
||||
// await SharedPrefUtils.clear();
|
||||
// context.clearAndPush(routePath: MyRoutes.SELECTACCOUNT);
|
||||
|
||||
// return true;
|
||||
// },
|
||||
// );
|
||||
// } catch (e) {
|
||||
// context.showLoader(show: false);
|
||||
// print("Unexpected error: $e");
|
||||
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text("Something went wrong. Please try again."),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
443
lib/src/logic/provider/create_product_provider.dart
Normal file
443
lib/src/logic/provider/create_product_provider.dart
Normal file
@@ -0,0 +1,443 @@
|
||||
// import 'dart:io';
|
||||
|
||||
// import 'package:flutter/material.dart';
|
||||
// import 'package:image_picker/image_picker.dart';
|
||||
// import 'package:vendor_app/src/core/network_services/service_locator.dart';
|
||||
// import 'package:vendor_app/src/core/utiils_lib/extensions.dart';
|
||||
// import 'package:vendor_app/src/core/utiils_lib/snack_bar.dart';
|
||||
// import 'package:vendor_app/src/data/ProductCategoryModel.dart';
|
||||
// import 'package:vendor_app/src/data/prdouct_model.dart';
|
||||
// import 'package:vendor_app/src/logic/repo/product_repo.dart';
|
||||
|
||||
// import 'package:flutter/material.dart';
|
||||
// import 'package:vendor_app/src/core/network_services/service_locator.dart';
|
||||
// import 'package:vendor_app/src/data/prdouct_model.dart';
|
||||
// import 'package:vendor_app/src/logic/repo/product_repo.dart';
|
||||
// import 'package:vendor_app/src/logic/services/product_locator.dart';
|
||||
|
||||
// class ProductProvider extends ChangeNotifier {
|
||||
// ProductCategoryModel? selectedCategory;
|
||||
// // String selectedSubcategory = '';
|
||||
// // String selectedProduct = '';
|
||||
|
||||
// ProductCategoryModel? selectedSubcategory;
|
||||
// ProductCategoryModel? selectedProduct;
|
||||
|
||||
// String productId = '';
|
||||
// // String productDescription = '';
|
||||
// // String productUnit = '';
|
||||
// // double productPrice = 0.0;
|
||||
// // double discountPrice = 0.0;
|
||||
// bool inStock = true;
|
||||
|
||||
// String selectedProductQuantity = '';
|
||||
|
||||
// bool isLoading = false;
|
||||
|
||||
// final _authRepo = getIt<ProductRepo>();
|
||||
|
||||
// // Dynamic Data
|
||||
// List<ProductCategoryModel> categories = [];
|
||||
// Map<String, List<ProductCategoryModel>> subcategories = {};
|
||||
// Map<String, List<ProductCategoryModel>> products = {};
|
||||
|
||||
// void setCategory(ProductCategoryModel category) {
|
||||
// selectedCategory = category;
|
||||
// selectedSubcategory = null;
|
||||
// selectedProduct = null;
|
||||
// products.clear();
|
||||
// loadSubcategories(category);
|
||||
// notifyListeners();
|
||||
// }
|
||||
|
||||
// void setSubcategory(ProductCategoryModel subcategory) {
|
||||
// selectedSubcategory = subcategory;
|
||||
// selectedProduct = null;
|
||||
// loadProducts(subcategory); // Load products for the selected subcategory
|
||||
// notifyListeners();
|
||||
// }
|
||||
|
||||
// void loadSubcategories(ProductCategoryModel category) {
|
||||
// if (category.childCategories != null) {
|
||||
// subcategories[category.name!] = category.childCategories!;
|
||||
// } else {
|
||||
// subcategories.clear();
|
||||
// }
|
||||
// notifyListeners();
|
||||
// }
|
||||
|
||||
// // Load products for a selected subcategory
|
||||
// void loadProducts(ProductCategoryModel subcategory) {
|
||||
// if (subcategory.childCategories != null) {
|
||||
// products[subcategory.name!] = subcategory.childCategories!;
|
||||
// } else {
|
||||
// products.clear();
|
||||
// }
|
||||
// notifyListeners();
|
||||
// }
|
||||
|
||||
// void setProduct(ProductCategoryModel product) {
|
||||
// productId = product.id!;
|
||||
// selectedProduct = product;
|
||||
// notifyListeners();
|
||||
// }
|
||||
|
||||
// void setProductQuantity(String value) {
|
||||
// selectedProductQuantity = value;
|
||||
// notifyListeners();
|
||||
// }
|
||||
|
||||
// void toggleStock(bool value) {
|
||||
// inStock = value;
|
||||
// notifyListeners();
|
||||
// }
|
||||
|
||||
// void clearData() {
|
||||
// _isImageLoading = false;
|
||||
|
||||
// productDescriptionController.clear();
|
||||
// productUnitController.clear();
|
||||
// productPriceController.clear();
|
||||
// productProductDiscountPriceController.clear();
|
||||
// productStockController.clear();
|
||||
// productNameController.clear();
|
||||
// productquantityController.clear();
|
||||
// productqlongDescriptionController.clear();
|
||||
// _isImageLoading = false;
|
||||
// _selectedImage = null;
|
||||
|
||||
// selectedCategory = null;
|
||||
// selectedSubcategory = null;
|
||||
// selectedProduct = null;
|
||||
// selectedSubcategory;
|
||||
// categories = [];
|
||||
|
||||
// subcategories.forEach((key, value) => value.clear());
|
||||
// products.forEach((key, value) => value.clear());
|
||||
// subcategories = {};
|
||||
// products = {};
|
||||
// }
|
||||
|
||||
// // Fetch categories from API
|
||||
// Future<void> getCategoryByLevel() async {
|
||||
// clearData();
|
||||
// isLoading = true;
|
||||
// notifyListeners();
|
||||
|
||||
// final result = await _authRepo.getCategoryByLevel({});
|
||||
// result.fold(
|
||||
// (error) {
|
||||
// isLoading = false;
|
||||
// notifyListeners();
|
||||
// },
|
||||
// (categoryList) {
|
||||
// // Populate categories and subcategories dynamically
|
||||
// categories = categoryList;
|
||||
|
||||
// // Populate subcategories for each category
|
||||
// for (var category in categoryList) {
|
||||
// if (category.childCategories != null) {
|
||||
// subcategories[category.name!] = category.childCategories!;
|
||||
// }
|
||||
|
||||
// if (category.childCategories != null) {
|
||||
// products[category.name!] = category.childCategories!;
|
||||
// }
|
||||
// }
|
||||
|
||||
// isLoading = false;
|
||||
// notifyListeners();
|
||||
// },
|
||||
// );
|
||||
// }
|
||||
|
||||
// // Load subcategories for a selected category
|
||||
|
||||
// final ImagePicker _picker = ImagePicker();
|
||||
// File? _selectedImage;
|
||||
|
||||
// File? get selectedImage => _selectedImage;
|
||||
|
||||
// // Method to pick an image
|
||||
// Future<void> pickImage(BuildContext context) async {
|
||||
// final XFile? pickedFile =
|
||||
// await _picker.pickImage(source: ImageSource.gallery);
|
||||
|
||||
// if (pickedFile != null) {
|
||||
// _selectedImage = File(pickedFile.path);
|
||||
// uploadImage(context);
|
||||
// notifyListeners();
|
||||
// }
|
||||
// }
|
||||
|
||||
// TextEditingController productDescriptionController = TextEditingController();
|
||||
// TextEditingController productUnitController = TextEditingController();
|
||||
// TextEditingController productPriceController = TextEditingController();
|
||||
// TextEditingController productProductDiscountPriceController =
|
||||
// TextEditingController();
|
||||
// TextEditingController productStockController = TextEditingController();
|
||||
// TextEditingController productNameController = TextEditingController();
|
||||
// TextEditingController productquantityController = TextEditingController();
|
||||
// TextEditingController productqlongDescriptionController =
|
||||
// TextEditingController();
|
||||
|
||||
// Future<bool> createProduct(BuildContext context) async {
|
||||
// context.showLoader(show: true);
|
||||
|
||||
// try {
|
||||
// var data = {
|
||||
// "categoryId": productId,
|
||||
// "quantity": productquantityController.text,
|
||||
// "description": productDescriptionController.text,
|
||||
// "unit": productUnitController.text,
|
||||
// "basePrice": productPriceController.text,
|
||||
// "discountPrice": productProductDiscountPriceController.text,
|
||||
// "isInStock": inStock,
|
||||
// "stock": int.parse(productStockController.text.isEmpty
|
||||
// ? '0'
|
||||
// : productStockController.text),
|
||||
// "name": selectedProduct!.name,
|
||||
// "additionalInfo": productqlongDescriptionController.text,
|
||||
// "productImages": [_uploadedUrl]
|
||||
// };
|
||||
|
||||
// print("hjhdfjg ${data}");
|
||||
// var result = await _authRepo.createProduct(data);
|
||||
|
||||
// context.showLoader(show: false);
|
||||
|
||||
// return result.fold(
|
||||
// (error) {
|
||||
// // Show error Snackbar
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text(error.message),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false; // Login failed
|
||||
// },
|
||||
// (response) {
|
||||
// // Login success
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text("Product created successful!"),
|
||||
// backgroundColor: Colors.green,
|
||||
// ),
|
||||
// );
|
||||
// return true;
|
||||
// },
|
||||
// );
|
||||
// } catch (e) {
|
||||
// context.showLoader(show: false);
|
||||
// print("Unexpected error: $e");
|
||||
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text("Something went wrong. Please try again."),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
||||
// Future<bool> deleteProduct(BuildContext context, String id) async {
|
||||
// context.showLoader(show: true);
|
||||
|
||||
// try {
|
||||
// var data = {};
|
||||
|
||||
// var result = await _authRepo.deleteProduct(data, id);
|
||||
|
||||
// context.showLoader(show: false);
|
||||
|
||||
// return result.fold(
|
||||
// (error) {
|
||||
// // Show error Snackbar
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text(error.message),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false; // Login failed
|
||||
// },
|
||||
// (response) {
|
||||
// _showSnackBar(context, "Product deleted successful!", Colors.green);
|
||||
|
||||
// return true;
|
||||
// },
|
||||
// );
|
||||
// } catch (e) {
|
||||
// context.showLoader(show: false);
|
||||
// print("Unexpected error: $e");
|
||||
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text("Something went wrong. Please try again."),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
||||
// Future<bool> updateProduct(BuildContext context, String id) async {
|
||||
// context.showLoader(show: true);
|
||||
// print("check stock ${productUnitController.text}");
|
||||
// try {
|
||||
// var data = {
|
||||
// "quantity": productquantityController.text,
|
||||
// "description": productDescriptionController.text,
|
||||
// "unit": productUnitController.text,
|
||||
// "basePrice": productPriceController.text,
|
||||
// "discountPrice": productProductDiscountPriceController.text,
|
||||
// "isInStock": inStock,
|
||||
// "stock": int.parse(productStockController.text.isEmpty
|
||||
// ? '0'
|
||||
// : productStockController.text),
|
||||
// "name": productNameController!.text,
|
||||
// "additionalInfo": productqlongDescriptionController.text,
|
||||
// };
|
||||
|
||||
// print("check stock ${data}");
|
||||
|
||||
// var result = await _authRepo.updateProduct(data, id);
|
||||
|
||||
// context.showLoader(show: false);
|
||||
|
||||
// return result.fold(
|
||||
// (error) {
|
||||
// // Show error Snackbar
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text(error.message),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false; // Login failed
|
||||
// },
|
||||
// (response) {
|
||||
// _showSnackBar(context, "Product Updated successful!", Colors.green);
|
||||
|
||||
// return true;
|
||||
// },
|
||||
// );
|
||||
// } catch (e) {
|
||||
// context.showLoader(show: false);
|
||||
// print("Unexpected error: $e");
|
||||
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text("Something went wrong. Please try again."),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
||||
// bool isLoadingg = false;
|
||||
// List<Product> products1 = [];
|
||||
|
||||
// Future<void> getProduct() async {
|
||||
// isLoadingg = true;
|
||||
// notifyListeners();
|
||||
|
||||
// final result = await _authRepo.getProduct({});
|
||||
// result.fold(
|
||||
// (error) {
|
||||
// // Handle error
|
||||
// isLoadingg = false;
|
||||
// notifyListeners();
|
||||
// },
|
||||
// (productList) {
|
||||
// print("nfjkkjjfgk ${productList}");
|
||||
// products1 = productList.data!;
|
||||
// isLoadingg = false;
|
||||
// notifyListeners();
|
||||
// },
|
||||
// );
|
||||
// }
|
||||
|
||||
// // Future<bool> uploadImage(BuildContext context) async
|
||||
// // {
|
||||
// // context.showLoader(show: true);
|
||||
|
||||
// // try {
|
||||
// // var data = {
|
||||
// // "image": selectedImage!.path,
|
||||
|
||||
// // };
|
||||
// // var result = await _authRepo.uploadImage(data);
|
||||
// // context.showLoader(show: false);
|
||||
|
||||
// // return result.fold(
|
||||
// // (error)
|
||||
// // {
|
||||
// // // Show error Snackbar
|
||||
// // ScaffoldMessenger.of(context).showSnackBar(
|
||||
// // SnackBar(
|
||||
// // content: Text(error.message),
|
||||
// // backgroundColor: Colors.red,
|
||||
// // ),
|
||||
// // );
|
||||
// // return false; // Login failed
|
||||
// // },
|
||||
// // (response)
|
||||
// // {
|
||||
|
||||
// // print("check thie respodnse ${ response.status}");
|
||||
|
||||
// // ScaffoldMessenger.of(context).showSnackBar(
|
||||
// // SnackBar(
|
||||
// // content: Text("Product created successful!"),
|
||||
// // backgroundColor: Colors.green,
|
||||
// // ),
|
||||
// // );
|
||||
// // return true;
|
||||
// // },
|
||||
// // );
|
||||
// // } catch (e) {
|
||||
// // context.showLoader(show: false);
|
||||
// // print("Unexpected error: $e");
|
||||
|
||||
// // ScaffoldMessenger.of(context).showSnackBar(
|
||||
// // SnackBar(
|
||||
// // content: Text("Something went wrong. Please try again."),
|
||||
// // backgroundColor: Colors.red,
|
||||
// // ),
|
||||
// // );
|
||||
// // return false;
|
||||
// // }
|
||||
// // }
|
||||
|
||||
// bool _isImageLoading = false;
|
||||
// bool get isImageLoading => _isImageLoading;
|
||||
|
||||
// String _uploadedUrl = '';
|
||||
|
||||
// Future<bool> uploadImage(BuildContext context) async {
|
||||
// final result = await _authRepo.uploadImage(selectedImage!);
|
||||
|
||||
// return result.fold(
|
||||
// (error) {
|
||||
// // _showSnackBar(context, error.message, Colors.red);
|
||||
// return false;
|
||||
// },
|
||||
// (uploadImage) {
|
||||
// _isImageLoading = true;
|
||||
// _uploadedUrl = uploadImage.data!.url.toString();
|
||||
// notifyListeners();
|
||||
|
||||
// _showSnackBar(context, "Image uploaxded successfully!", Colors.green);
|
||||
// return true;
|
||||
// },
|
||||
// );
|
||||
// }
|
||||
|
||||
// void _showSnackBar(BuildContext context, String message, Color color) {
|
||||
// showTopSnackBar(context, message, color);
|
||||
// }
|
||||
// }
|
||||
61
lib/src/logic/provider/home_provider.dart
Normal file
61
lib/src/logic/provider/home_provider.dart
Normal file
@@ -0,0 +1,61 @@
|
||||
// import 'package:flutter/material.dart';
|
||||
// import 'package:vendor_app/src/core/network_services/service_locator.dart';
|
||||
// import 'package:vendor_app/src/core/utiils_lib/shared_pref_utils.dart';
|
||||
// import 'package:vendor_app/src/logic/repo/home_repo.dart';
|
||||
|
||||
// class HomeProvider extends ChangeNotifier {
|
||||
// final _homeRepo = getIt<HomeRepo>();
|
||||
|
||||
// Future<bool> refreshToken(BuildContext context) async {
|
||||
// var data = {"refresh_token": "${await SharedPrefUtils.getRefreshToken()}"};
|
||||
|
||||
// var result = await _homeRepo.refreshToken(data, context);
|
||||
// return result.fold(
|
||||
// (error) {
|
||||
// print("dkjhsfgjkdfkg");
|
||||
// return true;
|
||||
// },
|
||||
// (response) {
|
||||
// print("dkjhssfdgdfgdfgfgjkdfkg");
|
||||
// return true;
|
||||
// },
|
||||
// );
|
||||
// }
|
||||
|
||||
// String _userName = '';
|
||||
// String _phone = '';
|
||||
|
||||
// String get userName => _userName;
|
||||
// String get phone => _phone;
|
||||
|
||||
// void setUserName(String name) {
|
||||
// _userName = name;
|
||||
// notifyListeners();
|
||||
// }
|
||||
|
||||
// void setPhone(String phoneNumber) {
|
||||
// _phone = phoneNumber;
|
||||
// notifyListeners();
|
||||
// }
|
||||
|
||||
// Future<void> getMe() async {
|
||||
// var data = {};
|
||||
|
||||
// try {
|
||||
// var result = await _homeRepo.getMe(data);
|
||||
|
||||
// return result.fold(
|
||||
// (error) {},
|
||||
// (response) {
|
||||
// setUserName(response.firstName);
|
||||
// setPhone(response.phone);
|
||||
|
||||
// SharedPrefUtils.USER_NAME =
|
||||
// response.firstName + " " + response.lastName;
|
||||
// SharedPrefUtils.PHONE = response.phone;
|
||||
// notifyListeners();
|
||||
// },
|
||||
// );
|
||||
// } catch (e) {}
|
||||
// }
|
||||
// }
|
||||
225
lib/src/logic/provider/login_provider.dart
Normal file
225
lib/src/logic/provider/login_provider.dart
Normal file
@@ -0,0 +1,225 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:grocery_app/src/core/network_services/service_locator.dart';
|
||||
import 'package:grocery_app/src/logic/repo/auth_repo.dart';
|
||||
import 'package:grocery_app/utils/extensions/extensions.dart';
|
||||
|
||||
|
||||
class LoginProvider extends ChangeNotifier {
|
||||
final _authRepo = getIt<AuthRepo>();
|
||||
|
||||
final TextEditingController passwordController = TextEditingController();
|
||||
final TextEditingController emailOrPasswordController =
|
||||
TextEditingController();
|
||||
final TextEditingController phoneController = TextEditingController();
|
||||
final TextEditingController newPassword = TextEditingController();
|
||||
final TextEditingController confirmsNewPassword = TextEditingController();
|
||||
final TextEditingController countryCodes = TextEditingController();
|
||||
|
||||
String countryCode = '';
|
||||
|
||||
// Future<bool> login(BuildContext context) async {
|
||||
// context.showLoader(show: true);
|
||||
|
||||
// var data = {
|
||||
// "phone": "+91" + emailOrPasswordController.text,
|
||||
// "password": passwordController.text
|
||||
// };
|
||||
|
||||
// print("Check request data: $data");
|
||||
|
||||
// try {
|
||||
// var result = await _authRepo.login(data);
|
||||
|
||||
// context.showLoader(show: false);
|
||||
|
||||
// return result.fold(
|
||||
// (error) {
|
||||
// // Show error Snackbar
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text(error.message),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false; // Login failed
|
||||
// },
|
||||
// (response) {
|
||||
// // Login success
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text("Login successful!"),
|
||||
// backgroundColor: Colors.green,
|
||||
// ),
|
||||
// );
|
||||
// return true;
|
||||
// },
|
||||
// );
|
||||
// } catch (e)
|
||||
// {
|
||||
// context.showLoader(show: false);
|
||||
|
||||
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text("Something went wrong. Please try again."),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
||||
// Future<bool> forgetPassword(BuildContext context, String countryCode) async {
|
||||
// context.showLoader(show: true);
|
||||
// countryCodes.text = countryCode;
|
||||
|
||||
// var data = {"phone": countryCode + phoneController.text};
|
||||
|
||||
// print("Check dddd data: $data");
|
||||
|
||||
// try {
|
||||
// var result = await _authRepo.forgetPassword(data);
|
||||
|
||||
// context.showLoader(show: false);
|
||||
|
||||
// return result.fold(
|
||||
// (error) {
|
||||
// // Show error Snackbar
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text(error.message),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false; // Login failed
|
||||
// },
|
||||
// (response) {
|
||||
// // Login success
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text("Send Otp successful!"),
|
||||
// backgroundColor: Colors.green,
|
||||
// ),
|
||||
// );
|
||||
// return true;
|
||||
// },
|
||||
// );
|
||||
// } catch (e) {
|
||||
// context.showLoader(show: false);
|
||||
// print("Unexpected error: $e");
|
||||
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text("Something went wrong. Please try again."),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
||||
// Future<bool> verifyForgetPassword(BuildContext context, String value) async {
|
||||
// context.showLoader(show: true);
|
||||
|
||||
// var data = {
|
||||
// "phone": countryCodes.text + phoneController.text,
|
||||
// "otp": value
|
||||
// };
|
||||
|
||||
// print("Check request data: $data");
|
||||
|
||||
// try {
|
||||
// var result = await _authRepo.verifyForgetPassword(data);
|
||||
|
||||
// context.showLoader(show: false);
|
||||
|
||||
// return result.fold(
|
||||
// (error) {
|
||||
// // Show error Snackbar
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text(error.message),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false; // Login failed
|
||||
// },
|
||||
// (response) {
|
||||
// // Login success
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text("Otp verify successful!"),
|
||||
// backgroundColor: Colors.green,
|
||||
// ),
|
||||
// );
|
||||
// return true;
|
||||
// },
|
||||
// );
|
||||
// } catch (e) {
|
||||
// context.showLoader(show: false);
|
||||
// print("Unexpected error: $e");
|
||||
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text("Something went wrong. Please try again."),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
||||
// Future<bool> reset_password(BuildContext context) async {
|
||||
// context.showLoader(show: true);
|
||||
|
||||
// var data = {
|
||||
// "resetToken": await SharedPrefUtils.getResetToken(),
|
||||
// "newPassword": newPassword.text
|
||||
// };
|
||||
|
||||
// print("Check request data: $data");
|
||||
|
||||
// try {
|
||||
// var result = await _authRepo.reset_password(data);
|
||||
|
||||
// context.showLoader(show: false);
|
||||
|
||||
// return result.fold(
|
||||
// (error) {
|
||||
// // Show error Snackbar
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text(error.message),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false; // Login failed
|
||||
// },
|
||||
// (response) {
|
||||
// // Login success
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text("Password successfully created!"),
|
||||
// backgroundColor: Colors.green,
|
||||
// ),
|
||||
// );
|
||||
// return true;
|
||||
// },
|
||||
// );
|
||||
// } catch (e) {
|
||||
// context.showLoader(show: false);
|
||||
// print("Unexpected error: $e");
|
||||
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text("Something went wrong. Please try again."),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
13
lib/src/logic/provider/terms_conditions.dart
Normal file
13
lib/src/logic/provider/terms_conditions.dart
Normal file
@@ -0,0 +1,13 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
// class TermsNotifier extends ChangeNotifier {
|
||||
|
||||
// bool _isChecked = false;
|
||||
|
||||
// bool get isChecked => _isChecked;
|
||||
|
||||
// void toggleCheckbox(bool value) {
|
||||
// _isChecked = value;
|
||||
// notifyListeners();
|
||||
// }
|
||||
// }
|
||||
149
lib/src/logic/repo/auth_repo.dart
Normal file
149
lib/src/logic/repo/auth_repo.dart
Normal file
@@ -0,0 +1,149 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:fpdart/fpdart.dart';
|
||||
import 'package:grocery_app/src/core/utils/custom_dio_exception.dart';
|
||||
import 'package:grocery_app/src/core/utils/response_type_def.dart';
|
||||
import 'package:grocery_app/src/data/OTPResponseModel.dart';
|
||||
import 'package:grocery_app/src/data/vendor_otpModel.dart';
|
||||
import 'package:grocery_app/src/logic/services/auth_service_locator.dart';
|
||||
import 'package:grocery_app/utils/constants/shared_pref_utils.dart';
|
||||
|
||||
|
||||
class AuthRepo {
|
||||
final AuthServices _authServices;
|
||||
|
||||
AuthRepo(this._authServices);
|
||||
|
||||
FutureResult<String> sendOtp(data) async {
|
||||
try {
|
||||
var response = await _authServices.sendOtp(data);
|
||||
final String model = response.toString();
|
||||
// OtpResponseModel otpResponseModel =
|
||||
// otpResponseModelFromJson(response.toString());
|
||||
|
||||
return right(model);
|
||||
} on DioException catch (e) {
|
||||
print("dhfgfdgjdhfgfgh ${e}");
|
||||
var error = CustomDioExceptions.handleError(e);
|
||||
return left(error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
FutureResult<VendorOtpModel> verifyOtp(data) async {
|
||||
try {
|
||||
var response = await _authServices.verifyOtp(data);
|
||||
|
||||
final VendorOtpModel vendorOtpModel =
|
||||
vendorOtpModelFromJson(response.toString());
|
||||
|
||||
if (vendorOtpModel.data != null)
|
||||
{
|
||||
await SharedPrefUtils.setToken(
|
||||
authToken: vendorOtpModel.data!.accessToken ?? "");
|
||||
}
|
||||
|
||||
// final String model = response.toString();
|
||||
|
||||
return right(vendorOtpModel);
|
||||
} on DioException catch (e) {
|
||||
var error = CustomDioExceptions.handleError(e);
|
||||
return left(error);
|
||||
}
|
||||
}
|
||||
|
||||
// FutureResult<LoginResponse> login(data) async {
|
||||
// try {
|
||||
// var response = await _authServices.login(data);
|
||||
|
||||
// LoginResponse loginResponse = loginResponseFromJson(response.toString());
|
||||
// if (loginResponse.accessToken != null) {
|
||||
// await SharedPrefUtils.setToken(
|
||||
// authToken: loginResponse.accessToken ?? "");
|
||||
// await SharedPrefUtils.setRefreshToken(
|
||||
// refresh_token: loginResponse.refreshToken ?? "");
|
||||
// }
|
||||
|
||||
// print("Response status code: ${response.statusCode}");
|
||||
|
||||
// return right(loginResponse);
|
||||
// } on DioException catch (e) {
|
||||
// print("DioException occurred: $e");
|
||||
|
||||
// if (e.response != null) {
|
||||
// int statusCode = e.response!.statusCode ?? 0;
|
||||
// var errorData = e.response!.data; // Error body from the server
|
||||
|
||||
// String errorMessage =
|
||||
// errorData['message']['message'] ?? 'Unknown error';
|
||||
|
||||
// print("Error: $errorMessage (Status Code: $statusCode)");
|
||||
|
||||
// // Custom error handling
|
||||
// var error = CustomDioExceptions.handleError(e);
|
||||
// return left(error);
|
||||
// } else {
|
||||
// // Handle other DioExceptions without a response (e.g., network issues)
|
||||
// var error = CustomDioExceptions.handleError(e);
|
||||
// return left(error);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
FutureResult<String> customerRegister(data) async {
|
||||
try {
|
||||
var response = await _authServices.userRegister(data);
|
||||
final String model = response.toString();
|
||||
return right(model);
|
||||
} on DioException catch (e) {
|
||||
var error = CustomDioExceptions.handleError(e);
|
||||
return left(error);
|
||||
}
|
||||
}
|
||||
|
||||
// FutureResult<String> forgetPassword(data) async {
|
||||
// try {
|
||||
// var response = await _authServices.forgetPassword(data);
|
||||
// final String model = response.toString();
|
||||
// return right(model);
|
||||
// } on DioException catch (e) {
|
||||
// var error = CustomDioExceptions.handleError(e);
|
||||
// return left(error);
|
||||
// }
|
||||
// }
|
||||
|
||||
// FutureResult<String> verifyForgetPassword(data) async {
|
||||
// try {
|
||||
// var response = await _authServices.verifyForgetPassword(data);
|
||||
|
||||
// PasswordModel passwordModel = passwordModelFromJson(response.toString());
|
||||
// if (passwordModel.data != null) {
|
||||
// print("JHGhjhg ${passwordModel.data!.resetToken}");
|
||||
// await SharedPrefUtils.setResetToken(
|
||||
// resetToken: passwordModel.data!.resetToken ?? "");
|
||||
// }
|
||||
|
||||
// final String model = response.toString();
|
||||
// return right(model);
|
||||
// } on DioException catch (e) {
|
||||
// var error = CustomDioExceptions.handleError(e);
|
||||
// return left(error);
|
||||
// }
|
||||
// }
|
||||
|
||||
// FutureResult<String> reset_password(data) async {
|
||||
// try {
|
||||
// var response = await _authServices.reset_password(data);
|
||||
// final String model = response.toString();
|
||||
// return right(model);
|
||||
// } on DioException catch (e) {
|
||||
// var error = CustomDioExceptions.handleError(e);
|
||||
// return left(error);
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
|
||||
}
|
||||
68
lib/src/logic/repo/home_repo.dart
Normal file
68
lib/src/logic/repo/home_repo.dart
Normal file
@@ -0,0 +1,68 @@
|
||||
// import 'package:dio/dio.dart';
|
||||
// import 'package:flutter/material.dart';
|
||||
// import 'package:fpdart/fpdart.dart';
|
||||
// import 'package:vendor_app/src/core/routes/routes.dart';
|
||||
// import 'package:vendor_app/src/core/utiils_lib/custom_dio_exception.dart';
|
||||
// import 'package:vendor_app/src/core/utiils_lib/extensions.dart';
|
||||
// import 'package:vendor_app/src/core/utiils_lib/response_type_def.dart';
|
||||
// import 'package:vendor_app/src/core/utiils_lib/shared_pref_utils.dart';
|
||||
// import 'package:vendor_app/src/data/login_response.dart';
|
||||
// import 'package:vendor_app/src/data/vendor_model.dart';
|
||||
// import 'package:vendor_app/src/logic/services/home_locator.dart';
|
||||
|
||||
// class HomeRepo {
|
||||
// final HomeService _homeService;
|
||||
|
||||
// HomeRepo(this._homeService);
|
||||
|
||||
// FutureResult<String> refreshToken(data, BuildContext context) async {
|
||||
// try {
|
||||
// var response = await _homeService.refresh_token(data);
|
||||
// LoginResponse loginResponse = loginResponseFromJson(response.toString());
|
||||
|
||||
// if (loginResponse.accessToken != null) {
|
||||
// print("chwckData ${loginResponse.accessToken}");
|
||||
// await SharedPrefUtils.setToken(
|
||||
// authToken: loginResponse.accessToken ?? "");
|
||||
// await SharedPrefUtils.setRefreshToken(
|
||||
// refresh_token: loginResponse.refreshToken ?? "");
|
||||
// }
|
||||
|
||||
// final String model = response.toString();
|
||||
|
||||
// return right(model);
|
||||
// } on DioException catch (e)
|
||||
// {
|
||||
// context.clearAndPush(routePath: MyRoutes.SELECTACCOUNT);
|
||||
|
||||
// var error = CustomDioExceptions.handleError(e);
|
||||
// return left(error);
|
||||
// }
|
||||
// }
|
||||
|
||||
// FutureResult<VendorModel> getMe(data) async {
|
||||
// try {
|
||||
// var response = await _homeService.getMe(data);
|
||||
|
||||
// final VendorModel vendorModel = vendorModelFromJson(response.toString());
|
||||
|
||||
// if (vendorModel != null)
|
||||
// {
|
||||
// SharedPrefUtils.USER_NAME =
|
||||
// vendorModel.firstName + " " + vendorModel.lastName;
|
||||
// SharedPrefUtils.PHONE = vendorModel.phone;
|
||||
|
||||
// print("dkfjhdkfhkfk ${SharedPrefUtils.USER_NAME}");
|
||||
// await SharedPrefUtils.setStoreId(storeId: vendorModel.storeId ?? "");
|
||||
|
||||
// }
|
||||
|
||||
// final String model = response.toString();
|
||||
|
||||
// return right(vendorModel);
|
||||
// } on DioException catch (e) {
|
||||
// var error = CustomDioExceptions.handleError(e);
|
||||
// return left(error);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
126
lib/src/logic/repo/product_repo.dart
Normal file
126
lib/src/logic/repo/product_repo.dart
Normal file
@@ -0,0 +1,126 @@
|
||||
// import 'dart:io';
|
||||
|
||||
// import 'package:dio/dio.dart';
|
||||
// import 'package:fpdart/fpdart.dart';
|
||||
// import 'package:vendor_app/src/core/utiils_lib/custom_dio_exception.dart';
|
||||
// import 'package:vendor_app/src/core/utiils_lib/response_type_def.dart';
|
||||
// import 'package:vendor_app/src/core/utiils_lib/shared_pref_utils.dart';
|
||||
// import 'package:vendor_app/src/data/ProductCategoryModel.dart';
|
||||
// import 'package:vendor_app/src/data/prdouct_model.dart';
|
||||
// import 'package:vendor_app/src/data/upload_image.dart';
|
||||
// import 'package:vendor_app/src/data/vendor_otpModel.dart';
|
||||
// import 'package:vendor_app/src/logic/services/product_locator.dart';
|
||||
// import 'package:vendor_app/src/logic/services/service_locator.dart';
|
||||
|
||||
// class ProductRepo {
|
||||
// final ProductService _productServices;
|
||||
|
||||
// ProductRepo(this._productServices);
|
||||
|
||||
// FutureResult<PrdouctModel> getProduct(data) async {
|
||||
// try {
|
||||
// var response = await _productServices.getProduct(data);
|
||||
|
||||
// final PrdouctModel prdouctModel =
|
||||
// prdouctModelFromJson(response.toString());
|
||||
|
||||
// if (prdouctModel.data!.isNotEmpty)
|
||||
// {
|
||||
// print("check data are fetch are note");
|
||||
// }
|
||||
|
||||
// // final String model = response.toString();
|
||||
|
||||
// return right(prdouctModel);
|
||||
// } on DioException catch (e) {
|
||||
// var error = CustomDioExceptions.handleError(e);
|
||||
// return left(error);
|
||||
// }
|
||||
// }
|
||||
|
||||
// FutureResult<List<ProductCategoryModel>> getCategoryByLevel(data) async
|
||||
// {
|
||||
// try {
|
||||
// var response = await _productServices.getCategoryByLevel(data);
|
||||
|
||||
// final List<ProductCategoryModel> productModels = (response.data as List)
|
||||
// .map((item) => ProductCategoryModel.fromJson(item))
|
||||
// .toList();
|
||||
// if (response != null && response.data != null)
|
||||
// {
|
||||
// // Parse the response data into a list of ProductCategoryModel
|
||||
// final List<ProductCategoryModel> productModels = (response.data as List)
|
||||
// .map((item) => ProductCategoryModel.fromJson(item))
|
||||
// .toList();
|
||||
|
||||
// // Print or handle the fetched data
|
||||
// if (productModels.isNotEmpty)
|
||||
// {
|
||||
// print(
|
||||
// "Data successfully fetched and parsed: ${productModels.length} categories.");
|
||||
// }
|
||||
// }
|
||||
// return right(productModels);
|
||||
// } on DioException catch (e) {
|
||||
// var error = CustomDioExceptions.handleError(e);
|
||||
// return left(error);
|
||||
// }
|
||||
// }
|
||||
|
||||
// FutureResult<String> createProduct(data) async {
|
||||
// try {
|
||||
// var response = await _productServices.createProduct(data);
|
||||
// final String model = response.toString();
|
||||
|
||||
// return right(model);
|
||||
// } on DioException catch (e) {
|
||||
// var error = CustomDioExceptions.handleError(e);
|
||||
// return left(error);
|
||||
// }
|
||||
// }
|
||||
|
||||
// FutureResult<String> deleteProduct(data,id) async
|
||||
// {
|
||||
// try {
|
||||
// var response = await _productServices.deleteProduct(data,id);
|
||||
// final String model = response.toString();
|
||||
|
||||
// return right(model);
|
||||
// } on DioException catch (e) {
|
||||
// var error = CustomDioExceptions.handleError(e);
|
||||
// return left(error);
|
||||
// }
|
||||
// }
|
||||
|
||||
// FutureResult<String> updateProduct(data,id) async
|
||||
// {
|
||||
// try {
|
||||
// var response = await _productServices.updateProduct(data,id);
|
||||
// final String model = response.toString();
|
||||
|
||||
// return right(model);
|
||||
// } on DioException catch (e) {
|
||||
// var error = CustomDioExceptions.handleError(e);
|
||||
// return left(error);
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
// FutureResult<UploadImage> uploadImage(File imageFile)
|
||||
// async {
|
||||
// try {
|
||||
// final response = await _productServices.uploadImage(imageFile);
|
||||
// UploadImage upload=uploadImageFromJson(response.toString());
|
||||
// return right(upload);
|
||||
// } on DioException catch (e) {
|
||||
// final error = CustomDioExceptions.handleError(e);
|
||||
// return left(error);
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
// }
|
||||
72
lib/src/logic/repo/store_repo.dart
Normal file
72
lib/src/logic/repo/store_repo.dart
Normal file
@@ -0,0 +1,72 @@
|
||||
// import 'package:dio/dio.dart';
|
||||
// import 'package:fpdart/fpdart.dart';
|
||||
// import 'package:vendor_app/src/core/utiils_lib/custom_dio_exception.dart';
|
||||
// import 'package:vendor_app/src/core/utiils_lib/response_type_def.dart';
|
||||
// import 'package:vendor_app/src/data/store_model.dart';
|
||||
// import 'package:vendor_app/src/logic/services/store_locator.dart';
|
||||
|
||||
// class StoreRepo {
|
||||
// final StoreService _storeService;
|
||||
|
||||
// StoreRepo(this._storeService);
|
||||
|
||||
// FutureResult<String> createStore(data) async {
|
||||
// try {
|
||||
// var response = await _storeService.createStore(data);
|
||||
|
||||
// final String model = response.toString();
|
||||
// return right(model);
|
||||
// } on DioException catch (e) {
|
||||
// var error = CustomDioExceptions.handleError(e);
|
||||
// return left(error);
|
||||
// }
|
||||
// }
|
||||
|
||||
// FutureResult<String> updateStore(data) async {
|
||||
// try {
|
||||
// var response = await _storeService.updateStore(data);
|
||||
|
||||
// final String model = response.toString();
|
||||
// return right(model);
|
||||
// } on DioException catch (e) {
|
||||
// var error = CustomDioExceptions.handleError(e);
|
||||
// return left(error);
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
// FutureResult<StoreModel> getStore(data) async
|
||||
// {
|
||||
// try {
|
||||
// var response = await _storeService.getStore(data);
|
||||
|
||||
// print("objectdjsfngjkdfjjfjb");
|
||||
// StoreModel storeModel = storeModelFromJson(response.toString());
|
||||
// if (storeModel != null)
|
||||
// {
|
||||
// print("objectdjsfngjkdfjjfjbetyrtytryut");
|
||||
// }
|
||||
|
||||
// final String model = response.toString();
|
||||
// return right(storeModel);
|
||||
// } on DioException catch (e) {
|
||||
// var error = CustomDioExceptions.handleError(e);
|
||||
// return left(error);
|
||||
// }
|
||||
// }
|
||||
// FutureResult<String> vendorLogOut(data) async {
|
||||
// try {
|
||||
// var response = await _storeService.logoutVendor(data);
|
||||
|
||||
// final String model = response.toString();
|
||||
// return right(model);
|
||||
// } on DioException catch (e) {
|
||||
// var error = CustomDioExceptions.handleError(e);
|
||||
// return left(error);
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// }
|
||||
129
lib/src/logic/services/auth_service_locator.dart
Normal file
129
lib/src/logic/services/auth_service_locator.dart
Normal file
@@ -0,0 +1,129 @@
|
||||
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:grocery_app/src/core/constant/api.dart';
|
||||
import 'package:grocery_app/src/core/network_services/api_services.dart';
|
||||
|
||||
|
||||
|
||||
class AuthServices extends ApiService {
|
||||
/// Login
|
||||
Future sendOtp(data) async
|
||||
{
|
||||
var response = await api.post(APIURL.sendOtp, data: jsonEncode(data));
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Future verifyOtp(data) async {
|
||||
var response = await api.post(APIURL.verifyOtp, data: jsonEncode(data));
|
||||
return response;
|
||||
}
|
||||
Future login(data) async
|
||||
{
|
||||
var response = await api.post(APIURL.login, data: jsonEncode(data));
|
||||
//response.statusCode
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Future userRegister(data) async
|
||||
{
|
||||
var response = await api.post(APIURL.customerRegister, data: jsonEncode(data));
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Future forgetPassword(data) async
|
||||
{
|
||||
var response = await api.post(APIURL.forgetPassword, data: jsonEncode(data));
|
||||
return response;
|
||||
}
|
||||
|
||||
Future verifyForgetPassword(data) async
|
||||
{
|
||||
var response = await api.post(APIURL.verifyForgetPassword, data: jsonEncode(data));
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
Future reset_password(data) async
|
||||
{
|
||||
var response = await api.post(APIURL.reset_password, data: jsonEncode(data));
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// Login
|
||||
// Future profileUpdate(data) async {
|
||||
// var response = await api.put(Endpoints.update, data: data);
|
||||
// return response;
|
||||
// }
|
||||
|
||||
// /// Update badges
|
||||
// Future updateBadge(data) async {
|
||||
// var response = await api.put(Endpoints.updateBadge, data: data);
|
||||
// return response;
|
||||
// }
|
||||
|
||||
// /// Login
|
||||
// Future getProfile() async {
|
||||
// var response = await api.get(
|
||||
// Endpoints.myProfile,
|
||||
// );
|
||||
// return response;
|
||||
// }
|
||||
|
||||
// Future getAvatar() async {
|
||||
// var response = await api.get(
|
||||
// Endpoints.getAvatar,
|
||||
// );
|
||||
// return response;
|
||||
// }
|
||||
|
||||
// Future getAllBadge() async {
|
||||
// var response = await api.get(
|
||||
// Endpoints.getAllBadge,
|
||||
// );
|
||||
// return response;
|
||||
// }
|
||||
|
||||
// Future getOtherProfile(data) async {
|
||||
// var response =
|
||||
// await api.get(Endpoints.getOtherUserProfile, queryParameters: data);
|
||||
// return response;
|
||||
// }
|
||||
|
||||
// setNotificatinStatus(data) async {
|
||||
// var response = await api.put(Endpoints.notificationSettings, data: data);
|
||||
// return response;
|
||||
// }
|
||||
|
||||
// Future reportUser(data) async {
|
||||
// var response = await api.post(Endpoints.report, data: data);
|
||||
// return response;
|
||||
// }
|
||||
|
||||
// Future logOut(data) async {
|
||||
// var response = await api.post(Endpoints.signOut, data: data);
|
||||
// return response;
|
||||
// }
|
||||
}
|
||||
27
lib/src/logic/services/home_locator.dart
Normal file
27
lib/src/logic/services/home_locator.dart
Normal file
@@ -0,0 +1,27 @@
|
||||
// import 'dart:convert';
|
||||
|
||||
// import 'package:vendor_app/src/core/constant/api.dart';
|
||||
// import 'package:vendor_app/src/core/network_services/api_services.dart';
|
||||
|
||||
// class HomeService extends ApiService {
|
||||
|
||||
// Future getMe(data) async {
|
||||
// var response = await api.get(APIURL.getMe, data: jsonEncode(data));
|
||||
// //response.statusCode
|
||||
|
||||
// return response;
|
||||
// }
|
||||
|
||||
// Future refresh_token(data) async
|
||||
// {
|
||||
// var response = await api.post(APIURL.refresh_token, data: jsonEncode(data));
|
||||
// //response.statusCode
|
||||
|
||||
// return response;
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// }
|
||||
58
lib/src/logic/services/product_locator.dart
Normal file
58
lib/src/logic/services/product_locator.dart
Normal file
@@ -0,0 +1,58 @@
|
||||
// import 'dart:convert';
|
||||
// import 'dart:io';
|
||||
|
||||
// import 'package:dio/dio.dart';
|
||||
// import 'package:vendor_app/src/core/constant/api.dart';
|
||||
// import 'package:vendor_app/src/core/network_services/api_services.dart';
|
||||
|
||||
// class ProductService extends ApiService {
|
||||
// // Future createStore(data) async
|
||||
// // {
|
||||
// // var response = await api.get(APIURL.createStore, data: jsonEncode(data));
|
||||
// // return response;
|
||||
// // }
|
||||
|
||||
// Future getProduct(data) async {
|
||||
// var response = await api.get(APIURL.getProduct, data: jsonEncode(data));
|
||||
// return response;
|
||||
// }
|
||||
|
||||
// Future createProduct(data) async {
|
||||
// var response = await api.post(APIURL.getProduct, data: jsonEncode(data));
|
||||
// return response;
|
||||
// }
|
||||
|
||||
// Future deleteProduct(data, id) async {
|
||||
// var response =
|
||||
// await api.delete(APIURL.deleteProduct + id, data: jsonEncode(data));
|
||||
// return response;
|
||||
// }
|
||||
|
||||
// Future updateProduct(data, id) async {
|
||||
// var response =
|
||||
// await api.patch(APIURL.updateProduct + id, data: jsonEncode(data));
|
||||
// return response;
|
||||
// }
|
||||
|
||||
// Future getCategoryByLevel(data) async {
|
||||
// var response =
|
||||
// await api.get(APIURL.getCategoryByLevel, data: jsonEncode(data));
|
||||
// return response;
|
||||
// }
|
||||
|
||||
// // Future uploadImage(data) async
|
||||
// // {
|
||||
// // var response = await api.post(APIURL.uploadImage, data: jsonEncode(data));
|
||||
// // return response;
|
||||
// // }
|
||||
|
||||
// Future<Response> uploadImage(File imageFile,
|
||||
// {Map<String, dynamic>? additionalFields}) async {
|
||||
// const String url = APIURL.uploadImage;
|
||||
// return await api.uploadImage(
|
||||
// url,
|
||||
// imageFile,
|
||||
// additionalFields: additionalFields,
|
||||
// );
|
||||
// }
|
||||
// }
|
||||
33
lib/src/logic/services/store_locator.dart
Normal file
33
lib/src/logic/services/store_locator.dart
Normal file
@@ -0,0 +1,33 @@
|
||||
// import 'dart:convert';
|
||||
|
||||
// import 'package:vendor_app/src/core/constant/api.dart';
|
||||
// import 'package:vendor_app/src/core/network_services/api_services.dart';
|
||||
// import 'package:vendor_app/src/core/utiils_lib/shared_pref_utils.dart';
|
||||
|
||||
// class StoreService extends ApiService {
|
||||
// Future createStore(data) async {
|
||||
// var response = await api.post(APIURL.createStore, data: jsonEncode(data));
|
||||
// return response;
|
||||
// }
|
||||
|
||||
// Future getStore(data) async {
|
||||
// String storeId = "${await SharedPrefUtils.getStoreId()}";
|
||||
// print("lkdsjhgjhdfgh ${APIURL.getStore + storeId}");
|
||||
|
||||
// var response =
|
||||
// await api.get(APIURL.getStore + storeId, data: jsonEncode(data));
|
||||
// return response;
|
||||
// }
|
||||
|
||||
// Future logoutVendor(data) async {
|
||||
// var response = await api.post(APIURL.vendorLogOut, data: jsonEncode(data));
|
||||
// return response;
|
||||
// }
|
||||
|
||||
// Future updateStore(data) async {
|
||||
// var response = await api.patch(APIURL.updateStore, data: jsonEncode(data));
|
||||
// return response;
|
||||
// }
|
||||
|
||||
|
||||
// }
|
||||
Reference in New Issue
Block a user