Sixtens hemsida Uppgifter Blogg Om

VED House bokningssystem

Gå till sida

Källkod

api/

database.php

api.php

ved/

monthBookingData.php

openingHoursException.php

bookingData.php

dayTimeframes.php

bookings.php

admin/

revokeToken.php

authorization.php

login.php

modules/

vedDatabase.php

utility.php

gyar/

log.php

auth/

revokeToken.php

authorization.php

login.php

station/

settings.php

log.php

modules/

gyarDatabase.php

databaseConnection.php

database.php

utility.php

credentials.json

weather/

latest.php

old.php

admin/

index.html

changeTimetable.html

login.html

js/

login.js

modules.js

admin.js

header.js

changeTimetable.js

cron/

vedClearExpiredTokens.php

api/ved/dayTimeframes.php

1 lines
<?php
# dayTimeframes.php
# API endpoint
# Beräknar tidsramarna på en specifik dag. Används när en bokning ska läggas.

require_once "ved/modules/utility.php";

$functionGET = function () {
  require_once 
"ved/modules/vedDatabase.php";

  
# Hämtar öppettider för den specifierade dagen.
  
$dateData $db->query(
    
"SELECT
ROUND(TIME_TO_SEC((CASE WHEN e.exceptionId IS NULL THEN w.openingTime ELSE e.openingTime END))/60) openingTimeMinutes,
ROUND(TIME_TO_SEC(TIMEDIFF((CASE WHEN e.exceptionId IS NULL THEN w.closingTime ELSE e.closingTime END), (CASE WHEN e.exceptionId IS NULL THEN w.openingTime ELSE e.openingTime END)))/60) AS minutesOpen
FROM weekdayOpenHours w
LEFT JOIN openHoursException e
ON :date >= e.date1 AND :date <= e.date2
WHERE w.weekdayId = WEEKDAY(:date)"
,
    array(
"date" => $_GET["date"])
  );

  
# Hämtar alla bokningar på den dagen.
  
$bookings $db->queryAll(
    
"SELECT ROUND(TIME_TO_SEC(b.datetime)/60) timeMinutes, b.adultCount + b.childCount peopleCount FROM booking b WHERE datetime BETWEEN :date AND ADDDATE(:date, 1) AND NOT removed;",
    array(
"date" => $_GET["date"])
  );

  
# Hämtar restauranginställningar.
  
$settings $db->query("SELECT seatCount, bookingInterval, bookingLength FROM restaurantSettings;");

  
# Delar upp dagen i tidsramar. Varje tidsram lagrar antalet platser som används.
  
$timeframes create_time_frames($dateData$bookings$settings);
  
# Kollar framåt för varje tidsram och beräknar max hur många platser finns tillgängliga en hel bokningslängd framåt.
  
$bookableFrames create_bookable_time_frames($dateData$timeframes$settings);

  
$data = array("timeframes" => $bookableFrames);
  return 
$data;
};

$api = new APIEndpoint();

$httpGET = new APIMethod("GET"$functionGET);
$httpGET->setRequiredGETParameters(array("date"));
$api->addMethod($httpGET);

return 
$api;
?>