51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /* Copyright (C) 2021  Alexander Rosenberg
 | |
|  * This file is AGPL v3. See LICENSE file for more information
 | |
|  */
 | |
| require 'library.php';
 | |
| require 'Album.php';
 | |
| 
 | |
| header("Content-Type: text/html");
 | |
| 
 | |
| $method = $_SERVER['REQUEST_METHOD'];
 | |
| 
 | |
| function get_albums() {
 | |
|     global $LIBRARY_INFO;
 | |
|     $albums = [];
 | |
|     $start = $_GET['start'];
 | |
|     $end = $_GET['end'];
 | |
|     if (!ctype_digit($start) || !ctype_digit($end) || $start > $end) {
 | |
|         echo 'Invalid range!';
 | |
|         http_response_code(400);
 | |
|         exit(0);
 | |
|     }
 | |
|     $len = count($LIBRARY_INFO['albums']);
 | |
|     if ($start >= $len) {
 | |
|         return array();
 | |
|     }
 | |
|     if ($end >= $len) {
 | |
|         $end  = $len - 1;
 | |
|     }
 | |
|     $albums = [];
 | |
|     for ($i = $start; $i <= $end; ++$i) {
 | |
|         $albums[] = new Album($LIBRARY_INFO['albums'][$i]);
 | |
|     }
 | |
|     return $albums;
 | |
| }
 | |
| 
 | |
| switch ($method) {
 | |
|     case 'HEAD':
 | |
|     case 'GET':
 | |
|         $albums = get_albums();
 | |
|         foreach ($albums as $album) {
 | |
|             echo $album->get_html();
 | |
|         }
 | |
|         break;
 | |
|     default:
 | |
|         echo 'Method not permitted';
 | |
|         http_response_code(405);
 | |
|         exit(0);
 | |
| }
 | |
| 
 | |
| ?>
 |