diff --git a/Frontend/lib/mih_services/mih_mzansi_directory_services.dart b/Frontend/lib/mih_services/mih_mzansi_directory_services.dart index 710c2c3e..66ce7300 100644 --- a/Frontend/lib/mih_services/mih_mzansi_directory_services.dart +++ b/Frontend/lib/mih_services/mih_mzansi_directory_services.dart @@ -1,4 +1,5 @@ import 'dart:convert'; +import 'package:mzansi_innovation_hub/mih_components/mih_objects/bookmarked_business.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_objects/business_review.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_env.dart'; import 'package:supertokens_flutter/http.dart' as http; @@ -6,6 +7,10 @@ import 'package:supertokens_flutter/http.dart' as http; class MihMzansiDirectoryServices { final baseAPI = AppEnviroment.baseApiUrl; +//######################################################## +//# Business Ratings # +//######################################################## + Future getUserReviewOfBusiness( String app_id, String business_id, @@ -33,10 +38,9 @@ class MihMzansiDirectoryServices { List businessReviews = List.from( l.map((model) => BusinessReview.fromJson(model))); return businessReviews; - } else if (response.statusCode == 404){ + } else if (response.statusCode == 404) { return []; - } - else { + } else { throw Exception('failed to fetch Business Reviews'); } } @@ -128,4 +132,84 @@ class MihMzansiDirectoryServices { return response.statusCode; } } + +//######################################################## +//# Bookmarked Business # +//######################################################## + + Future getUserBookmarkOfBusiness( + String app_id, + String business_id, + ) async { + final response = await http.get(Uri.parse( + "${AppEnviroment.baseApiUrl}/mzansi-directory/bookmarked-business/$app_id/$business_id")); + // print(response.statusCode); + if (response.statusCode == 200) { + String body = response.body; + var jsonBody = jsonDecode(body); + BookmarkedBusiness? BookmarkedBus = BookmarkedBusiness.fromJson(jsonBody); + return BookmarkedBus; + } else { + return null; + } + } + + Future> getAllUserBookmarkedBusiness( + String app_id, + ) async { + final response = await http.get(Uri.parse( + "${AppEnviroment.baseApiUrl}/mzansi-directory/business-ratings/all/$app_id")); + if (response.statusCode == 200) { + Iterable l = jsonDecode(response.body); + List businessReviews = List.from( + l.map((model) => BusinessReview.fromJson(model))); + return businessReviews; + } else if (response.statusCode == 404) { + return []; + } else { + throw Exception('failed to fetch User Bookmarked Business'); + } + } + + Future addBookmarkedBusiness( + String app_id, + String business_id, + ) async { + var response = await http.post( + Uri.parse( + "${AppEnviroment.baseApiUrl}/mzansi-directory/bookmarked-business/insert/"), + headers: { + "Content-Type": "application/json; charset=UTF-8" + }, + body: jsonEncode({ + "app_id": app_id, + "business_id": business_id, + }), + ); + if (response.statusCode == 201) { + return response.statusCode; + } else { + return response.statusCode; + } + } + + Future deleteBookmarkedBusiness( + int idbookmarked_businesses, + ) async { + var response = await http.delete( + Uri.parse( + "${AppEnviroment.baseApiUrl}/mzansi-directory/bookmarked-business/delete/"), + headers: { + "Content-Type": "application/json; charset=UTF-8" + }, + body: jsonEncode({ + "idbookmarked_businesses": idbookmarked_businesses, + }), + ); + if (response.statusCode == 200) { + return response.statusCode; + } else { + return response.statusCode; + } + } }