Add ionia categories.

This commit is contained in:
M 2022-06-29 14:00:57 +01:00
parent 1d1bffa62b
commit e9b27f93db
3 changed files with 29 additions and 4 deletions

View file

@ -5,6 +5,7 @@ import 'package:flutter/foundation.dart';
import 'package:http/http.dart';
import 'package:cake_wallet/ionia/ionia_user_credentials.dart';
import 'package:cake_wallet/ionia/ionia_virtual_card.dart';
import 'package:cake_wallet/ionia/ionia_category.dart';
class IoniaApi {
static const baseUri = 'apidev.dashdirect.org';
@ -165,7 +166,7 @@ class IoniaApi {
@required String password,
@required String clientId,
String search,
List<int> categories,
List<IoniaCategory> categories,
int merchantFilterType = 0}) async {
// MerchantFilterType: {All = 0, Nearby = 1, Popular = 2, Online = 3, MyFaves = 4, Search = 5}
@ -181,7 +182,10 @@ class IoniaApi {
}
if (categories != null) {
body['Categories'] = categories;
body['Categories'] = categories
.map((e) => e.ids)
.expand((e) => e)
.toList();
}
final response = await post(getMerchantsByFilterUrl, headers: headers, body: json.encode(body));
@ -199,7 +203,7 @@ class IoniaApi {
final data = decodedBody['Data'] as List<dynamic>;
return data.map((dynamic e) {
final element = e as Map<String, dynamic>;
final element = e['Merchant'] as Map<String, dynamic>;
return IoniaMerchant.fromJsonMap(element);
}).toList();
}

View file

@ -0,0 +1,20 @@
class IoniaCategory {
const IoniaCategory(this.title, this.ids);
static const allCategories = <IoniaCategory>[
apparel,
onlineOnly,
food,
entertainment,
delivery,
travel];
static const apparel = IoniaCategory('Apparel', [1]);
static const onlineOnly = IoniaCategory('Online Only', [13, 43]);
static const food = IoniaCategory('Food', [4]);
static const entertainment = IoniaCategory('Entertainment', [5]);
static const delivery = IoniaCategory('Delivery', [114, 109]);
static const travel = IoniaCategory('Travel', [12]);
final String title;
final List<int> ids;
}

View file

@ -5,6 +5,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:cake_wallet/.secrets.g.dart' as secrets;
import 'package:cake_wallet/ionia/ionia_api.dart';
import 'package:cake_wallet/ionia/ionia_category.dart';
class IoniaService {
IoniaService(this.secureStorage, this.ioniaApi);
@ -75,7 +76,7 @@ class IoniaService {
Future<List<IoniaMerchant>> getMerchantsByFilter({
String search,
List<int> categories,
List<IoniaCategory> categories,
int merchantFilterType = 0}) async {
final username = await secureStorage.read(key: ioniaUsernameStorageKey);
final password = await secureStorage.read(key: ioniaPasswordStorageKey);