flutter_package_api_fake_store
flutter_package_api_fake_store es un paquete de Flutter para interactuar con el API de fakestoreapi, permitiendo obtener productos, gestionar carritos y usuarios, y mucho más.
Características
- Obtener productos: Lista de productos disponibles en la tienda.
- Gestionar carritos: Añadir, actualizar y eliminar productos en carritos de compra.
- Manejo de usuarios: Autenticación y gestión de usuarios.
Requisitos
- Flutter: Versión
3.22.2 - Dart: Versión
3.4.3
Instalación
Agrega el paquete a tu archivo pubspec.yaml:
dependencies:
flutter:
sdk: flutter
flutter_package_api_fake_store: 0.0.1
Luego, instala las dependencias ejecutando:
flutter pub get
Uso
Funcionalidades Detalladas
Autenticación de Usuario
final resultLogin = await flutterPackageApiFakeStore.login(AuthPostModel(
username: 'user1',
password: '123456',
));
resultLogin.fold(
(error) => print(error),
(token) => print(token),
);
- Error: Retorna un
Stringque describe el error durante la autenticación, como credenciales inválidas o un fallo de conexión. - Success: Retorna un
Stringque contiene el token de autenticación, el cual puede ser utilizado para realizar otras solicitudes autorizadas en la API.
Obtener el carrito según el ID del usuario
final resultCartByUser = await flutterPackageApiFakeStore.getCartByUser('1');
resultCartByUser.fold(
(error) => print(error),
(carts) => carts.forEach((element) {
print(element);
}),
);
- Error: Retorna un
Stringque describe el error durante la consulta del carrito. - Success: Retorna una lista de CartModel.
Agregar un producto al carrito
final resultAddUpdateProduct =
await flutterPackageApiFakeStore.addUpdateProductCart(
'1', CartModel(products: [], date: DateTime.now(), id: 1, userId: 1));
resultAddUpdateProduct.fold(
(error) => print(error),
(carts) => print(carts),
);
- Error: Retorna un
Stringque describe el error durante la consulta. - Success: Retorna una lista de CartModel
Obtener todas las categorias
final resultCategories = await flutterPackageApiFakeStore.getCategories();
resultCategories.fold(
(error) => print(error),
(categories) => categories.forEach((element) {
print(element);
}),
);
- Error: Retorna un
Stringque describe el error durante la consulta. - Success: Retorna una lista de CategoryModel
Obtener todos los productos de una categoria
final resultProductCategory = await flutterPackageApiFakeStore
.getCategoryProducts(CategoryEnum.electronics);
resultProductCategory.fold(
(error) => print(error),
(products) => products.forEach((element) {
print(element);
}),
);
- Error: Retorna un
Stringque describe el error durante la consulta. - Success: Retorna una lista de ProductModel
Obtener todos los productos
final resultProducts = await flutterPackageApiFakeStore.getProducts();
resultProducts.fold(
(error) => print(error),
(products) => products.forEach((element) {
print(element);
}),
);
- Error: Retorna un
Stringque describe el error durante la consulta. - Success: Retorna una lista de ProductModel
Obtener la información de un producto
final resultProduct = await flutterPackageApiFakeStore.getProduct(1);
resultProduct.fold(
(error) => print(error),
(product) => print(product),
);
- Error: Retorna un
Stringque describe el error durante la consulta. - Success: Retorna la información del producto en ProductModel
Obtener la información de un usuario
final resultUser = await flutterPackageApiFakeStore.getUser(1);
resultUser.fold(
(error) => print(error),
(user) => print(user),
);
- Error: Retorna un
Stringque describe el error durante la consulta. - Success: Retorna la información del usuario en UserModel
Agregar un usuario
final result = await flutterPackageApiFakeStore.addUser(UserModel(
email: 'mail@mail.com',
username: 'user1',
password: '123456',
name: NameModel(
firstname: 'User',
lastname: 'One',
),
address: AddressModel(
city: 'City 1',
street: 'Street 1',
number: 1,
zipcode: 'Zipcode 1',
geolocation: GeolocationModel(
lat: 'Lat 1',
long: 'Lng 1',
),
),
phone: 'Phone 1',
));
result.fold(
(error) => print(error),
(user) => print(user),
);
- Error: Retorna un
Stringque describe el error durante el registro. - Success: Retorna UserModel como respuesta
Contribución
Las contribuciones son bienvenidas. Por favor, abre un issue o un pull request si encuentras algún problema o si deseas mejorar este paquete.
Licencia
Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.