user.dart 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import 'index.dart';
  2. import '../utils/index.dart';
  3. import '../models/index.dart';
  4. extension UserAPI on Network {
  5. // get user balance
  6. Future<Balance> getBalance() async {
  7. var resp = await Request.get('user/balance');
  8. return Balance.fromJson(resp);
  9. }
  10. // get user address list
  11. Future<List<Address>> getAddress() async {
  12. var resp = await Request.get('address/list');
  13. List<dynamic> list = resp as List<dynamic>;
  14. List<Address> result = List<Address>();
  15. for(var address in list) {
  16. result.add(Address.fromJson(address));
  17. }
  18. return result;
  19. }
  20. // get user cart list
  21. Future<CartList> getCartList() async {
  22. var resp = await Request.get("cart/list");
  23. return CartList.fromJson(resp);
  24. }
  25. Future cartNum({int id, int number}) async {
  26. var data = {
  27. "id": id,
  28. "number": number
  29. };
  30. return Request.post("cart/num", params: data);
  31. }
  32. // add product ro cart
  33. Future<dynamic> addCart({dynamic cartNum = 1, dynamic news = 1, dynamic productId, String uniqueId}) async {
  34. var data = {
  35. "cartNum" : cartNum,
  36. "new": news,
  37. "productId": productId,
  38. "uniqueId": uniqueId
  39. };
  40. var resp = await Request.post("cart/add", params: data);
  41. var cart = resp as Map<String, dynamic>;
  42. return cart['cartId'];
  43. }
  44. // add a product to collect
  45. Future addCollect(dynamic id) async {
  46. var params = {
  47. "id": id,
  48. "category": 'product'
  49. };
  50. return await Request.post('collect/add', params: params);
  51. }
  52. // remove a product from collect
  53. Future delCollect(dynamic id) async {
  54. var params = {
  55. "id": id,
  56. "category": 'product'
  57. };
  58. return await Request.post('collect/del', params: params);
  59. }
  60. // get user collect list
  61. Future<List<Collect>> getCollect ({dynamic page = "1", dynamic limit = "20"}) async {
  62. var resp = await Request.get('collect/user?page=$page&limit=$limit');
  63. List<Collect> list = List<Collect>();
  64. var collects = resp as List;
  65. for(var item in collects) {
  66. list.add(Collect.fromJson(item));
  67. }
  68. return list;
  69. }
  70. }