index.dart 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. export 'user.dart';
  2. export 'order.dart';
  3. import '../utils/index.dart';
  4. import '../models/index.dart';
  5. class Network {
  6. static Network _inst = new Network();
  7. static Network get inst => _inst;
  8. // get home page data
  9. Future<Home> getIndex({dynamic data}) async {
  10. var resp = await Request.get('index');
  11. return Home.fromJson(resp);
  12. }
  13. // user login
  14. Future<UserInfo> login({String account, String password, String code}) async {
  15. var params = {
  16. "code": code,
  17. "account": account,
  18. "password": password,
  19. };
  20. var resp = await Request.post("login", params: params);
  21. var token = Token.fromJson(resp);
  22. Cache.updateToken(token);
  23. return await getUserInfo();
  24. }
  25. // get user info
  26. Future<UserInfo> getUserInfo() async {
  27. var resp = await Request.get('userinfo');
  28. var info = UserInfo.fromJson(resp);
  29. Cache.updateUserInfo(info);
  30. return info;
  31. }
  32. // get user
  33. Future<User> getUser() async {
  34. var resp = await Request.get('user');
  35. var info = User.fromJson(resp);
  36. Cache.updateUser(info);
  37. return info;
  38. }
  39. // get product detail info
  40. Future<Details> getDetail({dynamic data}) async {
  41. return Details.fromJson(await Request.get("product/detail/" + data.toString()));
  42. }
  43. // search products with keyword
  44. Future<List<Product>> search(String keyword, {dynamic page = "1", dynamic limit = "20"}) async {
  45. var resp = await Request.get("products?page=$page&limit=$limit&keyword=$keyword");
  46. List<Product> list = List<Product>();
  47. var products = resp as List;
  48. for(var item in products) {
  49. list.add(Product.fromJson(item));
  50. }
  51. return list;
  52. }
  53. }