From 9076765aae6c6add762b918bc7cc73aec3feeee9 Mon Sep 17 00:00:00 2001 From: drake Date: Thu, 13 Jun 2024 18:09:22 -0500 Subject: [PATCH] update api single business --- fbla-api/lib/fbla_api.dart | 2 +- fbla_ui/lib/api_logic.dart | 14 +++++++++----- fbla_ui/lib/shared.dart | 19 +++++++++++-------- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/fbla-api/lib/fbla_api.dart b/fbla-api/lib/fbla_api.dart index ddb88fb..d5b50da 100644 --- a/fbla-api/lib/fbla_api.dart +++ b/fbla-api/lib/fbla_api.dart @@ -218,7 +218,7 @@ void main() async { ) ) FROM businesses b - LEFT JOIN listings l ON b.id = l.business_id + LEFT JOIN listings l ON b.id = l."businessId" WHERE b.id = $business GROUP BY b.id; '''))[0][0]; diff --git a/fbla_ui/lib/api_logic.dart b/fbla_ui/lib/api_logic.dart index 8025545..41c2017 100644 --- a/fbla_ui/lib/api_logic.dart +++ b/fbla_ui/lib/api_logic.dart @@ -39,10 +39,15 @@ Future fetchBusinessDataOverview() async { Map> groupedBusinesses = {}; for (String stringType in decodedResponse.keys) { - groupedBusinesses.addAll({ - JobType.values.byName(decodedResponse[stringType]): - decodedResponse.map((json) => Business.fromJson(json)).toList() - }); + List businesses = []; + + for (Map map in decodedResponse[stringType]) { + Business business = Business.fromJson(map); + businesses.add(business); + } + + groupedBusinesses + .addAll({JobType.values.byName(stringType): businesses}); } // for (JobType type in decodedResponse.keys) { @@ -51,7 +56,6 @@ Future fetchBusinessDataOverview() async { // decodedResponse.map((json) => Business.fromJson(json)).toList() // }); // } - print(groupedBusinesses); return groupedBusinesses; } else { return 'Error ${response.statusCode}! Please try again later!'; diff --git a/fbla_ui/lib/shared.dart b/fbla_ui/lib/shared.dart index 58e5ac9..cf4c5da 100644 --- a/fbla_ui/lib/shared.dart +++ b/fbla_ui/lib/shared.dart @@ -118,14 +118,17 @@ class Business { this.listings}); factory Business.fromJson(Map json) { - List? listings = []; - for (int i = 0; i < json['listings'].length; i++) { - listings.add(JobListing( - name: json['listings']['name'], - description: json['listings']['description'], - type: json['listings']['type'], - wage: json['listings']['wage'], - link: json['listings']['link'])); + List? listings; + if (json['listings'] != null) { + listings = []; + for (int i = 0; i < json['listings'].length; i++) { + listings.add(JobListing( + name: json['listings']['name'], + description: json['listings']['description'], + type: json['listings']['type'], + wage: json['listings']['wage'], + link: json['listings']['link'])); + } } return Business(