Begin a refactor of code to make it more reusable and get it out of main. Going to stop worrying about this for now though and just get the data formatted and presented well, then refactor once it's working correctly.

This commit is contained in:
2025-04-25 15:59:53 -07:00
parent c2995dac6d
commit b1d01c6915
2 changed files with 49 additions and 35 deletions

View File

@ -1,11 +1,10 @@
// Local
import '/var/secrets.dart';
import 'var/config.dart';
import '/var/config.dart';
import 'helpers/http.dart';
// Flutter / Dart
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';
void main() {
runApp(const MainApp());
@ -75,37 +74,7 @@ class _MainAppState extends State<MainApp> {
);
}
// How to guide:
// https://openweathermap.org/current#zip
Future<String> _hitOpenWeather(String zipCode, String? countryCode) async {
countryCode ??= "US";
String url =
'https://api.openweathermap.org/data/2.5/forecast'
'?zip=$zipCode,$countryCode'
'&units=imperial'
'&appid=$openWeatherKey';
if (debug) debugPrint(url);
http.Response response = await http.get(Uri.parse(url));
String data = "";
if (response.statusCode == 200) {
data = response.body;
var decodedData = jsonDecode(data);
//if (debug) debugPrint(decodedData.toString());
data = decodedData.toString();
} else {
if (debug) debugPrint(response.statusCode.toString());
}
return data;
}
_callOpenWeather() async {
weather = await _hitOpenWeather("47630", "US");
}
// Call the
_refreshWeather() {
var lastReloadSeconds = DateTime.now().difference(lastLoadTime).inSeconds;
if (debug) debugPrint("DEBUG: Refresh was $lastReloadSeconds seconds ago.");
@ -118,7 +87,7 @@ class _MainAppState extends State<MainApp> {
}
weather = loadText;
_callOpenWeather();
weather = loadWeather();
lastLoadTime = DateTime.now();
}
}