frontend groundwork
This commit is contained in:
		| @@ -1,54 +0,0 @@ | ||||
| import "package:anyway/structs/landmark.dart"; | ||||
| import "package:anyway/structs/linked_landmarks.dart"; | ||||
| import 'package:dio/dio.dart'; | ||||
|  | ||||
| final dio = Dio(); | ||||
|  | ||||
| // Future<List<Landmark>> fetchLandmarks() async { | ||||
| //   // final response = await http | ||||
| //   //     .get(Uri.parse('https://nav.kluster.moll.re/v1/destination/1')); | ||||
|  | ||||
| //   // if (response.statusCode == 200) { | ||||
| //     // If the server did return a 200 OK response, | ||||
| //     // then parse the JSON. | ||||
| //     List<Landmark> landmarks = [ | ||||
| //       // 48°51′29.6″N 2°17′40.2″E | ||||
| //       Landmark( | ||||
| //         name: "Eiffel Tower", | ||||
| //         location: [48.51296, 2.17402], | ||||
| //         type: LandmarkType(name: "Tower"), | ||||
| //         imageURL: "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a8/Tour_Eiffel_Wikimedia_Commons.jpg/1037px-Tour_Eiffel_Wikimedia_Commons.jpg" | ||||
| //         ), | ||||
| //       Landmark( | ||||
| //         name: "Notre Dame Cathedral", | ||||
| //         location: [48.8530, 2.3498], | ||||
| //         type: LandmarkType(name: "Monument"), | ||||
| //         imageURL: "https://upload.wikimedia.org/wikipedia/commons/thumb/f/f7/Notre-Dame_de_Paris%2C_4_October_2017.jpg/440px-Notre-Dame_de_Paris%2C_4_October_2017.jpg" | ||||
| //         ), | ||||
| //       Landmark( | ||||
| //         name: "Louvre palace", | ||||
| //         location: [48.8606, 2.3376], | ||||
| //         type: LandmarkType(name: "Museum"), | ||||
| //         imageURL: "https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Louvre_Museum_Wikimedia_Commons.jpg/540px-Louvre_Museum_Wikimedia_Commons.jpg" | ||||
| //         ), | ||||
| //       Landmark( | ||||
| //         name: "Pont-des-arts", | ||||
| //         location: [48.5130, 2.2015], | ||||
| //         type: LandmarkType(name: "Bridge"), | ||||
| //         imageURL: "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d1/Pont_des_Arts%2C_6e_Arrondissement%2C_Paris_%28HDR%29_20140320_1.jpg/560px-Pont_des_Arts%2C_6e_Arrondissement%2C_Paris_%28HDR%29_20140320_1.jpg"), | ||||
| //       Landmark( | ||||
| //         name: "Panthéon", | ||||
| //         location: [48.5046, 2.2046], | ||||
| //         type: LandmarkType(name: "Monument"), | ||||
| //         imageURL: "https://upload.wikimedia.org/wikipedia/commons/thumb/8/80/Pantheon_of_Paris_007.JPG/1280px-Pantheon_of_Paris_007.JPG" | ||||
| //         ), | ||||
| //     ]; | ||||
| //     // sleep 10 seconds | ||||
| //     await Future.delayed(Duration(seconds: 5)); | ||||
| //     return landmarks; | ||||
| //   // } else { | ||||
| //   //   // If the server did not return a 200 OK response, | ||||
| //   //   // then throw an exception. | ||||
| //   //   throw Exception('Failed to load destination'); | ||||
| //   // } | ||||
| // } | ||||
							
								
								
									
										45
									
								
								frontend/lib/utils/fetch_trip.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								frontend/lib/utils/fetch_trip.dart
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,45 @@ | ||||
| import 'package:dio/dio.dart'; | ||||
| import 'package:anyway/constants.dart'; | ||||
| import "package:anyway/structs/landmark.dart"; | ||||
| import "package:anyway/structs/trip.dart"; | ||||
| import "package:anyway/structs/preferences.dart"; | ||||
|  | ||||
| import "package:anyway/structs/linked_landmarks.dart"; | ||||
|  | ||||
| Dio dio = Dio( | ||||
|     BaseOptions( | ||||
|       baseUrl: API_URL_BASE, | ||||
|       connectTimeout: const Duration(seconds: 5), | ||||
|       receiveTimeout: const Duration(seconds: 60), | ||||
|       // api is notoriously slow | ||||
|       // headers: { | ||||
|       //   HttpHeaders.userAgentHeader: 'dio', | ||||
|       //   'api': '1.0.0', | ||||
|       // }, | ||||
|       contentType: Headers.jsonContentType, | ||||
|       responseType: ResponseType.json, | ||||
|   ), | ||||
| ); | ||||
|  | ||||
| Future<Trip> fetchTrip( | ||||
|   List<double> startPoint, | ||||
|   UserPreferences preferences, | ||||
| ) async { | ||||
|   final response = await dio.post( | ||||
|     "/trip/new", | ||||
|     data: { | ||||
|       // 'preferences': preferences.toJson(), | ||||
|       'start': [48,2.3] | ||||
|     } | ||||
|   ); | ||||
|  | ||||
|   // handle errors | ||||
|   if (response.statusCode != 200) { | ||||
|     throw Exception('Failed to load trip'); | ||||
|   } | ||||
|   if (response.data["error"] != null) { | ||||
|     throw Exception(response.data["error"]); | ||||
|   } | ||||
|   return Trip.fromJson(response.data); | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user