Add files via upload
This commit is contained in:
		| @@ -28,7 +28,16 @@ | ||||
| 		public static function getListSessions($hall,$cinema,$date){ | ||||
| 			$bd = new SessionDAO('complucine'); | ||||
| 			if($bd ) { | ||||
| 				return $bd->getAllSessions($hall, $cinema, $date); | ||||
| 				if($date) | ||||
| 					return $bd->getAllSessions($hall, $cinema, $date, null); | ||||
| 				else | ||||
| 					return $bd->getAllSessions($hall, $cinema, null, null); | ||||
| 			} | ||||
| 		} | ||||
| 		public static function getListSessionsBetween2Dates($hall,$cinema,$start,$end){ | ||||
| 			$bd = new SessionDAO('complucine'); | ||||
| 			if($bd ) { | ||||
| 				return $bd->getAllSessions($hall, $cinema, $start, $end); | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
|   | ||||
| @@ -62,24 +62,43 @@ | ||||
| 		} | ||||
| 		 | ||||
| 		//Returns a query to get all the session's data. | ||||
| 		public function getAllSessions($hall, $cinema, $date){ | ||||
| 			$date = date('Y-m-d', strtotime( $date ) );  | ||||
| 		public function getAllSessions($hall, $cinema, $date, $end){ | ||||
| 			if($end){ | ||||
|    | ||||
| 				$date = $date->format("Y-m-d");  | ||||
| 				$end = $end->format("Y-m-d");   | ||||
| 				 | ||||
| 				// su output es date: 2021-05-30 end: 2021-07-11 | ||||
| 				$sql = sprintf( "SELECT * FROM session WHERE  | ||||
| 								idcinema = '%s' AND idhall = '%s' AND date BETWEEN '%s' AND '%s' ORDER BY start_time ASC;",  | ||||
| 								$cinema, $hall, $date, $end);				 | ||||
| 			} | ||||
| 			 | ||||
| 			 | ||||
| 			if($date && !$end){ | ||||
| 				$date = date('Y-m-d', strtotime( $date ) );  | ||||
| 				 | ||||
| 				$sql = sprintf( "SELECT * FROM session WHERE  | ||||
| 								idcinema = '%s' AND idhall = '%s' AND date = '%s' ORDER BY start_time ASC;",  | ||||
| 								$cinema, $hall, $date);	 | ||||
| 			}else{ | ||||
| 				$sql = sprintf( "SELECT * FROM session WHERE  | ||||
| 								idcinema = '%s' AND idhall = '%s' ORDER BY start_time ASC;",  | ||||
| 								$cinema, $hall);	 | ||||
| 			} | ||||
| 			 | ||||
| 			$sql = sprintf( "SELECT * FROM session WHERE  | ||||
| 							idcinema = '%s' AND idhall = '%s' AND date = '%s' ORDER BY start_time ASC;",  | ||||
| 							$cinema, $hall, $date);	 | ||||
| 			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database'); | ||||
| 			 | ||||
| 			$sessions = null; | ||||
| 			 | ||||
| 			while($fila=mysqli_fetch_array($resul)){ | ||||
| 			while($fila=$resul->fetch_assoc()){ | ||||
| 				$sessions[] = $this->loadSession($fila["id"], $fila["idfilm"], $fila["idhall"], $fila["idcinema"], $fila["date"], $fila["start_time"], $fila["seat_price"], $fila["format"], $fila["seats_full"]); | ||||
| 			} | ||||
| 			mysqli_free_result($resul); | ||||
| 			 | ||||
| 			return $sessions; | ||||
| 		} | ||||
|  | ||||
| 		 | ||||
| 		public function getSessions_Film_Cinema($idFiml, $idCinema){ | ||||
| 			$sql = sprintf( "SELECT * FROM session WHERE session.idfilm = '%d' AND session.idcinema = '%d' ", $idFiml, $idCinema); | ||||
| 			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database'); | ||||
|   | ||||
| @@ -1,17 +1,12 @@ | ||||
| <?php | ||||
| require_once __DIR__.'/includes/config.php'; | ||||
|  | ||||
| use es\ucm\fdi\aw\eventos\Evento; | ||||
| use es\ucm\fdi\aw\Aplicacion as App; | ||||
| use es\ucm\fdi\aw\http\ContentTypeNoSoportadoException; | ||||
| use es\ucm\fdi\aw\http\ParametroNoValidoException; | ||||
| require_once('../assets/php/config.php'); | ||||
| require_once('./Evento.php'); | ||||
|  | ||||
| // Procesamos la cabecera Content-Type | ||||
| $contentType= $_SERVER['CONTENT_TYPE'] ?? 'application/json'; | ||||
| $contentType = strtolower(str_replace(' ', '', $contentType)); | ||||
|  | ||||
|  | ||||
|  | ||||
| // Verificamos corresponde con uno de los tipos soportados | ||||
| $acceptedContentTypes = array('application/json;charset=utf-8', 'application/json'); | ||||
| $found = false; | ||||
| @@ -23,7 +18,7 @@ foreach ($acceptedContentTypes as $acceptedContentType) { | ||||
| } | ||||
|  | ||||
| if (!$found) { | ||||
|     throw new ContentTypeNoSoportadoException('Este servicio REST sólo soporta el content-type application/json'); | ||||
|     // throw new ContentTypeNoSoportadoException('Este servicio REST sólo soporta el content-type application/json'); | ||||
| } | ||||
|  | ||||
| $result = null; | ||||
| @@ -44,7 +39,8 @@ switch($_SERVER['REQUEST_METHOD']) { | ||||
|             // Comprobamos si es una lista de eventos entre dos fechas -> eventos.php?start=XXXXX&end=YYYYY | ||||
|             $start = filter_input(INPUT_GET, 'start', FILTER_VALIDATE_REGEXP,  array("options" => array("regexp"=>"/\d{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))/"))); | ||||
|             $end = filter_input(INPUT_GET, 'end', FILTER_VALIDATE_REGEXP, array("options" => array("default" => null, "regexp"=>"/\d{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))/"))); | ||||
|             if ($start) {               | ||||
|             if ($start) {      | ||||
| 					 | ||||
|                 $startDateTime = $start . ' 00:00:00'; | ||||
|                 $endDateTime = $end; | ||||
|                 if ($end) { | ||||
| @@ -52,14 +48,14 @@ switch($_SERVER['REQUEST_METHOD']) { | ||||
|                 } | ||||
|                 $result = Evento::buscaEntreFechas(1, $startDateTime, $endDateTime); | ||||
|             } else { | ||||
| 				 | ||||
|                 // Comprobamos si es una lista de eventos completa | ||||
|                 $result = Evento::buscaTodosEventos(1); // HACK: normalmente debería de ser App::getSingleton()->idUsuario(); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         // Generamos un array de eventos en formato JSON | ||||
|         $json = json_encode($result, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK); | ||||
|  | ||||
| 		 | ||||
|         http_response_code(200); // 200 OK | ||||
|         header('Content-Type: application/json; charset=utf-8'); | ||||
|         header('Content-Length: ' . mb_strlen($json)); | ||||
| @@ -70,18 +66,17 @@ switch($_SERVER['REQUEST_METHOD']) { | ||||
|     case 'POST': | ||||
|         // 1. Leemos el contenido que nos envían | ||||
|         $entityBody = file_get_contents('php://input'); | ||||
|  | ||||
|         // 2. Verificamos que nos envían un objeto | ||||
|         $dictionary = json_decode($entityBody); | ||||
|         if (!is_object($dictionary)) { | ||||
|             throw new ParametroNoValidoException('El cuerpo de la petición no es valido'); | ||||
|             //throw new ParametroNoValidoException('El cuerpo de la petición no es valido'); | ||||
|         } | ||||
|          | ||||
|         // 3. Reprocesamos el cuerpo de la petición como un array PHP | ||||
|         $dictionary = json_decode($entityBody, true); | ||||
|         $dictionary['userId'] = 1;// HACK: normalmente debería de ser App::getSingleton()->idUsuario(); | ||||
|         $e = Evento::creaDesdeDicionario($dictionary); | ||||
|         error_log("hmmm"); | ||||
|          | ||||
|         // 4. Guardamos el evento en BD | ||||
|         $result = Evento::guardaOActualiza($e); | ||||
|          | ||||
| @@ -96,6 +91,7 @@ switch($_SERVER['REQUEST_METHOD']) { | ||||
|  | ||||
|     break; | ||||
|     case 'PUT': | ||||
| 		error_log("PUT"); | ||||
|         // 1. Comprobamos si es una consulta de un evento concreto -> eventos.php?idEvento=XXXXX | ||||
|         $idEvento = filter_input(INPUT_GET, 'idEvento', FILTER_VALIDATE_INT); | ||||
|         // 2. Leemos el contenido que nos envían | ||||
| @@ -103,9 +99,10 @@ switch($_SERVER['REQUEST_METHOD']) { | ||||
|         // 3. Verificamos que nos envían un objeto | ||||
|         $dictionary = json_decode($entityBody); | ||||
|         if (!is_object($dictionary)) { | ||||
|             throw new ParametroNoValidoException('El cuerpo de la petición no es valido'); | ||||
|             //throw new ParametroNoValidoException('El cuerpo de la petición no es valido'); | ||||
|         }     | ||||
|  | ||||
| 		 | ||||
| 		 | ||||
|         // 4. Reprocesamos el cuerpo de la petición como un array PHP | ||||
|         $dictionary = json_decode($entityBody, true); | ||||
|         $e = Evento::buscaPorId($idEvento); | ||||
| @@ -132,8 +129,6 @@ switch($_SERVER['REQUEST_METHOD']) { | ||||
|         header('Content-Length: 0'); | ||||
|         break; | ||||
|     default: | ||||
|         throw new MetodoNoSoportadoException($_SERVER['REQUEST_METHOD']. ' no está soportado'); | ||||
|         //throw new MetodoNoSoportadoException($_SERVER['REQUEST_METHOD']. ' no está soportado'); | ||||
|     break; | ||||
| 	 | ||||
| 	 | ||||
| } | ||||
| } | ||||
| @@ -1,107 +1,108 @@ | ||||
|  | ||||
|   $(document).ready(function() { | ||||
|     var calendar = $('#calendar').fullCalendar({ | ||||
|      editable:true, | ||||
|      header:{ | ||||
|       left:'prev,next today', | ||||
|       center:'title', | ||||
|     right:'' | ||||
|      }, | ||||
|      events: 'eventos.php', | ||||
|      selectable:true, | ||||
|      selectHelper:true, | ||||
|      select: function(start, end, allDay) | ||||
|      { | ||||
|       var title = confirm("¿Estas son las fechas correctas?"); | ||||
|       if(title) | ||||
|       { | ||||
|        | ||||
|        var e = { | ||||
|          "start" : $.fullCalendar.formatDate(start, "Y-MM-DD HH:mm:ss"), | ||||
|          "end"   : $.fullCalendar.formatDate(end, "Y-MM-DD HH:mm:ss"), | ||||
|        }; | ||||
|        $.ajax({ | ||||
|         url:"eventos.php", | ||||
|         type:"POST", | ||||
|         contentType: 'application/json; charset=utf-8', | ||||
|         dataType: "json", | ||||
|         data:JSON.stringify(e), | ||||
|         success:function() | ||||
|         { | ||||
|          calendar.fullCalendar('refetchEvents'); | ||||
|          alert("Added Successfully"); | ||||
|         } | ||||
|        }) | ||||
|       } | ||||
|      }, | ||||
|      editable:true, | ||||
|      eventResize:function(event) | ||||
|    var calendar = $('#calendar').fullCalendar({ | ||||
|     editable:true, | ||||
|     header:{ | ||||
|      left:'prev,next today', | ||||
|      center:'title', | ||||
|      right:'month,agendaWeek,agendaDay' | ||||
|     }, | ||||
|     events: 'eventos.php', | ||||
|     selectable:true, | ||||
|     selectHelper:true, | ||||
| 	timeFormat: 'H:mm', | ||||
|     select: function(start, end, allDay) | ||||
|     { | ||||
|      var title = prompt("Enter Event Title"); | ||||
|      if(title) | ||||
|      { | ||||
|       var e = { | ||||
|         "id"    : event.id, | ||||
|         "userId": event.userId, | ||||
|         "start" : $.fullCalendar.formatDate(event.start, "Y-MM-DD HH:mm:ss"), | ||||
|         "end"   : $.fullCalendar.formatDate(event.end, "Y-MM-DD HH:mm:ss"), | ||||
|         "title" : event.title | ||||
|       }; | ||||
|        | ||||
|       $.ajax({ | ||||
|        url:"eventos.php?idEvento="+event.id, | ||||
|        type:"PUT", | ||||
|        contentType: 'application/json; charset=utf-8', | ||||
|        dataType:"json", | ||||
|        data:JSON.stringify(e), | ||||
|        success:function(){ | ||||
|         calendar.fullCalendar('refetchEvents'); | ||||
|         alert('Event Update'); | ||||
|        } | ||||
|       }) | ||||
|      }, | ||||
|   | ||||
|      eventDrop:function(event) | ||||
|      { | ||||
|       var e = { | ||||
|         "id"    : event.id, | ||||
|         "userId": event.userId, | ||||
|         "start" : $.fullCalendar.formatDate(event.start, "Y-MM-DD HH:mm:ss"), | ||||
|         "end"   : $.fullCalendar.formatDate(event.end, "Y-MM-DD HH:mm:ss"), | ||||
|         "title" : event.title | ||||
|         "start" : $.fullCalendar.formatDate(start, "Y-MM-DD HH:mm:ss"), | ||||
|         "end"   : $.fullCalendar.formatDate(end, "Y-MM-DD HH:mm:ss"), | ||||
|         "title" : title | ||||
|       }; | ||||
|       $.ajax({ | ||||
|        url:"eventos.php?idEvento="+event.id, | ||||
|        url:"eventos.php", | ||||
|        type:"POST", | ||||
|        contentType: 'application/json; charset=utf-8', | ||||
|        dataType: "json", | ||||
|        type:"PUT", | ||||
|        data:JSON.stringify(e), | ||||
|        success:function() | ||||
|        { | ||||
|         calendar.fullCalendar('refetchEvents'); | ||||
|         alert("Event Updated"); | ||||
|         alert("Added Successfully"); | ||||
|        } | ||||
|       }); | ||||
|      }, | ||||
|   | ||||
|      eventClick:function(event) | ||||
|      { | ||||
|       if(confirm("Are you sure you want to remove it?")) | ||||
|       { | ||||
|        var id = event.id; | ||||
|        $.ajax({ | ||||
|         url:"eventos.php?idEvento="+id, | ||||
|         contentType: 'application/json; charset=utf-8', | ||||
|         dataType: "json", | ||||
|         type:"DELETE", | ||||
|         success:function() | ||||
|         { | ||||
|          calendar.fullCalendar('refetchEvents'); | ||||
|          alert("Event Removed"); | ||||
|         }, | ||||
|         error: function(XMLHttpRequest, textStatus, errorThrown) {  | ||||
|          alert("Status: " + textStatus); alert("Error: " + errorThrown);  | ||||
|         } | ||||
|        }) | ||||
|       }) | ||||
|      } | ||||
|     }, | ||||
|     editable:true, | ||||
|     eventResize:function(event) | ||||
|     { | ||||
|      var e = { | ||||
|        "id"    : event.id, | ||||
|        "userId": event.userId, | ||||
|        "start" : $.fullCalendar.formatDate(event.start, "Y-MM-DD HH:mm:ss"), | ||||
|        "end"   : $.fullCalendar.formatDate(event.end, "Y-MM-DD HH:mm:ss"), | ||||
|        "title" : event.title | ||||
|      }; | ||||
|       | ||||
|      $.ajax({ | ||||
|       url:"eventos.php?idEvento="+event.id, | ||||
|       type:"PUT", | ||||
|       contentType: 'application/json; charset=utf-8', | ||||
|       dataType:"json", | ||||
|       data:JSON.stringify(e), | ||||
|       success:function(){ | ||||
|        calendar.fullCalendar('refetchEvents'); | ||||
|        alert('Event Update'); | ||||
|       } | ||||
|      }, | ||||
|   | ||||
|     }); | ||||
|    }); | ||||
|      }) | ||||
|     }, | ||||
|  | ||||
|     eventDrop:function(event) | ||||
|     { | ||||
|      var e = { | ||||
|        "id"    : event.id, | ||||
|        "userId": event.userId, | ||||
|        "start" : $.fullCalendar.formatDate(event.start, "Y-MM-DD HH:mm:ss"), | ||||
|        "end"   : $.fullCalendar.formatDate(event.end, "Y-MM-DD HH:mm:ss"), | ||||
|        "title" : event.title | ||||
|      }; | ||||
|      $.ajax({ | ||||
|       url:"eventos.php?idEvento="+event.id, | ||||
|       contentType: 'application/json; charset=utf-8', | ||||
|       dataType: "json", | ||||
|       type:"PUT", | ||||
|       data:JSON.stringify(e), | ||||
|       success:function() | ||||
|       { | ||||
|        calendar.fullCalendar('refetchEvents'); | ||||
|        alert("Event Updated"); | ||||
|       } | ||||
|      }); | ||||
|     }, | ||||
|  | ||||
|     eventClick:function(event) | ||||
|     { | ||||
|      if(confirm("Are you sure you want to remove it?")) | ||||
|      { | ||||
|       var id = event.id; | ||||
|       $.ajax({ | ||||
|        url:"eventos.php?idEvento="+id, | ||||
|        contentType: 'application/json; charset=utf-8', | ||||
|        dataType: "json", | ||||
|        type:"DELETE", | ||||
|        success:function() | ||||
|        { | ||||
|         calendar.fullCalendar('refetchEvents'); | ||||
|         alert("Event Removed"); | ||||
|        }, | ||||
|        error: function(XMLHttpRequest, textStatus, errorThrown) {  | ||||
|         alert("Status: " + textStatus); alert("Error: " + errorThrown);  | ||||
|        } | ||||
|       }) | ||||
|      } | ||||
|     }, | ||||
|  | ||||
|    }); | ||||
|   }); | ||||
		Reference in New Issue
	
	Block a user