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