pre final ad services and correct call the services async

This commit is contained in:
2026-02-20 09:51:03 +01:00
parent 8349e2b496
commit 46f7416781
7 changed files with 479 additions and 207 deletions

View File

@@ -1,70 +1,17 @@
import '../models/econtrol_model.dart';
import 'dart:convert';
import 'package:http/http.dart' as http;
class EControlService {
late List<EControlModel> eControlData;
Future<void> getEControlData(double latitude, double longitude, String fuelType) async {
// Simulate fetching data from an API or database
await Future.delayed(Duration(seconds: 2)); // Simulate network delay
eControlData = [
EControlModel(
id: 1,
name: 'E-Control Station 1',
location: Location(
latitude: 47.93875449671056,
longitude: 13.762706553431048,
),
contact: Contact(
telephone: '+43 123 456789',
mail: '',
website: 'https://www.econtrol.at',
),
openingHours: [
OpeningHours(
day: 'Tuesday',
label: '08:00',
order: 1,
from: '08:00',
to: '18:00',
),
],
offerInformation: OfferInformation(
service: true,
selfService: true,
unattended: true,
),
paymentMethods: PaymentMethods(
cash: true,
debitCard: true,
creditCard: false,
others: '',
),
paymentArrangements: PaymentArrangements(
cooperative: false,
clubCard: true,
),
position: 1,
open: true,
distance: 0.5,
prices: [Prices(fuelType: 'DIE', amount: 1.445, label: 'Diesel')],
),
];
Future<List<dynamic>> getEControlData(
double latitude,
double longitude,
String fuelType,
) async {
// REST Service... URL
String apiUrl = 'https://api.e-control.at/sprit/1.0/search/gas-stations/by-address?latitude=$latitude&longitude=$longitude&fuelType=$fuelType&includeClosed=false';
try {
var response = await http.get(Uri.parse(apiUrl));
if (response.statusCode == 200) {
eControlData.clear(); // Clear existing data before adding new results
// Parse the response and update eControlData
print('E-Control API response: ${response.body}');
eControlData = (response.body as List).map((json) => EControlModel.fromJson(json)).toList();
print('E-Control data parsed successfully: ${eControlData.length} stations found');
}
} catch (e) {
print('Error fetching E-Control data: $e');
}
String apiUrl =
'https://api.e-control.at/sprit/1.0/search/gas-stations/by-address?latitude=$latitude&longitude=$longitude&fuelType=$fuelType&includeClosed=false';
var response = await http.get(Uri.parse(apiUrl));
print('${response.statusCode}');
return jsonDecode(response.body);
}
}