NEW: Mzansi Wallet Provider Setup

This commit is contained in:
2025-10-08 13:35:47 +02:00
parent 0edbfadc90
commit 7373a1b8cb
8 changed files with 215 additions and 166 deletions

View File

@@ -5,6 +5,8 @@ import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_objects/loyalty_card.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import 'package:flutter/material.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_wallet_provider.dart';
import 'package:provider/provider.dart';
import 'package:supertokens_flutter/http.dart' as http;
import '../mih_components/mih_pop_up_messages/mih_error_message.dart';
@@ -14,45 +16,39 @@ import '../mih_config/mih_env.dart';
class MIHMzansiWalletApis {
final baseAPI = AppEnviroment.baseApiUrl;
/// This function is used to fetch a list of loyalty cards for a user.
///
/// Patameters: app_id .
///
/// Returns List<PatientQueue>.
static Future<List<MIHLoyaltyCard>> getLoyaltyCards(
static Future<void> getLoyaltyCards(
String app_id,
BuildContext context,
) async {
final response = await http.get(Uri.parse(
"${AppEnviroment.baseApiUrl}/mzasni-wallet/loyalty-cards/$app_id"));
if (response.statusCode == 200) {
Iterable l = jsonDecode(response.body);
List<MIHLoyaltyCard> patientQueue = List<MIHLoyaltyCard>.from(
List<MIHLoyaltyCard> myCards = List<MIHLoyaltyCard>.from(
l.map((model) => MIHLoyaltyCard.fromJson(model)));
return patientQueue;
context.read<MzansiWalletProvider>().setLoyaltyCards(cards: myCards);
// return myCards;
} else {
throw Exception('failed to fatch loyalty cards');
}
}
/// This function is used to fetch a list of loyalty cards for a user.
///
/// Patameters: app_id .
///
/// Returns List<PatientQueue>.
static Future<List<MIHLoyaltyCard>> getFavouriteLoyaltyCards(
static Future<void> getFavouriteLoyaltyCards(
String app_id,
BuildContext context,
) async {
//print("Patien manager page: $endpoint");
final response = await http.get(Uri.parse(
"${AppEnviroment.baseApiUrl}/mzasni-wallet/loyalty-cards/favourites/$app_id"));
if (response.statusCode == 200) {
Iterable l = jsonDecode(response.body);
List<MIHLoyaltyCard> patientQueue = List<MIHLoyaltyCard>.from(
List<MIHLoyaltyCard> myCards = List<MIHLoyaltyCard>.from(
l.map((model) => MIHLoyaltyCard.fromJson(model)));
return patientQueue;
} else {
throw Exception('failed to fatch loyalty cards');
context.read<MzansiWalletProvider>().setFavouriteCards(cards: myCards);
}
// else {
// throw Exception('failed to fatch loyalty cards');
// }
}
/// This function is used to Delete loyalty card from users mzansi wallet.
@@ -80,6 +76,11 @@ class MIHMzansiWalletApis {
//print("Here4");
//print(response.statusCode);
context.pop();
if (response.statusCode == 200) {
context
.read<MzansiWalletProvider>()
.deleteLoyaltyCard(cardId: idloyalty_cards);
}
return response.statusCode;
// if (response.statusCode == 200) {
// Navigator.of(context).pop();
@@ -165,6 +166,7 @@ class MIHMzansiWalletApis {
static Future<int> updateLoyaltyCardAPICall(
AppUser signedInUser,
int idloyalty_cards,
String shopName,
String favourite,
int priority_index,
String nickname,
@@ -187,6 +189,19 @@ class MIHMzansiWalletApis {
}),
);
context.pop();
if (response.statusCode == 200) {
context.read<MzansiWalletProvider>().editLoyaltyCard(
updatedCard: MIHLoyaltyCard(
idloyalty_cards: idloyalty_cards,
app_id: signedInUser.app_id,
shop_name: shopName,
card_number: card_number,
favourite: favourite,
priority_index: priority_index,
nickname: nickname,
),
);
}
return response.statusCode;
}