iwa-panda2

Manage Weather Data by International Weather Agency (Version 2)
Log | Files | Refs | README

index.php (5539B)


      1 <?php
      2 
      3 require_once "utils/autoloader.php";
      4 
      5 require_once "routing/login.php";
      6 require_once "routing/user_add.php";
      7 require_once "routing/user.php";
      8 $db = new Lollipop\SQLDatabase("86.92.67.21", "friedel", "hailiwa", "panda");
      9 
     10 session_start();
     11 
     12 $templater = new Lollipop\Template(new Lollipop\TemplateMethods());
     13 $router = new Lollipop\Router($templater);
     14 
     15 //login
     16 $router->addRoute(["GET"], "/", "views/login.html");
     17 $router->addRoute(["POST"], "/login", $login);
     18 
     19 //css
     20 $router->addRoute(["GET"], "css/dashboard.css", "css/dashboard.css");
     21 $router->addRoute(["GET"], "css/hdata.css", "css/hdata.css");
     22 $router->addRoute(["GET"], "css/login.css", "css/login.css");
     23 $router->addRoute(["GET"], "css/map.css", "css/map.css");
     24 //logout
     25 $router->addRoute(["POST", "GET"], "/logout", $logout);
     26 
     27 $router->addRoute(["GET"], "/api/:data", function ($key) {
     28     include 'Controller/api/api.php';
     29     $weather_data = [];
     30     if($key['data'] == ':3jvl7yb5sRr80s6lTdeOyxV9VTQZkCPRp7bKOWKFWxfL2vhsU4Hhpgcmz9qe0zEk') {
     31         get_windchill();
     32         $db = new mysqli("86.92.67.21", "friedel", "hailiwa", "panda");
     33         // we halen data op van 2023-06-28 zodat er data word getoond op de homepage en op de map,
     34         // bij de echte applicatie waar de data elke dag wordt geupdatet zou hier CURDATE() komen te staan.
     35         $query = "SELECT city, min(wind_chill) as wind_chill, country
     36                   FROM retrieve_zoos
     37                   WHERE date = '2023-06-28'
     38                   group by city, country
     39                   ";
     40 
     41         $stmt = mysqli_prepare($db, $query);
     42         $stmt->execute();
     43         $data = $stmt->get_result();
     44 
     45         while ($row = $data->fetch_assoc()) {
     46             $weather_data[] = [
     47                 'windchill' => $row['wind_chill'],
     48                 'location' => $row['city'],
     49                 'country' => $row['country']
     50             ];
     51         }
     52         header('Content-Type: application/json');
     53         echo json_encode($weather_data);
     54     } elseif($key['data'] == ':ae9c50dc5cd58c538a0d6aedb17fffedcaffd568d22381dab3ae72baaeb24684') {
     55         get_graph();
     56         $weather_data = [];
     57         $db = new mysqli("86.92.67.21", "friedel", "hailiwa", "panda");
     58         $query = "SELECT distinct humidity, city, date_time
     59                 FROM retrieve_facilities
     60                 WHERE date(date_time) BETWEEN DATE_SUB(CURDATE(), INTERVAL 28 DAY) AND CURDATE()
     61               ";
     62         $stmt = mysqli_prepare($db, $query);
     63         $stmt->execute();
     64         $data = $stmt->get_result();
     65 
     66         while ($row = $data->fetch_assoc()) {
     67             $weather_data[] = [
     68                 'humidity' => $row['humidity'],
     69                 'location' => $row['city'],
     70                 'datetime' => $row['date_time']
     71             ];
     72         }
     73 
     74         header('Content-Type: application/json');
     75         echo json_encode($weather_data);
     76     }
     77 });
     78 
     79 if(isset($_SESSION['user_permissions']) && (in_array(1, $_SESSION['user_permissions']) || in_array(2, $_SESSION['user_permissions']))) {
     80     //user
     81     //add
     82     $router->addRoute(["GET"], "/user/add", "views/add_user.html");
     83     $router->addRoute(["POST"], "/user/add", $add_user);
     84 
     85     //dashboard
     86     $router->addRoute(["GET"], "/dashboard", function (&$vars) {
     87         $vars += $_SESSION;
     88         return "views/dashboard.html";
     89     });
     90 
     91     $router->addRoute(["GET"], "/map", "views/map.html");
     92     $router->addRoute(["GET"], "/hdata", function (&$vars) {
     93         $key = new Key();
     94         if (isset($_GET['downloadXml'])) {
     95             $filename = 'weather_data.xml'; // Specify the filename for the downloaded XML file
     96 
     97             // Set the appropriate headers for file download
     98             header('Content-Type: application/xml');
     99             header('Content-Disposition: attachment; filename="' . $filename . '"');
    100 
    101             // Retrieve the XML data
    102             $humidityXml = $key->retrieveHumidityTable('ae9c50dc5cd58c538a0d6aedb17fffedcaffd568d22381dab3ae72baaeb24684', true);
    103             $hDataXml = $key->retrieveHData('ae9c50dc5cd58c538a0d6aedb17fffedcaffd568d22381dab3ae72baaeb24684', true);
    104 
    105             // Output the XML data directly to the browser
    106             echo '<weather>' . $humidityXml . $hDataXml . '</weather>';
    107             exit();
    108         } else {
    109             $vars["table"] = $key->retrieveHData('3jvl/yb?sRr80s6lTdeOyxV9VTQZkCPRp/bKOWKFWxfL2vhsU4Hhpgcmz9qe0zEk');
    110         }
    111 
    112         return "views/hdata.html";
    113     });
    114     //user management for admins
    115     if(in_array(1, $_SESSION['user_permissions'])) {
    116         $router->addRoute(["GET"], "/user", $user_get);
    117 
    118         $router->addRoute(["POST"], "/user", $user_post);
    119 
    120         $router->addRoute(["GET"], "/user/search/:search_query", $user_query);
    121 
    122         $router->addRoute(["POST"], "/user/search", $user_search);
    123 
    124         $router->addRoute(["GET"], "/user/:primary_key/edit", $user_edit);
    125 
    126         $router->addRoute(["GET"], "/user/:primary_key/delete", $user_delete);
    127     }
    128 }
    129 
    130 // static files //
    131 
    132 $router->addRoute(['GET'], '/css/dashboard.css', "css/dashboard.css");
    133 $router->addRoute(['GET'], '/css/login.css', "css/login.css");
    134 $router->addRoute(['GET'], '/css/hdata.css', "css/hdata.css");
    135 $router->addRoute(['GET'], '/css/map.css', "css/map.css");
    136 $router->addRoute(['GET'], '/css/user.css', "css/user.css");
    137 
    138 $router->addRoute(['GET'], '/img/big-logo.png', "img/big-logo.png");
    139 $router->addRoute(['GET'], '/img/small_logo.png', "img/small_logo.png");
    140 
    141 $router->addRoute(['GET'], '/js/panda.js', "js/panda.js");
    142 $router->addRoute(['GET'], '/js/map.js', "js/map.js");
    143 
    144 $router->route();