diff --git a/lib/main.dart b/lib/main.dart index 7c0e735..c49d1f5 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,58 @@ +import 'dart:convert'; import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; void main() { - runApp(const MaterialApp()); + runApp(const App()); +} + +class App extends StatelessWidget { + const App({super.key}); + + Future checkApiConnection() async { + final res = await http.get( + Uri.parse('http://localhost:5000/db'), + ); + + final Map data = jsonDecode(res.body); + return data['value'] == 777; + } + + @override + Widget build(BuildContext context) { + return MaterialApp( + home: Scaffold( + body: Center( + child: FutureBuilder( + future: checkApiConnection(), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const CircularProgressIndicator(); + } + if (snapshot.hasError) { + return const Text( + 'API SERVER CONNECTION FAILED', + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + color: Colors.red, + ), + ); + } + + return const Text( + 'API SERVER CONNECTED', + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.bold, + color: Colors.green, + letterSpacing: 1.2, + ), + ); + }, + ), + ), + ), + ); + } } diff --git a/pubspec.lock b/pubspec.lock index 64a517a..19c8a0c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -75,6 +75,22 @@ packages: description: flutter source: sdk version: "0.0.0" + http: + dependency: "direct main" + description: + name: http + sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 + url: "https://pub.dev" + source: hosted + version: "1.2.2" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" leak_tracker: dependency: transitive description: @@ -192,6 +208,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.1" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + url: "https://pub.dev" + source: hosted + version: "1.3.2" vector_math: dependency: transitive description: @@ -208,5 +232,13 @@ packages: url: "https://pub.dev" source: hosted version: "13.0.0" + web: + dependency: transitive + description: + name: web + sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" + url: "https://pub.dev" + source: hosted + version: "0.5.1" sdks: dart: ">=3.3.4 <4.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index 028303d..80396bb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -30,6 +30,7 @@ environment: dependencies: flutter: sdk: flutter + http: ^1.2.0 # The following adds the Cupertino Icons font to your application.