Compare commits

..

56 Commits
sven ... main

Author SHA1 Message Date
2a1ab99070 Merge pull request 'Testing' (#16) from Testing into main
Reviewed-on: #16
2024-01-26 10:34:21 +01:00
5db540d1d1 smol fix? 2024-01-19 09:19:35 +01:00
bc4d16055f Merge pull request 'getBenutzer' (#15) from getBenutzer into Testing
Reviewed-on: #15
2024-01-18 12:22:58 +01:00
c9a52853e5 Merge pull request 'BenutzerController_ExpandedAndEnhanced' (#14) from getBenutzer into main
Reviewed-on: #14
2024-01-18 12:07:35 +01:00
694802e314 jetestet, wirklisch 2024-01-18 12:06:22 +01:00
b8f03d4321 suche nach name, nicht id 2024-01-18 10:47:56 +01:00
28dc1b076f Merge pull request 'getBenutzer' (#13) from getBenutzer into main
Reviewed-on: #13
2024-01-18 10:30:54 +01:00
555b475b69 Merge pull request 'Testing' (#12) from Testing into main
Reviewed-on: #12
2024-01-18 10:29:52 +01:00
137c0f7550 getestet 2024-01-18 10:28:16 +01:00
93e3b8e0c8 Merge branch 'Tagesplan' into Testing 2024-01-18 10:24:16 +01:00
64b6aa2716 sql funzt 2024-01-18 10:21:52 +01:00
34ae68bfdc zweiter Stand 2024-01-18 10:16:56 +01:00
5caa672a26 BenutzerV2 2024-01-18 10:14:52 +01:00
1f2789eead Tagesplan first Stand 2024-01-18 10:12:14 +01:00
40b6c85eb9 Merge pull request 'getBenutzer testen' (#11) from getBenutzer into Testing
Reviewed-on: #11
2024-01-18 10:10:38 +01:00
bbb5ebcbac faxxen 2024-01-18 10:02:29 +01:00
a8f4455c9d getBenutzer 2024-01-18 10:00:42 +01:00
e730377103 MyFirstAnmeldeFunktion 2024-01-18 09:31:09 +01:00
add9a27630 Fehlermeldungen 2024-01-17 10:58:49 +01:00
1826e9f61b Merge pull request 'Testing' (#10) from Testing into main
Reviewed-on: #10
2024-01-17 10:24:24 +01:00
1357e21155 ??? 2024-01-17 10:21:14 +01:00
d4a67f0a30 Merge branch 'Testing' of https://git.bib.de/Subway-Surfers/VPR_Schnittstelle into Testing 2024-01-17 10:21:04 +01:00
2b14563643 nextId 2024-01-15 09:39:19 +01:00
9c82aec3c5 nextId 2024-01-15 08:58:24 +01:00
b6ec972c19 Merge pull request 'filter und GibtsAm Tests' (#9) from Testing into main
Reviewed-on: #9
2024-01-14 23:27:08 +01:00
ab9b8ee706 filter und GibtsAm Tests 2024-01-14 23:25:25 +01:00
3f5bd9b1bc Merge pull request 'Testing' (#7) from Testing into main
Reviewed-on: #7
2024-01-14 18:31:59 +01:00
d4c11ef611 Test waren doch noch nicht done *smileyface* 2024-01-14 18:30:05 +01:00
f0caeb3cfc Merge Konflikte bereinigt 2024-01-14 18:11:27 +01:00
215ddf86cb TestsDone 2024-01-14 17:51:11 +01:00
7b55e50029 SvenControllerUndModellFertigFertig 2024-01-13 15:51:38 +01:00
c47abaf4bb Tests bis zu Gericht Model 2024-01-09 09:51:28 +01:00
4b11857f6d diverses 2024-01-08 11:14:17 +01:00
7994432aca Noch mehr KindModel Fixes 2023-12-20 09:15:12 +01:00
7bb6d00eb1 Merge pull request 'Tagesplan erstellt nicht getestet' (#8) from max into main
Reviewed-on: #8
2023-12-20 09:14:37 +01:00
b104c8a6fc Tagesplan erstellt nicht getestet 2023-12-20 09:12:15 +01:00
2c63e3c132 KindController fixes 2023-12-20 08:36:35 +01:00
f96f7c3549 fixes 2023-12-18 08:45:12 +01:00
9122289393 Merge branch 'main' of https://git.bib.de/Subway-Surfers/VPR_Schnittstelle into Testing + other stuff 2023-12-18 08:43:48 +01:00
23df80f0db Merge pull request 'max' (#6) from max into main
Reviewed-on: #6
2023-12-18 08:24:22 +01:00
78ba32377b Inhaltsstoff vervollständigt, nicht getestet nicht kommentiert 2023-12-18 08:22:45 +01:00
3378e66916 mooooooore fixes 2023-12-18 08:21:51 +01:00
621e25ee86 more fixes 2023-12-18 08:19:27 +01:00
c598e48006 Fixes 2023-12-18 08:16:21 +01:00
5765d49e01 BestellungUndGericht 2023-12-14 20:03:29 +01:00
c28a3eb452 Merge pull request 'Benutzer-/KindController + Model Fixes, richtige Datenbank angegeben' (#5) from Testing into main
Reviewed-on: #5
2023-12-14 17:04:46 +01:00
9f7060d202 Benutzer-/KindController + Model Fixes, richtige Datenbank angegeben 2023-12-14 16:59:16 +01:00
e4003ad37d Delete Methode implementiert, nicht getestet 2023-12-11 16:03:00 +01:00
a915732afd Merge pull request 'samu' (#4) from samu into main
Reviewed-on: #4
2023-12-11 15:44:44 +01:00
05dcaf2555 Merge branch 'main' into samu 2023-12-11 15:44:37 +01:00
e190b5bb8d Kommentare BenutzerController 2023-12-11 15:35:38 +01:00
16be7cf3dc Kommentare BnutzerModel 2023-12-11 15:34:55 +01:00
cab0d36555 Kommentare KindController 2023-12-11 15:33:08 +01:00
62df0fcaf0 Kommentare KindModel 2023-12-11 15:32:24 +01:00
6e52a22691 Merge pull request 'GerichtUndBestellungKaumGetestet' (#3) from sven into main
Reviewed-on: #3
2023-12-07 09:49:04 +01:00
7e034abf8c Bug Fixes bei Enthaelt + Inhaltsstoff erstellt 2023-12-06 09:26:20 +01:00
22 changed files with 1137 additions and 454 deletions

View File

@ -1,35 +1,68 @@
<?php <?php
// Programmiert durch Samuel Wolff // Programmiert durch Samuel Wolff
// Getestet durch: Nicht getestet // Getestet durch: Samuel Wolff
namespace kindergartenverwaltung\Controller; namespace ppb\Controller;
use kindergartenverwaltung\Library\Msg; use ppb\Library\Msg;
use kindergartenverwaltung\Model\BenutzerModel; use ppb\Model\BenutzerModel;
class BenutzerController{ class BenutzerController
{
private $db; private $db;
public function __construct(){ public function __construct()
{
$this->db = new BenutzerModel(); $this->db = new BenutzerModel();
} }
public function updateBenutzer($elternId, $data){ public function getBenutzer() {
$result = $this->db->selectBenutzer();
if (isset($_GET["name"])) {
if ($result)
$result = $result[0];
else
$result = false;
}
$result = $this->db->updateBenutzer($benutzerId, $data); return json_encode($result);
}
// Updated einen Benutzer
public function updateBenutzer($elternId, $data)
{
$result = $this->db->updateBenutzer($elternId, $data);
return json_encode($result); return json_encode($result);
} }
public function insertBenutzer($data){ // Fügt einen Benutzer in die Datenbank hinzu
$result = $this->db->insertBenutzer($data) public function writeBenutzer($data)
{
$result = $this->db->insertBenutzer($data);
return json_encode($data); return json_encode($data);
} }
public function nextId()
{
$result = $this->db->nextId();
return json_encode($result);
}
public function anmeldeVersuch()
{
$result = $this->db->anmeldeVersuch();
return json_encode($result);
}
} }
?> ?>

View File

@ -1,44 +1,50 @@
<?php <?php
//Programmierung: Sven Alteköster 100% //Programmierung: Sven Alteköster 100%
//Getestet durch: //Getestet durch: Sven Alteköster 100%
namespace ppb\Controller; namespace ppb\Controller;
use ppb\Library\Msg; use ppb\Library\Msg;
use ppb\Model\GerichtModel; use ppb\Model\BestellungModel;
class BestellungController { class BestellungController
{
private $db; private $db;
public function __construct() { public function __construct()
$this->db = new BestellungModel(); {
$this->db = new BestellungModel();
}
public function getBestellung($id = false)
{
$result = $this->db->selectBestellung($id);
if ($id !== false) {
if ($result)
$result = $result[0];
else
$result = false;
} }
public function getBestellung($id=false) { return json_encode($result);
$result=$this->db->selectBestellung($id); }
if($id !== false){
if($result)
$result=$result[0];
else
$result=false;
}
return json_encode($result); public function writeBestellung($data)
} {
$result = $this->db->insertBestellung($data);
return json_encode($result);
}
public function writeBestellung($data){ public function updateBestellung($id, $data)
$result=$this->db->insertGericht($data); {
return json_encode($result); $result = $this->db->updateBestellung($id, $data);
} return json_encode($result);
}
public function updateBestellung($id, $data){ public function deleteBestellung($id)
$result=$this->db->updateBestellung($id, $data); {
return json_encode($result); $result = $this->db->deleteBestellung($id);
} return json_encode($result);
}
public function deleteBestellung($id){
$result=$this->db->deleteBestellung($id);
return json_encode($result);
}
} }

View File

@ -1,20 +1,31 @@
<?php <?php
//Programmiert von: Max Heer, Getestet von: //Programmiert von: Max Heer, Getestet von: Samuel Wolff
namespace kindergartenverwaltung\Controller; namespace ppb\Controller;
use kindergartenverwaltung\Libary\Msg; use ppb\Libary\Msg;
use kindergartenverwaltung\Model\EnthaeltModel; use ppb\Model\EnthaeltModel;
class EnthaeltController(){ class EnthaeltController
public function getInhaltsstoffe($gerichtId){ {
$result=$this->db->getEnthaelt($gerichtId);
return json_encode($result);
}
public function insertEnthaelt($data){ private $db;
$result=$this->db->insertEnthaelt($data);
return json_encode($result); public function __construct()
} {
$this->db = new EnthaeltModel();
} }
public function getEnthaelt($gerichtId)
{
$result = $this->db->getEnthaelt($gerichtId);
return json_encode($result);
}
public function writeEnthaelt($data)
{
$result = $this->db->insertEnthaelt($data);
return json_encode($result);
}
}
?> ?>

View File

@ -0,0 +1,32 @@
<?php
//Erstellt durch Stefan Groß - Samuel Wolff
namespace ppb\Controller;
use ppb\Model\FilterModel;
class FilterController
{
private $db;
public function __construct()
{
$this->db = new FilterModel();
}
public function writeFilter($data)
{
$results = $this->db->insertFilter($data);
return json_encode($results);
}
public function deleteFilter($id)
{
$results = $this->db->deleteFilter($id);
return json_encode($results);
}
}

View File

@ -1,6 +1,6 @@
<?php <?php
//Programmierung: Sven Alteköster 100% //Programmierung: Sven Alteköster 100%
//Getestet durch: //Getestet durch: Sven Alteköster 100%
namespace ppb\Controller; namespace ppb\Controller;

View File

@ -0,0 +1,42 @@
<?php
//Erstellt durch Stefan Groß - Getestet von Samuel Wolff
namespace ppb\Controller;
use ppb\Model\GibtsAmModel;
class GibtsAmController
{
private $db;
public function __construct()
{
$this->db = new GibtsAmModel();
}
public function getGibtsAm()
{
$result = $this->db->selectGibtsAm();
return json_encode($result);
}
public function writeGibtsAm($data)
{
$result = $this->db->insertGibtsAm($data);
return json_encode($result);
}
public function deleteGibtsAm($id)
{
$result = $this->db->deleteGibtsAm($id);
return json_encode($result);
}
}
?>

View File

@ -0,0 +1,38 @@
<?php
//Programmiert von: Max Heer, Getestet von: Samuel Wolff
namespace ppb\Controller;
use ppb\Libary\Msg;
use ppb\Model\InhaltsstoffModel;
class InhaltsstoffController
{
private $db;
public function __construct()
{
$this->db = new InhaltsstoffModel();
}
public function getInhaltsstoff()
{
$result = $this->db->getInhaltsstoff();
return json_encode($result);
}
public function writeInhaltsstoff($data)
{
$result = $this->db->insertInhaltsstoff($data);
return json_encode($result);
}
public function deleteInhaltsstoff($id)
{
$result = $this->db->deleteInhaltsstoff($id);
return json_encode($result);
}
}
?>

View File

@ -1,45 +1,54 @@
<?php <?php
// Programmiert durch Samuel Wolff // Programmiert durch Samuel Wolff
// Getestet durch: Nicht getestet // Getestet durch: Samuel Wolff
namespace kindergartenverwaltung\Controller; namespace ppb\Controller;
use kindergartenverwaltung\Library\Msg; use ppb\Library\Msg;
use kindergartenverwaltung\Model\KindModel; use ppb\Model\KindModel;
class KindController{ class KindController
{
private $db; private $db;
public function __construct(){ public function __construct()
{
$this->db = new KindModel(); $this->db = new KindModel();
} }
// $parentId ist standardmäßig auf false und gibt damit alle Kinder aus, // $parentId ist standardmäßig auf false und gibt damit alle Kinder aus,
// das setzen gibt nur Kinder eines bestimmten Benutzerkontos aus. // das setzen gibt nur Kinder eines bestimmten Benutzerkontos aus.
public function getKind($parentId = false){ public function getKind($parentId = false)
{
$result = $this->db->getKind($parentId); $result = $this->db->getKind($parentId);
return json_encode($result); return json_encode($result);
} }
public function updateKind($kindId, $data){ // Updated ein Kind
public function updateKind($kindId, $data)
{
$result = $this->db->updateKind($kindId, $data); $result = $this->db->updateKind($kindId, $data);
return json_encode($result); return json_encode($result);
} }
public function addKind($data){ // Fügt ein Kind hinzu
public function writeKind($data)
{
$result = $this->db->addKind($data); $result = $this->db->addKind($data);
return json_encode($data); return json_encode($data);
} }
public function deleteKind($kindId){ // Löscht ein Kind
public function deleteKind($kindId)
{
$result = $this->db->deleteKind($kindId); $result = $this->db->deleteKind($kindId);
return $result; return json_encode($result);
} }
} }

View File

@ -0,0 +1,43 @@
<?php
//Programmiert von: Max Heer, Getestet von: Samuel Wolff
namespace ppb\Controller;
use ppb\Libary\Msg;
use ppb\Model\TagesplanModel;
class TagesplanController
{
private $db;
public function __construct()
{
$this->db = new TagesplanModel();
}
public function getTagesplan()
{
$result = $this->db->getTagesplan();
return json_encode($result);
}
public function writeTagesplan($data)
{
$result = $this->db->insertTagesplan($data);
return json_encode($result);
}
public function deleteTagesplan($id)
{
$result = $this->db->deleteTagesplan($id);
return json_encode($result);
}
public function getGerichteOnTag()
{
$result = $this->db->getGerichteOnTag();
return json_encode($result);
}
}
?>

View File

@ -1,21 +1,40 @@
<?php <?php
// Erstellt durch Stefan Groß // Erstellt durch Stefan Groß - Getestet von Samuel Wolff
namespace kinderverwaltung\Controller; namespace ppb\Controller;
class istTeilController { use ppb\Model\IstTeilModel;
class istTeilController
{
private $db; private $db;
public function __construct() public function __construct()
{ {
$this-> db = new istTeilModel(); $this->db = new istTeilModel();
} }
public function getBestellung(){ public function getIstTeil()
$result = $this->db->getBestellung(); {
$result = $this->db->selectIstTeil();
return json_encode($result); return json_encode($result);
} }
public function writeIstTeil($data)
{
$result = $this->db->insertIstTeil($data);
return json_encode($result);
}
public function deleteIstTeil($id)
{
$result = $this->db->deleteIstTeil($id);
return json_encode($result);
}
} }
?> ?>

View File

@ -1,36 +1,78 @@
<?php <?php
// Programmiert durch Samuel Wolff // Programmiert durch Samuel Wolff
// Getestet durch: Nicht getestet // Getestet durch: Samuel Wolff
namespace kindergartenverwaltung\Controller; namespace ppb\Model;
use kindergartenverwaltung\Library\Msg; use ppb\Library\Msg;
use kindergartenverwaltung\Model\BenutzerModel;
class BenutzerModel extends Database{ class BenutzerModel extends Database
{
public function updateBenutzer($elternId, $data){ public function selectBenutzer()
{
$pdo = $this->linkDB(); $pdo = $this->linkDB();
$params = array(); $params = array();
$sql = "UPDATE Benutzer SET" $sql = "SELECT * FROM Benutzerkonto";
foreach($data as $index=>$value){ if(isset($_GET["name"])){
$sql .= " ".$index." = :".$index; $params[":name"] = $_GET["name"];
$params[":".$index] = $value; $sql .= " WHERE name = :name";
} }
$sql .= " WHERE id = :benutzerId;"; //Ausführen des SQL befehls
try {
$params[":benutzerId"] = $kindId;
try{
$stmt = $pdo->prepare($sql); $stmt = $pdo->prepare($sql);
$stmt->excute($params); $stmt->execute($params);
} catch (\PDOException $e) {
echo $e;
return false;
} }
catch(\PDOException $e){ $result = $stmt->fetchAll(\PDO::FETCH_ASSOC);
//Die Datensätze werden nummeriert
foreach ($result as $key => $row) {
$result[$key]["id"] += 0;
}
return $result;
}
/**
*
* Updated einen Benutzer
*
* @param $elternId Die Id des Elternaccounts
* @param $data Die gegebenen Daten
*
*/
public function updateBenutzer($elternId, $data)
{
$pdo = $this->linkDB();
$params = array();
$sql = "UPDATE Benutzerkonto SET";
foreach ($data as $index => $value) {
$sql .= " " . $index . " = :" . $index . ",";
$params[":" . $index] = $value;
}
$sql = substr($sql, 0, strlen($sql) - 1) . " WHERE id = :benutzerId;";
$params[":benutzerId"] = $elternId;
try {
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
} catch (\PDOException $e) {
echo $sql;
echo json_encode($params);
return false; return false;
} }
@ -40,32 +82,42 @@ class BenutzerModel extends Database{
} }
public function insertBenutzer($data){ /**
*
* Fügt einen neuen Benutzer in der Datenbank hinzu
*
* @param $data Die gegebenen Daten
*
*/
public function insertBenutzer($data)
{
$pdo = $this->linkDB(); $pdo = $this->linkDB();
$params = array(); $params = array();
$sql = "INSERT INTO Benutzer ("; $sql = "INSERT INTO Benutzerkonto (";
foreach($data as $index=>$value){ foreach ($data as $index => $value) {
$sql .= $index.", "; $sql .= $index . ", ";
$params[":"+$index] = $index; $params[":" . $index] = $index;
} }
$sql = substr($sql, 0, strlen($sql)-2).") VALUES ("; $sql = substr($sql, 0, strlen($sql) - 2) . ") VALUES (";
foreach($data as $value){ foreach ($data as $index => $value) {
$sql .= ":".$value." ,"; $sql .= ":" . $index . " ,";
$params[":"+$value] = $value; $params[":" . $index] = $value;
} }
$sql = substr($sql, 0, strlen($sql)-2).");"; $sql = substr($sql, 0, strlen($sql) - 2) . ");";
try{ echo $sql;
try {
$stmt = $pdo->prepare($sql); $stmt = $pdo->prepare($sql);
$stmt->excute($params); $stmt->execute($params);
} } catch (\PDOException $e) {
catch(\PDOException $e){ echo "Faulty Sql? " . $sql;
return false; return false;
} }
@ -74,7 +126,54 @@ class BenutzerModel extends Database{
return $result; return $result;
} }
public function nextId()
{
$pdo = $this->linkDB();
$sql = "SELECT `auto_increment` FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 'Benutzerkonto'; ";
try {
$stmt = $pdo->prepare($sql);
$stmt->execute();
} catch (\PDOException $e) {
echo "Faulty Sql? " . $sql;
return false;
}
$result = $stmt->fetchALL(\PDO::FETCH_ASSOC);
return $result;
}
public function anmeldeVersuch()
{
$pdo = $this->linkDB();
$params = array();
$params[":Benutzername"] = $_GET["Benutzername"];
$params[":passwort"] = $_GET["passwort"];
$sql = "SELECT * FROM Benutzerkonto WHERE name = :Benutzername AND passwort = :passwort";
try {
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
} catch (\PDOException $e) {
return false;
}
$result = $stmt->fetchALL(\PDO::FETCH_ASSOC);
if (count($result) > 0)
return true;
else
return false;
}
} }
?> ?>

View File

@ -1,55 +1,61 @@
<?php <?php
//Programmierung: Sven Alteköster 100%
//Getestet durch: Sven Alteköster 100%
namespace ppb\Model; namespace ppb\Model;
use ppb\Library\Msg; use ppb\Library\Msg;
class BestellungModel extends Database { class BestellungModel extends Database
{
/** /**
* Sucht die Bestellung in der Datenbank und gibt diese im json-Format zurück. * Sucht die Bestellung in der Datenbank und gibt diese im json-Format zurück.
* @param $id gibt die id, des gesuchten Objektes an. Wenn keine id angegeben wird, werden alle Einträge ausgegeben * @param $id gibt die id, des Benutzerkontos an, über den die Bestellung getätigt wurde. Wenn keine id angegeben wird, werden alle Einträge ausgegeben
*/ */
public function selectBestellung($id = false) { public function selectBestellung($id = false)
$pdo = $this -> linkDB(); {
$sql = "SELECT * FROM Bestellung"; $pdo = $this->linkDB();
$sql = "SELECT Bestellung.id, Bestellung.istBezahlt, Bestellung.bestelldatum, Bestellung.gesamtpreis, Bestellung.kid FROM Bestellung";
$params = array(); $params = array();
//Ist eine id angegeben wird der Datensatz in der Datenbank gesucht //Ist eine id angegeben wird der Datensatz in der Datenbank gesucht
if($id !== false){ if ($id !== false) {
$sql .= " WHERE id = :id"; $sql .= " INNER JOIN Kind k ON k.id = kid INNER JOIN Benutzerkonto b ON b.id = bid";
$params["id"] = $id; $sql .= " WHERE bid = :bid";
$params["bid"] = $id;
} }
//Ausführen des SQL befehls //Ausführen des SQL befehls
try { try {
$stmt = $pdo -> prepare($sql); $stmt = $pdo->prepare($sql);
$stmt -> execute($params); $stmt->execute($params);
} } catch (\PDOException $e) {
catch(\PDOException $e) {
echo $e; echo $e;
return false; return false;
} }
$result = $stmt->fetchAll(\PDO::FETCH_ASSOC); $result = $stmt->fetchAll(\PDO::FETCH_ASSOC);
//Die Datensätze werden nummeriert //Die Datensätze werden nummeriert
foreach($result as $key=>$row){ foreach ($result as $key => $row) {
$result[$key]["id"]+=0; $result[$key]["id"] += 0;
} }
return $result; return $result;
} }
/** /**
* Fügt ein Bestellung in die Datenbank ein. * Fügt ein Bestellung in die Datenbank ein.
* @param $data gibt die Attribute des Datensatzes an. * @param $data gibt die Attribute des Datensatzes an.
*/ */
public function insertBestellung($data) { public function insertBestellung($data)
$pdo = $this -> linkDB(); {
$pdo = $this->linkDB();
$sql = "INSERT INTO Bestellung (" . implode(",", array_keys($data)) . ") VALUES(:" . implode(",:", array_keys($data)) . ")"; $sql = "INSERT INTO Bestellung (" . implode(",", array_keys($data)) . ") VALUES(:" . implode(",:", array_keys($data)) . ")";
try{ try {
$stmt = $pdo->prepare($sql); $stmt = $pdo->prepare($sql);
$result = $stmt->execute($data); $result = $stmt->execute($data);
}catch (\PDOExpecion $e) { } catch (\PDOException $e) {
echo $e; echo $e;
} }
return $result; return $result;
@ -60,42 +66,44 @@ class BestellungModel extends Database {
* @param $id des Datensatzes * @param $id des Datensatzes
* @param $data neue Parameter des Datensatzes * @param $data neue Parameter des Datensatzes
*/ */
public function updateBestellung($id, $data){ public function updateBestellung($id, $data)
{
$pdo = $this->linkDB(); $pdo = $this->linkDB();
$sql = "UPDATE Bestellung SET " $sql = "UPDATE Bestellung SET ";
//Fügt alle Parameter und einen Platzhalter in den SQL Befehl ein //Fügt alle Parameter und einen Platzhalter in den SQL Befehl ein
foreach (array_keys($data) as $key){ foreach (array_keys($data) as $key) {
$sql .= $key . " = :" . $key. ","; $sql .= $key . " = :" . $key . ",";
} }
$sql = substr_replace($sql, "", -1) . " WHERE id = :id"; $sql = substr_replace($sql, "", -1) . " WHERE id = :id";
$data["id"] = $id; $data["id"] = $id;
try{ try {
$stmt = $pdo->prepare($sql); $stmt = $pdo->prepare($sql);
$result = $stmt->execute($data); $result = $stmt->execute($data);
}catch (\PDOExpection $e){ } catch (\PDOException $e) {
echo $e; echo $e;
return false; return false;
} }
return $result; return $result;
} }
/** /**
* Löscht ein Bestellung aus der Tabelle * Löscht ein Bestellung aus der Tabelle
* @param $id des zu löschenden Bestellung * @param $id des zu löschenden Bestellung
*/ */
public function deleteBestellung($id){ public function deleteBestellung($id)
$pdo = $this->linkDB(); {
$sql = "DELETE FROM Bestellung WHERE id = :id"; $pdo = $this->linkDB();
$params = array(); $sql = "DELETE FROM Bestellung WHERE id = :id";
$params[":id"] = $id; $params = array();
try{ $params[":id"] = $id;
try {
$stmt = $pdo->prepare($sql); $stmt = $pdo->prepare($sql);
$result = $stmt->execute($params); $result = $stmt->execute($params);
}catch (\PDOExpection $e){ } catch (\PDOException $e) {
echo $e; echo $e;
return false; return false;
} }
return $result; return $result;
} }
} }

View File

@ -9,7 +9,7 @@ abstract class Database {
/** /**
* Zugangsdaten für die Datenbank * Zugangsdaten für die Datenbank
*/ */
private $dbName = "pbs2h22aal_av"; //Datenbankname private $dbName = "pbs2h22aal_SubwaySurfers"; //Datenbankname
private $linkName = "mysql.pb.bib.de"; //Datenbank-Server private $linkName = "mysql.pb.bib.de"; //Datenbank-Server
//Administration: https://mysql.pb.bib.de/phpMyAdmin/ //Administration: https://mysql.pb.bib.de/phpMyAdmin/
private $user = "pbs2h22aal"; //Benutzername private $user = "pbs2h22aal"; //Benutzername

View File

@ -1,52 +1,58 @@
<?php <?php
namespace kindergartenverwaltung\EnthaeltModel;
use kindergartenverwaltung\Library\Msg; //Programmiert von: Max Heer, Getestet von: Samuel Wolff
class EnthaeltModel extends Database{ namespace ppb\Model;
public function getEnthaelt($gerichtId){ use ppb\Library\Msg;
$pdo=$this->linkDB();
$params = array();
$sql = "SELECT * FROM Enthaelt WHERE gid = :gerichtId;";
$params[":gerichtId"] = gerichtId;
try{
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
}
catch(\PDOExeption $e){
return false;
}
$result = $stmt->fetchAll(\PDO::FETCH_ASSOC);
return $result; class EnthaeltModel extends Database
{
public function getEnthaelt($gerichtId)
{
$pdo = $this->linkDB();
$params = array();
$sql = "SELECT * FROM Enthaelt WHERE gid = :gerichtId;";
$params[":gerichtId"] = $gerichtId;
try {
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
} catch (\PDOException $e) {
return false;
}
$result = $stmt->fetchAll(\PDO::FETCH_ASSOC);
return $result;
}
public function insertEnthaelt($data)
{
$pdo = $this->linkDB();
$params = array();
$sql = "INSERT INTO Enthaelt (";
foreach ($data as $index => $value) {
$sql .= "" . $index . ",";
}
$sql = substr($sql, 0, strlen($sql) - 1) . ") VALUES (";
foreach ($data as $index => $value) {
$sql .= ":" . $index . ",";
$params[":" . $index] = $value;
} }
public function insertEnthaelt($data){ $sql = substr($sql, 0, strlen($sql) - 1) . ");";
$pdo=$this->linkDB();
$params = array();
$sql = "INSERT INTO Enthaelt (";
foreach($data as $index=>$value){ echo $sql;
$sql .= "".$index.",";
}
$sql = substr($sql,0,strlen($sql)-1).") VALUES (";
foreach($data as $index=>$value){ try {
$sql .= "':".$index."',"; $stmt = $pdo->prepare($sql);
$params[":".$index] = $value; $stmt->execute($params);
} return true;
} catch (\PDOException $e) {
$sql = substr($sql,0,strlen($sql)-1).");"; return false;
try{
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
return true;
}
catch(\PDOExeption $e){
return false;
}
} }
} }
}
?> ?>

52
Model/FilterModel.php Normal file
View File

@ -0,0 +1,52 @@
<?php
namespace ppb\Model;
use ppb\Model\Database;
//Erstellt durch Stefan Groß - Samuel Wolff
class FilterModel extends Database
{
public function insertFilter($data)
{
$pdo = $this->linkDB();
$params = array();
$sql = "INSERT INTO Filter (kid, iid) VALUES (:kid, :iid)";
$params[":kid"] = $data["kid"];
$params[":iid"] = $data["iid"];
try {
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
} catch (\PDOException $e) {
echo $sql;
return false;
}
return true;
}
public function deleteFilter($id)
{
$pdo = $this->linkDB();
$params = array();
$sql = "DELETE FROM Filter WHERE id = :id";
$params[":id"] = $id;
try {
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
} catch (\PDOException $e) {
echo $sql;
return false;
}
return true;
}
}

View File

@ -1,55 +1,59 @@
<?php <?php
//Programmierung: Sven Alteköster 100%
//Getestet durch: Sven Alteköster 100%
namespace ppb\Model; namespace ppb\Model;
use ppb\Library\Msg; use ppb\Library\Msg;
class GerichtModel extends Database { class GerichtModel extends Database
{
/** /**
* Sucht die Gerichte in der Datenbank und gibt diese im json-Format zurück. * Sucht die Gerichte in der Datenbank und gibt diese im json-Format zurück.
* @param $id gibt die id, des gesuchten Objektes an. Wenn keine id angegeben wird, werden alle Einträge ausgegeben * @param $id gibt die id, des gesuchten Objektes an. Wenn keine id angegeben wird, werden alle Einträge ausgegeben
*/ */
public function selectGericht($id = false) { public function selectGericht($id = false)
$pdo = $this -> linkDB(); {
$pdo = $this->linkDB();
$sql = "SELECT * FROM Gericht"; $sql = "SELECT * FROM Gericht";
$params = array(); $params = array();
//Ist eine id angegeben wird der Datensatz in der Datenbank gesucht //Ist eine id angegeben wird der Datensatz in der Datenbank gesucht
if($id !== false){ if ($id !== false) {
$sql .= " WHERE id = :id"; $sql .= " WHERE id = :id";
$params["id"] = $id; $params["id"] = $id;
} }
//Ausführen des SQL befehls //Ausführen des SQL befehls
try { try {
$stmt = $pdo -> prepare($sql); $stmt = $pdo->prepare($sql);
$stmt -> execute($params); $stmt->execute($params);
} } catch (\PDOException $e) {
catch(\PDOException $e) {
echo $e; echo $e;
return false; return false;
} }
$result = $stmt->fetchAll(\PDO::FETCH_ASSOC); $result = $stmt->fetchAll(\PDO::FETCH_ASSOC);
//Die Datensätze werden nummeriert //Die Datensätze werden nummeriert
foreach($result as $key=>$row){ foreach ($result as $key => $row) {
$result[$key]["id"]+=0; $result[$key]["id"] += 0;
} }
return $result; return $result;
} }
/** /**
* Fügt ein Gericht in die Datenbank ein. * Fügt ein Gericht in die Datenbank ein.
* @param $data gibt die Attribute des Datensatzes an. * @param $data gibt die Attribute des Datensatzes an.
*/ */
public function insertGericht($data) { public function insertGericht($data)
$pdo = $this -> linkDB(); {
$pdo = $this->linkDB();
$sql = "INSERT INTO Gericht (" . implode(",", array_keys($data)) . ") VALUES(:" . implode(",:", array_keys($data)) . ")"; $sql = "INSERT INTO Gericht (" . implode(",", array_keys($data)) . ") VALUES(:" . implode(",:", array_keys($data)) . ")";
try{ try {
$stmt = $pdo->prepare($sql); $stmt = $pdo->prepare($sql);
$result = $stmt->execute($data); $result = $stmt->execute($data);
}catch (\PDOExpecion $e) { } catch (\PDOException $e) {
echo $e; echo $e;
} }
return $result; return $result;
@ -60,42 +64,44 @@ class GerichtModel extends Database {
* @param $id des Datensatzes * @param $id des Datensatzes
* @param $data neue Parameter des Datensatzes * @param $data neue Parameter des Datensatzes
*/ */
public function updateGericht($id, $data){ public function updateGericht($id, $data)
{
$pdo = $this->linkDB(); $pdo = $this->linkDB();
$sql = "UPDATE Gericht SET " $sql = "UPDATE Gericht SET ";
//Fügt alle Parameter und einen Platzhalter in den SQL Befehl ein //Fügt alle Parameter und einen Platzhalter in den SQL Befehl ein
foreach (array_keys($data) as $key){ foreach (array_keys($data) as $key) {
$sql .= $key . " = :" . $key. ","; $sql .= $key . " = :" . $key . ",";
} }
$sql = substr_replace($sql, "", -1) . " WHERE id = :id"; $sql = substr_replace($sql, "", -1) . " WHERE id = :id";
$data["id"] = $id; $data["id"] = $id;
try{ try {
$stmt = $pdo->prepare($sql); $stmt = $pdo->prepare($sql);
$result = $stmt->execute($data); $result = $stmt->execute($data);
}catch (\PDOExpection $e){ } catch (\PDOException $e) {
echo $e; echo $e;
return false; return false;
} }
return $result; return $result;
} }
/** /**
* Löscht ein Gericht aus der Tabelle * Löscht ein Gericht aus der Tabelle
* @param $id des zu löschenden Gerichtes * @param $id des zu löschenden Gerichtes
*/ */
public function deleteGericht($id){ public function deleteGericht($id)
$pdo = $this->linkDB(); {
$sql = "DELETE FROM Gericht WHERE id = :id"; $pdo = $this->linkDB();
$params = array(); $sql = "DELETE FROM Gericht WHERE id = :id";
$params[":id"] = $id; $params = array();
try{ $params[":id"] = $id;
try {
$stmt = $pdo->prepare($sql); $stmt = $pdo->prepare($sql);
$result = $stmt->execute($params); $result = $stmt->execute($params);
}catch (\PDOExpection $e){ } catch (\PDOException $e) {
echo $e; echo $e;
return false; return false;
} }
return $result; return $result;
} }
} }

74
Model/GibtsAmModel.php Normal file
View File

@ -0,0 +1,74 @@
<?php
namespace ppb\Model;
//Programmiert von Stefan Groß - Getestet von Samuel Wolff
class GibtsAmModel extends Database
{
public function selectGibtsAm()
{
$pdo = $this->linkDB();
$sql = "SELECT * FROM GibtsAm";
try {
$stmt = $pdo->prepare($sql);
$stmt->execute();
} catch (\PDOException $e) {
return false;
}
$results = $stmt->fetchAll(\PDO::FETCH_ASSOC);
foreach ($results as $key => $value) {
$results[$key]["id"] += 0;
$results[$key]["tid"] += 0;
$results[$key]["gid"] += 0;
}
return $results;
}
public function insertGibtsAm($data)
{
$pdo = $this->linkDB();
$params = array();
$sql = "INSERT INTO GibtsAm (tid, gid) VALUES (:tid, :gid)";
$params[":tid"] = $data["tid"];
$params[":gid"] = $data["gid"];
try {
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
} catch (\PDOException $e) {
echo $sql;
return false;
}
return true;
}
public function deleteGibtsAm($id)
{
$pdo = $this->linkDB();
$params = array();
$sql = "DELETE FROM GibtsAm WHERE id = :id";
$params[":id"] = $id;
try {
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
} catch (\PDOException $e) {
return false;
}
return true;
}
}
?>

View File

@ -0,0 +1,70 @@
<?php
// Programmiert von Max Heer
// Getestet von Samuel Wolff
namespace ppb\Model;
use ppb\Library\Msg;
class InhaltsstoffModel extends Database
{
public function getInhaltsstoff()
{
$pdo = $this->linkDB();
$sql = "SELECT * FROM Inhaltsstoff";
try {
$stmt = $pdo->prepare($sql);
$stmt->execute();
} catch (\PDOException $e) {
return false;
}
$result = $stmt->fetchAll(\PDO::FETCH_ASSOC);
return $result;
}
public function insertInhaltsstoff($data)
{
$pdo = $this->linkDB();
$params = array();
$sql = "INSERT INTO Inhaltsstoff (";
foreach ($data as $index => $value) {
$sql .= "" . $index . ",";
}
$sql = substr($sql, 0, strlen($sql) - 1) . ") VALUES (";
foreach ($data as $index => $value) {
$sql .= ":" . $index . ",";
$params[":" . $index] = $value;
}
$sql = substr($sql, 0, strlen($sql) - 1) . ");";
try {
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
return true;
} catch (\PDOException $e) {
echo $sql;
return false;
}
}
public function deleteInhaltsstoff($id)
{
$pdo = $this->linkDB();
$params = array();
$sql = "DELETE FROM Inhaltsstoff WHERE id=:id";
$params[":id"] = $id;
try {
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
return true;
} catch (\PDOException $e) {
echo $sql;
return false;
}
}
}
?>

View File

@ -1,139 +1,149 @@
<?php <?php
// Programmiert durch Samuel Wolff // Programmiert durch Samuel Wolff
// Getestet durch: Nicht getestet // Getestet durch: Samuel Wolff
namespace kindergartenverwaltung\Model; namespace ppb\Model;
use kindergartenverwaltung\Library\Msg; use ppb\Library\Msg;
class KindModel extends Database{ class KindModel extends Database
{
public function getKind($parentId){ public function getKind($parentId)
$pdo = $this->linkDB(); {
$pdo = $this->linkDB();
$params = array(); $params = array();
$sql = "SELECT * FROM Kind"; $sql = "SELECT * FROM Kind";
// Das mitgeben einer Id erlaubt es die Kinder eines bestimmten Benutzerkontos anzeigen zu lassen, // Das mitgeben einer Id erlaubt es die Kinder eines bestimmten Benutzerkontos anzeigen zu lassen,
// während das leerlassen alle Kinder ausgibt. // während das leerlassen alle Kinder ausgibt.
id($parentId !== false){ if ($parentId !== false) {
$sql. = " WHERE bid=:id;"; $sql .= " WHERE bid=:id;";
$params[":id"] = $parentId; $params[":id"] = $parentId;
}
try {
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
} catch (\PDOException $e) {
return false;
}
$result = $stmt->fetchALL(\PDO::FETCH_ASSOC);
return $result;
} }
try{ /**
$stmt = $pdo->prepare($sql); *
$stmt->excute($params); * Updated die Daten eines Kindes
} *
catch(\PDOException $e){ * @param $kindId Id des Kindes
return false; * @param $data Json encoded Daten mit den neuen Werten
*/
public function updateKind($kindId, $data)
{
$pdo = $this->linkDB();
$params = array();
$sql = "UPDATE KIND SET";
// Geht die Json-Daten durch und erweitert den SQL-Query
// und setzt die Bindparameter
// $index -> Spalte die geupdated wird
// $value -> neuer Wert
foreach ($data as $index => $value) {
$sql .= " " . $index . " = :" . $index;
$params[":" . $index] = $value;
}
$sql .= " WHERE id = :kindId;";
$params[":kindId"] = $kindId;
try {
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
} catch (\PDOException $e) {
return false;
}
$result = $stmt->fetchALL(\PDO::FETCH_ASSOC);
return $result;
} }
$result = $stmt->fetchALL(\PDO::FETCH_ASSOC); /**
*
* Fügt ein Kind mit gegebenen Daten in die Datenbank hinzu
*
* @param $data Die Daten für das neue Kind
*/
public function addKind($data)
{
$pdo = $this->linkDB();
return $result; $params = array();
}
/** $sql = "INSERT INTO Kind (";
* Updated die Daten eines Kindes
*
* @param $kindId Id des Kindes
* @param $data Json encoded Daten mit den neuen Werten
*/
public function updateKind($kindId, $data){
$pdo = $this->linkDB();
$params = array(); foreach ($data as $index => $value) {
$sql = "UPDATE KIND SET"; $sql .= $index . ", ";
}
// Geht die Json-Daten durch und erweitert den SQL-Query $sql = substr($sql, 0, strlen($sql) - 2) . ") VALUES (";
// und setzt die Bindparameter
// $index -> Spalte die geupdated wird foreach ($data as $value) {
// $value -> neuer Wert $sql .= ":" . $value . " ,";
foreach($data as $index=>$value){ $params[":" . $value] = $value;
$sql .= " ".$index." = :".$index; }
$params[":".$index] = $value;
$sql = substr($sql, 0, strlen($sql) - 2) . ");";
try {
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
} catch (\PDOException $e) {
return false;
}
$result = $stmt->fetchALL(\PDO::FETCH_ASSOC);
return $result;
} }
$sql .= " WHERE id = :kindId;"; /**
*
* Löscht ein Kind mit einer gegebenen Id aus der Datenbank
*
* @param $kindId Die Id des zu löschenden Kindes
*
*/
public function deleteKind($kindId)
{
$pdo = $this->linkDB();
$params[":kindId"] = $kindId; $params = array();
try{ $sql = "DELETE FROM Kind WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->excute($params); $params[":id"] = $kindId;
try {
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
} catch (\PDOException $e) {
return false;
}
$result = $stmt->fetchALL(\PDO::FETCH_ASSOC);
return $result;
} }
catch(\PDOException $e){
return false;
}
$result = $stmt->fetchALL(\PDO::FETCH_ASSOC);
return $result;
}
/**
* @param $data Die Daten für das neue Kind
*/
public function addKind($data){
$pdo = $this->linkDB();
$params = array();
$sql = "INSERT INTO Kind (";
foreach($data as $index=>$value){
$sql .= $index.", ";
$params[":"+$index] = $index;
}
$sql = substr($sql, 0, strlen($sql)-2).") VALUES (";
foreach($data as $value){
$sql .= ":".$value." ,";
$params[":"+$value] = $value;
}
$sql = substr($sql, 0, strlen($sql)-2).");";
try{
$stmt = $pdo->prepare($sql);
$stmt->excute($params);
}
catch(\PDOException $e){
return false;
}
$result = $stmt->fetchALL(\PDO::FETCH_ASSOC);
return $result;
}
public function deleteKind($kindId){
$pdo = $this->linkDB();
$params = array();
$sql = "DELETE FROM Kind WHERE id = :id";
$params[":id"] = $kindId;
try{
$stmt = $pdo->prepare($sql);
$stmt->excute($params);
}
catch(\PDOException $e){
return false;
}
$result = $stmt->fetchALL(\PDO::FETCH_ASSOC);
return $result;
}
} }

92
Model/TagesplanModel.php Normal file
View File

@ -0,0 +1,92 @@
<?php
//Programmiert von: Max Heer, Getestet von: Samuel Wolff
namespace ppb\Model;
use ppb\Library\Msg;
class TagesplanModel extends Database
{
public function getTagesplan()
{
$pdo = $this->linkDB();
$sql = "SELECT * FROM Tagesplan";
try {
$stmt = $pdo->prepare($sql);
$stmt->execute();
} catch (\PDOException $e) {
return false;
}
$result = $stmt->fetchAll(\PDO::FETCH_ASSOC);
return $result;
}
public function insertTagesplan($data)
{
$pdo = $this->linkDB();
$params = array();
$sql = "INSERT INTO Tagesplan (";
foreach ($data as $index => $value) {
$sql .= "" . $index . ",";
}
$sql = substr($sql, 0, strlen($sql) - 1) . ") VALUES (";
foreach ($data as $index => $value) {
$sql .= ":" . $index . ",";
$params[":" . $index] = $value;
}
$sql = substr($sql, 0, strlen($sql) - 1) . ");";
try {
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
return true;
} catch (\PDOException $e) {
echo $sql;
return false;
}
}
public function deleteTagesplan($id)
{
$pdo = $this->linkDB();
$params = array();
$sql = "DELETE FROM Tagesplan WHERE id=:id";
$params[":id"] = $id;
try {
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
return true;
} catch (\PDOException $e) {
return false;
}
}
public function getGerichteOnTag()
{
$pdo = $this->linkDB();
$datum = $_GET["datum"];
$sql = "SELECT Gericht.id, Gericht.name, Gericht.preis, Gericht.beschreibung FROM Gericht LEFT JOIN GibtsAm ON Gericht.id = GibtsAm.gid LEFT JOIN Tagesplan ON GibtsAm.tid = Tagesplan.id WHERE Tagesplan.datum = '$datum'";
try {
$stmt = $pdo->prepare($sql);
$stmt->execute();
} catch (\PDOException $e) {
echo $sql . " This do be faulty";
return false;
}
$result = $stmt->fetchAll(\PDO::FETCH_ASSOC);
return $result;
}
}
?>

View File

@ -1,45 +1,74 @@
<?php <?php
namespace kinderverwaltung\Model; namespace ppb\Model;
use kinderverwaltung\Library\Msg; //Programmiert von Stefan Groß
use ppb\Model\Database; //getestet von Samuel Wolff
class IstTeilModel extends Database{ class istTeilModel extends Database
{
public function getBestellung(){
$pdo = $this -> linkDB();
$sql = "SELECT bid FROM istTeil";
try {
$stmt = $pdo->prepare($sql);
}catch (\PDOException $e){
//nur zum Testen:
//new Msg(true,null,$e);
//echo $e;
return false;
}
return $stmt->fetchAll(\PDO::FETCH_ASSOC);
}
public function InsertIstTeil($data){
$pdo = $this -> linkDB();
$sql = "INSERT INTO istTeil(bid, gid)";
public function selectIstTeil()
{
$pdo = $this->linkDB();
$sql = "SELECT * FROM istTeil";
try { try {
$stmt = $pdo->prepare($sql); $stmt = $pdo->prepare($sql);
}catch (\PDOException $e){ $stmt->execute();
//nur zum Testen: } catch (\PDOException $e) {
//new Msg(true,null,$e);
//echo $e;
return false; return false;
} }
return $stmt->fetchAll(\PDO::FETCH_ASSOC); $results = $stmt->fetchAll(\PDO::FETCH_ASSOC);
foreach ($results as $key => $value) {
$results[$key]["bid"] += 0;
$results[$key]["gid"] += 0;
$results[$key]["id"] += 0;
}
return $results;
}
public function insertIstTeil($data)
{
$pdo = $this->linkDB();
$params = array();
$sql = "INSERT INTO istTeil (bid, gid) VALUES (:bid, :gid)";
foreach ($data as $key => $value) {
$params[":" . $key] = $value;
}
try {
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
} catch (\PDOException $e) {
return false;
}
return true;
}
public function deleteIstTeil($id)
{
$pdo = $this->linkDB();
$params = array();
$sql = "DELETE FROM istTeil WHERE id = :id";
$params[":id"] = $id;
try {
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
} catch (\PDOException $e) {
return false;
}
return true;
} }
} }
?> ?>

View File

@ -14,72 +14,76 @@
file_get_contents('php://input') die übergebenen json-Strings (für PUT/POST-Requests) file_get_contents('php://input') die übergebenen json-Strings (für PUT/POST-Requests)
*/ */
spl_autoload_register(function ($className) { spl_autoload_register(function ($className) {
if (substr($className, 0, 4) !== 'ppb\\') { return; } if (substr($className, 0, 4) !== 'ppb\\') {
return;
$fileName = __DIR__.'/'.str_replace('\\', DIRECTORY_SEPARATOR, substr($className, 4)).'.php';
if (file_exists($fileName)) { include $fileName; }
});
$endpoint = explode('/', trim($_SERVER['PATH_INFO'],'/'));
$data = json_decode(file_get_contents('php://input'), true);
$controllerName = $endpoint[0];
$endpoint2 = isset($endpoint[1]) ? $endpoint[1] : false;
$id = false;
$alias = false;
if ($endpoint2) {
if (preg_match('/^[0-9]+$/', $endpoint2)) {
$id = $endpoint2;
} else {
$alias = $endpoint2;
}
} }
$controllerClassName = 'ppb\\Controller\\'.ucfirst($controllerName). 'Controller'; $fileName = __DIR__ . '/' . str_replace('\\', DIRECTORY_SEPARATOR, substr($className, 4)) . '.php';
if ($_SERVER['REQUEST_METHOD'] == "DELETE") { if (file_exists($fileName)) {
$methodName = "delete" . ucfirst($controllerName); include $fileName;
} else if ($_SERVER['REQUEST_METHOD'] == "PUT") {
$methodName = "update" . ucfirst($controllerName);
} else if ($_SERVER['REQUEST_METHOD'] == "POST") {
$methodName = "write" . ucfirst($controllerName);
} else if ($_SERVER['REQUEST_METHOD'] == "GET") {
if ($alias) {
$methodName = $alias;
} else {
$methodName = "get" . ucfirst($controllerName);
}
} }
});
if (method_exists($controllerClassName, $methodName)) { $endpoint = explode('/', trim($_SERVER['PATH_INFO'], '/'));
$data = json_decode(file_get_contents('php://input'), true);
header('Content-Type: application/json'); $controllerName = $endpoint[0];
$endpoint2 = isset($endpoint[1]) ? $endpoint[1] : false;
$id = false;
$alias = false;
$controller = new $controllerClassName(); if ($endpoint2) {
//GET if (preg_match('/^[0-9]+$/', $endpoint2)) {
if ($_SERVER['REQUEST_METHOD'] == "GET") { $id = $endpoint2;
} else {
$alias = $endpoint2;
}
}
echo $controller->$methodName($id); $controllerClassName = 'ppb\\Controller\\' . ucfirst($controllerName) . 'Controller';
} else if ($_SERVER['REQUEST_METHOD'] == "DELETE") {
//POST $methodName = "delete" . ucfirst($controllerName);
if ($_SERVER['REQUEST_METHOD'] == "POST"){ } else if ($_SERVER['REQUEST_METHOD'] == "PUT") {
$methodName = "update" . ucfirst($controllerName);
} else if ($_SERVER['REQUEST_METHOD'] == "POST") {
$methodName = "write" . ucfirst($controllerName);
} else if ($_SERVER['REQUEST_METHOD'] == "GET") {
if ($alias) {
$methodName = $alias;
} else {
$methodName = "get" . ucfirst($controllerName);
}
}
if (method_exists($controllerClassName, $methodName)) {
header('Content-Type: application/json');
$controller = new $controllerClassName();
//GET
if ($_SERVER['REQUEST_METHOD'] == "GET") {
echo $controller->$methodName($id);
} else
//POST
if ($_SERVER['REQUEST_METHOD'] == "POST") {
echo $controller->$methodName($data); echo $controller->$methodName($data);
} else } else
//DELETE //DELETE
if ($_SERVER['REQUEST_METHOD'] == "DELETE"){ if ($_SERVER['REQUEST_METHOD'] == "DELETE") {
echo $controller->$methodName($id); echo $controller->$methodName($id);
} else } else
//PUT //PUT
{ {
echo $controller->$methodName($id, $data); echo $controller->$methodName($id, $data);
} }
} else { } else {
//http_response_code(404); //http_response_code(404);
new \ppb\Library\Msg(true, 'Page not found: '.$controllerClassName.'::'.$methodName); new \ppb\Library\Msg(true, 'Page not found: ' . $controllerClassName . '::' . $methodName);
} }
?> ?>