Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import 'package:flutter/material.dart';
- import 'package:flutter/services.dart';
- import 'package:ganeca_digital_mobile/config/config_app.dart';
- import 'package:ganeca_digital_mobile/models/book.dart';
- import 'package:ganeca_digital_mobile/models/bookDetailResponse.dart';
- import 'package:ganeca_digital_mobile/models/bookPagingResponse.dart';
- import 'package:ganeca_digital_mobile/models/bookResponse.dart';
- import 'package:ganeca_digital_mobile/models/category.dart';
- import 'package:ganeca_digital_mobile/models/categoryDetailResponse.dart';
- import 'package:ganeca_digital_mobile/models/categoryResponse.dart';
- import 'package:ganeca_digital_mobile/models/member.dart';
- import 'package:ganeca_digital_mobile/models/memberResponse.dart';
- import 'package:ganeca_digital_mobile/models/promo.dart';
- import 'package:ganeca_digital_mobile/models/promoResponse.dart';
- import 'package:ganeca_digital_mobile/service/rest_api.dart';
- import 'package:ganeca_digital_mobile/service/view_state.dart';
- import 'package:shared_preferences/shared_preferences.dart';
- import '../locator.dart';
- import 'base_view_model.dart';
- class ListBookViewModel extends BaseViewModel {
- RestClient _api = locator<RestClient>();
- List<Book> bookData;
- String status;
- String errorMessage;
- List<Promo> promos;
- int currentPage = 1;
- Category category;
- List<Category> categories;
- Future main(Category category,{order = "most",price : "",startPrice:"",endPrice:""}) async {
- currentPage = 1;
- setState(ViewState.Busy);
- _api.fp = await SharedPreferences.getInstance();
- status = _api.fp.getString(ConfigApp.STATUS);
- if(category.id != "") {
- CategoryDetailResponse categoryResponse = await _api.getCategoryDetail(category.id);
- this.category = categoryResponse.data;
- }
- BookPagingResponse bookResponse;
- if(order=='most'){
- bookResponse = await _api.getBookMostReadPaging(category: category.id,order: order,price: price,page : currentPage,startPrice:startPrice,endPrice: endPrice);
- }else{
- bookResponse = await _api.getBookPaging(category: category.id,order: order,price: price,page : currentPage,startPrice:startPrice,endPrice: endPrice);
- }
- if(currentPage == bookResponse.last_page) {
- setLoadBookState(LoadBookState.Max);
- } else {
- currentPage++;
- }
- bookData = bookResponse.data;
- setState(ViewState.Idle);
- }
- Future<List<Book>> getNextPage(Category category,{order = null,price : "",startPrice:"",endPrice:""}) async {
- setLoadBookState(LoadBookState.Busy);
- BookPagingResponse bookResponse;
- if(order=='most'){
- bookResponse = await _api.getBookMostReadPaging(category: category.id,order: order,price: price,page : currentPage,startPrice:startPrice,endPrice: endPrice);
- }else{
- bookResponse = await _api.getBookPaging(category: category.id,order: order,price: price,page : currentPage,startPrice:startPrice,endPrice: endPrice);
- }
- if(currentPage == bookResponse.last_page) {
- setLoadBookState(LoadBookState.Idle);
- setLoadBookState(LoadBookState.Max);
- } else {
- setLoadBookState(LoadBookState.Idle);
- currentPage++;
- }
- return bookResponse.data;
- }
- Future mostRead(Category category,{order = null,price : '',library : '',search : "",startPrice:"",endPrice:""}) async {
- setState(ViewState.Busy);
- _api.fp = await SharedPreferences.getInstance();
- status = _api.fp.getString(ConfigApp.STATUS);
- if(category.id != "") {
- CategoryDetailResponse categoryResponse = await _api.getCategoryDetail(category.id);
- this.category = categoryResponse.data;
- }
- BookResponse bookResponse = await _api.getMostRead(limit: 12,category: category.id,order: order,price : price,library_id: library,search: search,startPrice: startPrice,endPrice: endPrice);
- bookData = bookResponse.data;
- setState(ViewState.Idle);
- }
- Future search({Category category : null,order : "",limit : "", search : ""}) async {
- setState(ViewState.Busy);
- _api.fp = await SharedPreferences.getInstance();
- status = _api.fp.getString(ConfigApp.STATUS);
- BookResponse bookResponse = await _api.getBook(limit: 12,category: category == null ? "" : category.id ,order: order,search: search);
- bookData = bookResponse.data;
- setState(ViewState.Idle);
- }
- Future globalSearch(String search) async {
- setState(ViewState.Busy);
- _api.fp = await SharedPreferences.getInstance();
- status = _api.fp.getString(ConfigApp.STATUS);
- BookPagingResponse bookResponse = await _api.getBookGlobalSearch(search: search,page : currentPage);
- if(currentPage == bookResponse.last_page) {
- setLoadBookState(LoadBookState.Idle);
- setLoadBookState(LoadBookState.Max);
- } else {
- setLoadBookState(LoadBookState.Idle);
- currentPage++;
- }
- bookData = bookResponse.data;
- setState(ViewState.Idle);
- }
- Future<List<Book>> getNextPageGlobalSearch(String search,{order = null,price : ""}) async {
- print(search);
- setLoadBookState(LoadBookState.Busy);
- BookPagingResponse bookResponse = await _api.getBookGlobalSearch(search: search,page : currentPage);
- if(currentPage == bookResponse.last_page) {
- setLoadBookState(LoadBookState.Idle);
- setLoadBookState(LoadBookState.Max);
- } else {
- setLoadBookState(LoadBookState.Idle);
- currentPage++;
- }
- return bookResponse.data;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement