Skip to content

Commit

Permalink
search is broken
Browse files Browse the repository at this point in the history
  • Loading branch information
Chinmay-KB committed Apr 29, 2020
1 parent 13b7d38 commit 2aa36ba
Show file tree
Hide file tree
Showing 7 changed files with 110 additions and 11 deletions.
27 changes: 24 additions & 3 deletions gogrocy/lib/core/services/api.dart
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ const String getOrders = baseUrl + "getorders";
const String getProductsByCityRequest=baseUrl+ "getProductsByCity";
const String getCategoriesByCityRequest=baseUrl+"getProductsByCategory";
const String getOrderRequest=baseUrl+"getorders";
const String searchByCity=baseUrl+"searchProductsByCity";

class Apis {
final SharedPrefsService _sharedPrefsService = locator<SharedPrefsService>();
Expand Down Expand Up @@ -195,7 +196,7 @@ class Apis {

Future<ProductsByCity> getProductsByCity() async {
Map<String, String> body = {
"city": "jeypore", // TODO: Add city here from SharedPrefs
"city": await _sharedPrefsService.getCity(), // TODO: Add city here from SharedPrefs
};
String jwt = await _sharedPrefsService.getJWT();
var client = new http.Client();
Expand All @@ -214,7 +215,7 @@ class Apis {

Future<ProductsByCity> getProductsByCityCategory(String cat_id) async {
Map<String, String> body = {
"city": "jeypore", // TODO: Add city here from SharedPrefs
"city":await _sharedPrefsService.getCity(), // TODO: Add city here from SharedPrefs
"cat_id": cat_id
};
String jwt = await _sharedPrefsService.getJWT();
Expand All @@ -232,6 +233,26 @@ class Apis {
return null;
}

Future<ProductsByCity> searchProductByCity(String query) async {
Map<String, String> body = {
"city":await _sharedPrefsService.getCity(), // TODO: Add city here from SharedPrefs
"query": query
};
String jwt = await _sharedPrefsService.getJWT();
var client = new http.Client();
bool connectionState = await checkStatus();
if (connectionState) //TODO: Add a proper else return
{
var response = await client.post(searchByCity,
headers: {
'Authorization': 'Bearer $jwt',
},
body: body);
return ProductsByCity.fromJson(json.decode(response.body));
} else
return null;
}



Future<List<Product>> getAllProducts() async {
Expand All @@ -257,7 +278,7 @@ class Apis {
bool connectionState = await checkStatus();
String jwt = await _sharedPrefsService.getJWT();
Map<String, String> body = {
"city": "jeypore", // TODO: Add city here from SharedPrefs
"city":await _sharedPrefsService.getCity(), // TODO: Add city here from SharedPrefs
};
if (connectionState) //TODO: Add a proper else return
{
Expand Down
21 changes: 21 additions & 0 deletions gogrocy/lib/core/viewModels/search_view_model.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import 'package:gogrocy/core/enums/viewstate.dart';
import 'package:gogrocy/core/models/ProductsByCity.dart';
import 'package:gogrocy/core/models/product.dart';
import 'package:gogrocy/core/services/api.dart';
import 'package:gogrocy/core/viewModels/base_model.dart';
import 'package:gogrocy/service_locator.dart';

class SearchViewModel extends BaseModel{
Apis _apis=locator<Apis>();

ProductsByCity searchResults;

Future getAllProducts(String query) async{
setState(ViewState.Busy);
searchResults=await _apis.searchProductByCity(query);
//allProducts.result.shuffle();
setState(ViewState.Idle);
}


}
2 changes: 2 additions & 0 deletions gogrocy/lib/service_locator.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import 'package:gogrocy/core/viewModels/categoty_product_view_model.dart';
import 'package:gogrocy/core/viewModels/login_model.dart';
import 'package:gogrocy/core/viewModels/product_detail_model.dart';
import 'package:gogrocy/core/viewModels/orderLis_model.dart';
import 'package:gogrocy/core/viewModels/search_view_model.dart';
import 'package:gogrocy/core/viewModels/signup_view_model.dart';
import 'package:gogrocy/core/viewModels/startup_view_model.dart';
import 'package:gogrocy/ui/views/category/category_product_view.dart';
Expand All @@ -34,5 +35,6 @@ void setupLocator() {
locator.registerFactory(()=>OrderViewModel());
locator.registerFactory<ProductDetailModel>(() => ProductDetailModel());
locator.registerFactory(() => CartViewModel());
locator.registerFactory(()=>SearchViewModel());
locator.registerFactory(() => BottomNavBarProvider());
}
3 changes: 3 additions & 0 deletions gogrocy/lib/ui/router.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import 'package:gogrocy/ui/views/category/category_product_view.dart';
import 'package:gogrocy/ui/views/orders/order_details_view.dart';
import 'package:gogrocy/ui/views/city_selection.dart';
import 'package:gogrocy/ui/views/product_detail_view.dart';
import 'package:gogrocy/ui/views/search_view.dart';
import 'package:gogrocy/ui/views/signup_view.dart';
import 'package:gogrocy/ui/views/landing_page.dart';
import 'package:gogrocy/ui/views/login_view.dart';
Expand Down Expand Up @@ -62,6 +63,8 @@ Route<dynamic> generateRoute(RouteSettings settings) {
case 'orderDetails':
OrderDetailsArguments orderDetailsArguments=settings.arguments;
return MaterialPageRoute(builder: (context)=>OrderDetailsView(orders: orderDetailsArguments.orders,index: orderDetailsArguments.index,));
case 'search':
return MaterialPageRoute(builder: (context)=>SearchView());
default:
return MaterialPageRoute(
builder: (context) => Scaffold(
Expand Down
44 changes: 44 additions & 0 deletions gogrocy/lib/ui/views/search_view.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import 'package:flutter/material.dart';
import 'package:gogrocy/core/services/navigation_service.dart';
import 'package:gogrocy/service_locator.dart';
import 'package:simple_search_bar/simple_search_bar.dart';

class SearchView extends StatelessWidget {

final AppBarController appBarController = AppBarController();


@override
Widget build(BuildContext context) {
return SafeArea(child: Scaffold(
appBar: SearchAppBar(
primary: Theme.of(context).primaryColor,
appBarController: appBarController,
// You could load the bar with search already active
autoSelected: true,
searchHint: "Pesquise aqui...",
mainTextColor: Colors.white,
onChange: (String value) {
//Your function to filter list. It should interact with
//the Stream that generate the final list
},
//Will show when SEARCH MODE wasn't active
mainAppBar: AppBar(
title: Text("Yout Bar Title"),
actions: <Widget>[
InkWell(
child: Icon(
Icons.search,
),
onTap: () {
//This is where You change to SEARCH MODE. To hide, just
//add FALSE as value on the stream
appBarController.stream.add(true);
},
),
],
),
),
));
}
}
22 changes: 14 additions & 8 deletions gogrocy/lib/ui/widgets/appbar.dart
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:gogrocy/core/services/navigation_service.dart';
import 'package:gogrocy/core/services/shared_prefs.dart';
import 'package:gogrocy/service_locator.dart';
import 'package:gogrocy/ui/shared/constants.dart' as constants;

class TopAppBar extends StatelessWidget implements PreferredSizeWidget {
final SharedPrefsService sharedPrefsService = locator<SharedPrefsService>();
final NavigationService _navigationService = locator<NavigationService>();

@override
Widget build(BuildContext context) {
constants.mediaQueryData = MediaQuery.of(context);
Expand Down Expand Up @@ -70,14 +73,17 @@ class TopAppBar extends StatelessWidget implements PreferredSizeWidget {
),
),
),
Container(
width: constants.screenWidth/3,
child: Align(
alignment: Alignment.centerRight,
child: Padding(
padding: EdgeInsets.only(
right: constants.AppBarConfig.searchIconPaddingRight),
child: Icon(Icons.search),
GestureDetector(
onTap: ()=>_navigationService.navigateTo("search"),
child: Container(
width: constants.screenWidth/3,
child: Align(
alignment: Alignment.centerRight,
child: Padding(
padding: EdgeInsets.only(
right: constants.AppBarConfig.searchIconPaddingRight),
child: Icon(Icons.search),
),
),
),
),
Expand Down
2 changes: 2 additions & 0 deletions gogrocy/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ dependencies:
shared_preferences: ^0.5.6+3
smooth_page_indicator: ^0.1.5
flushbar: 1.9.1
simple_search_bar: ^0.1.7



# The following adds the Cupertino Icons font to your application.
Expand Down

0 comments on commit 2aa36ba

Please sign in to comment.