Skip to content

Commit 8d07151

Browse files
authored
Merge pull request #43 from ashtanko/feature/roadster
Implement Roadster
2 parents 364579a + 2590bc0 commit 8d07151

File tree

105 files changed

+7678
-101
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

105 files changed

+7678
-101
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -126,13 +126,4 @@ jobs:
126126
profile: Nexus 6
127127
script: |
128128
flutter pub get
129-
flutter test integration_test/app_test.dart --flavor dev
130-
flutter test integration_test/appearance_test.dart --flavor dev
131-
flutter test integration_test/launch_navigation_test.dart --flavor dev
132-
flutter test integration_test/launch_test.dart --flavor dev
133-
flutter test integration_test/launches_mock_test.dart --flavor dev
134-
flutter test integration_test/launches_test.dart --flavor dev
135-
flutter test integration_test/settings_test.dart --flavor dev
136-
flutter test integration_test/rockets_screen_integration_test.dart --flavor dev
137-
flutter test integration_test/rocket_screen_test.dart --flavor dev
138-
flutter test integration_test/rockets_integration_live_test.dart --flavor dev
129+
flutter test integration_test --flavor dev

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ integration_test:
6464
flutter test integration_test --flavor dev
6565

6666
screenshot_test:
67-
flutter drive --driver=test_driver/integration_test.dart --target=integration_test/settings_screenshot_test.dart --flavor dev
67+
flutter drive --driver=test_driver/integration_test.dart --target=screenshot_test/settings_screenshot_test.dart --flavor dev
6868

6969
# upgrade_deps:
7070
# flutter pub upgrade --major-versions
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import 'package:dio/dio.dart';
2+
import 'package:flutter_bloc_app_template/data/network/api_result.dart';
3+
import 'package:flutter_bloc_app_template/data/network/model/roadster/network_roadster_model.dart';
4+
import 'package:flutter_bloc_app_template/data/network/service/roadster/roadster_service.dart';
5+
6+
abstract class RoadsterDataSource {
7+
Future<ApiResult<NetworkRoadsterModel>> getRoadster();
8+
}
9+
10+
class RoadsterNetworkDataSource implements RoadsterDataSource {
11+
RoadsterNetworkDataSource(this._service);
12+
13+
final RoadsterService _service;
14+
15+
@override
16+
Future<ApiResult<NetworkRoadsterModel>> getRoadster() async {
17+
try {
18+
final result = await _service.fetchRoadster();
19+
return ApiResult.success(result);
20+
} on DioException catch (e) {
21+
return ApiResult.error(e.message ?? e.toString());
22+
} catch (e) {
23+
return Future.value(ApiResult.error(e.toString()));
24+
}
25+
}
26+
}

lib/data/network/model/core/network_core_model.freezed.dart

Lines changed: 0 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import 'package:freezed_annotation/freezed_annotation.dart';
2+
3+
part 'network_roadster_model.freezed.dart';
4+
part 'network_roadster_model.g.dart';
5+
6+
@freezed
7+
abstract class NetworkRoadsterModel with _$NetworkRoadsterModel {
8+
const factory NetworkRoadsterModel({
9+
String? name,
10+
@JsonKey(name: 'launch_date_utc') String? launchDateUtc,
11+
@JsonKey(name: 'launch_date_unix') int? launchDateUnix,
12+
@JsonKey(name: 'launch_mass_kg') int? launchMassKg,
13+
@JsonKey(name: 'launch_mass_lbs') int? launchMassLbs,
14+
@JsonKey(name: 'norad_id') int? noradId,
15+
@JsonKey(name: 'epoch_jd') double? epochJd,
16+
@JsonKey(name: 'orbit_type') String? orbitType,
17+
@JsonKey(name: 'apoapsis_au') double? apoapsisAu,
18+
@JsonKey(name: 'periapsis_au') double? periapsisAu,
19+
@JsonKey(name: 'semi_major_axis_au') double? semiMajorAxisAu,
20+
double? eccentricity,
21+
double? inclination,
22+
double? longitude,
23+
@JsonKey(name: 'periapsis_arg') double? periapsisArg,
24+
@JsonKey(name: 'period_days') double? periodDays,
25+
@JsonKey(name: 'speed_kph') double? speedKph,
26+
@JsonKey(name: 'speed_mph') double? speedMph,
27+
@JsonKey(name: 'earth_distance_km') double? earthDistanceKm,
28+
@JsonKey(name: 'earth_distance_mi') double? earthDistanceMi,
29+
@JsonKey(name: 'mars_distance_km') double? marsDistanceKm,
30+
@JsonKey(name: 'mars_distance_mi') double? marsDistanceMi,
31+
@JsonKey(name: 'flickr_images') List<String>? flickrImages,
32+
String? wikipedia,
33+
String? video,
34+
String? details,
35+
String? id,
36+
}) = _NetworkRoadsterModel;
37+
38+
const NetworkRoadsterModel._();
39+
40+
factory NetworkRoadsterModel.fromJson(Map<String, dynamic> json) =>
41+
_$NetworkRoadsterModelFromJson(json);
42+
}

0 commit comments

Comments
 (0)