Skip to content

Commit a0a9a27

Browse files
committed
communityMissionProgress endpoint
1 parent 07118d6 commit a0a9a27

5 files changed

Lines changed: 65 additions & 1 deletion

File tree

lib/constants/ApiUrls.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,5 @@ class ApiUrls {
2020
static const String communitySpotlight = "communitySpotlight";
2121
static const String versionSearch = "version/search";
2222
static const String nmsfm = "nmsfm";
23+
static const String communityMissionProgress = "CommunityMissionProgress";
2324
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// To parse this JSON data, do
2+
//
3+
// final communityMissionProgressItemViewModel = communityMissionProgressItemViewModelFromJson(jsonString);
4+
5+
import 'dart:convert';
6+
7+
class CommunityMissionProgressItemViewModel {
8+
CommunityMissionProgressItemViewModel({
9+
this.missionId,
10+
this.tier,
11+
this.percentage,
12+
this.dateRecorded,
13+
this.hourSinceEpochInterval,
14+
});
15+
16+
final int missionId;
17+
final int tier;
18+
final int percentage;
19+
final DateTime dateRecorded;
20+
final int hourSinceEpochInterval;
21+
22+
factory CommunityMissionProgressItemViewModel.fromRawJson(String str) =>
23+
CommunityMissionProgressItemViewModel.fromJson(json.decode(str));
24+
25+
factory CommunityMissionProgressItemViewModel.fromJson(
26+
Map<String, dynamic> json) =>
27+
CommunityMissionProgressItemViewModel(
28+
missionId: json["missionId"],
29+
tier: json["tier"],
30+
percentage: json["percentage"],
31+
dateRecorded: DateTime.parse(json["dateRecorded"]),
32+
hourSinceEpochInterval: json["hourSinceEpochInterval"],
33+
);
34+
}

lib/services/api/communityApiService.dart

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import 'package:assistantapps_flutter_common/assistantapps_flutter_common.dart';
44

55
import '../../constants/ApiUrls.dart';
66
import '../../contracts/generated/communityLinkViewModel.dart';
7+
import '../../contracts/generated/communityMissionProgressItemViewModel.dart';
78
import '../../contracts/generated/communitySpotlightViewModel.dart';
89
import '../../contracts/generated/onlineMeetup2020SubmissionViewModel.dart';
910
import '../../integration/dependencyInjection.dart';
@@ -70,4 +71,31 @@ class CommunityApiService extends BaseApiService {
7071
false, List.empty(growable: true), exception.toString());
7172
}
7273
}
74+
75+
Future<ResultWithValue<List<CommunityMissionProgressItemViewModel>>>
76+
getAllCommunityMissionProgressData(
77+
DateTime startDate, DateTime endDate) async {
78+
String url = ApiUrls.communityMissionProgress +
79+
'/' +
80+
simpleDate(startDate) +
81+
'/' +
82+
simpleDate(endDate);
83+
try {
84+
final response = await apiGet(url);
85+
if (response.hasFailed) {
86+
return ResultWithValue<List<CommunityMissionProgressItemViewModel>>(
87+
false, List.empty(growable: true), response.errorMessage);
88+
}
89+
final List newsList = json.decode(response.value);
90+
List<CommunityMissionProgressItemViewModel> links = newsList
91+
.map((r) => CommunityMissionProgressItemViewModel.fromJson(r))
92+
.toList();
93+
return ResultWithValue(true, links, '');
94+
} catch (exception) {
95+
getLog().e(
96+
"getAllCommunityMissionProgressData Api Exception: ${exception.toString()}");
97+
return ResultWithValue<List<CommunityMissionProgressItemViewModel>>(
98+
false, List.empty(growable: true), exception.toString());
99+
}
100+
}
73101
}

pubspec.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -564,7 +564,7 @@ packages:
564564
source: hosted
565565
version: "2.2.9"
566566
fl_chart:
567-
dependency: transitive
567+
dependency: "direct main"
568568
description:
569569
name: fl_chart
570570
url: "https://pub.dartlang.org"

pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ dependencies:
5353
expandable: 5.0.1
5454
ff_stars: 1.0.0
5555
file_picker: 4.6.0
56+
fl_chart: 0.51.0
5657
flutter_local_notifications: 9.5.3+1
5758
flutter_simple_treeview: 3.0.1
5859
flutter_speed_dial: 6.0.0

0 commit comments

Comments
 (0)