Skip to content
Snippets Groups Projects
Commit 5c3f28b7 authored by Sara Savanovic Djordjevic's avatar Sara Savanovic Djordjevic
Browse files

add: getQuery()

parent b0240876
No related branches found
No related tags found
No related merge requests found
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import '../consts.dart';
/// getQuery requests the ????? query from the server
Future<String> getQuery() async {
try {
// Custom HTTP client
HttpClient client = HttpClient()
..badCertificateCallback = // NB: temporary disable SSL certificate validation
(X509Certificate cert, String host, int port) => true;
// Request query from server API
var request = await client.getUrl(Uri.parse(serverURI + satEndpoint));
var response = await request.close(); // Close response body at end of function
// Parse response body to JSON if request is ok
if (response.statusCode == 200) {
var responseBody = await utf8.decodeStream(response); // Parse query from response
if (responseBody.isNotEmpty) {
var queryString = json.decode(responseBody);
return queryString;
} else {
throw Exception('Failed to decode query string');
}
} else {
throw Exception('Failed to fetch query string: Status code ${response.statusCode}');
}
} catch (e) {
print('Error fetching query string: $e');
throw Exception('Failed to fetch query string: ${e.toString()}');
}
}
......@@ -6,6 +6,7 @@ import 'package:latlong2/latlong.dart';
const String port = "8443";
const String serverURI = "https://127.0.0.1:$port/";
const String mapEndpoint = "update_map";
const String satEndpoint = "get_sat_query";
const int fetchInterval = 60; // Fetch marker data every n minutes
// Map center
......
import 'dart:async';
import 'package:flutter/material.dart';
import 'widgets/map_widget.dart';
import 'marker_handler/marker_data.dart';
import 'api_handler//marker_data.dart';
import 'consts.dart';
import 'marker_handler/get_markers.dart';
import 'api_handler/get_markers.dart';
class DefaultPage extends StatefulWidget {
const DefaultPage({super.key});
......
import 'package:flutter/material.dart';
import '../marker_handler/marker_data.dart';
import '../api_handler/marker_data.dart';
import '../consts.dart';
import 'quick_view_chart.dart';
import 'stat_charts.dart';
......
import 'package:flutter/material.dart';
import '../marker_handler/marker_data.dart';
import '../api_handler/marker_data.dart';
import '../consts.dart';
import 'package:flutter_map/flutter_map.dart';
import 'package:latlong2/latlong.dart';
......
import 'package:flutter/material.dart';
import '../marker_handler/marker_data.dart';
import '../api_handler/marker_data.dart';
import 'package:flutter_map/flutter_map.dart';
import 'package:latlong2/latlong.dart';
......
......@@ -2,6 +2,7 @@ from flask import Flask
from http.server import HTTPServer, BaseHTTPRequestHandler
from consts import SSL_CERT_PATH, SSL_KEY_PATH, HOST, PORT
from map.get_markers import get_all_markers
from map.get_sat_query import get_sat_query
from APIs.get_weather import get_weather
import ssl
import keyboard
......@@ -41,6 +42,9 @@ class IceHTTP(BaseHTTPRequestHandler):
elif self.path == '/get_valid_markers': # NB: should be POST?
get_all_markers(self, self.cursor, True) # Get only valid markers
elif self.path == '/get_sat_query':
get_sat_query(self) # Get satellite query
def do_POST(self):
if self.path == '/get_weather_data':
get_weather(self)
......
def get_sat_query(self):
query = 'https://services.sentinel-hub.com/ogc/wms/f202d497-32bf-488c-b034-e5af13f3a597?REQUEST=GetMap&BBOX=1181869.3313,8566983.8541,1205106.1879,8612106.4233&LAYERS=TRUECOLTEST&MAXCC=0&WIDTH=183&HEIGHT=320&FORMAT=image/jpeg&TIME=2020-12-01/2024-02-26'
# Set headers
self.send_response(200)
self.send_header("Content-type", "application/json")
self.end_headers()
# Write marker data to response object
self.wfile.write(query.encode('utf-8'))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment