Uploaded door sensor
This commit is contained in:
74
src/pvv/side/door.php
Normal file
74
src/pvv/side/door.php
Normal file
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
namespace pvv\side;
|
||||
|
||||
use \PDO;
|
||||
|
||||
class Door{
|
||||
private $pdo;
|
||||
|
||||
public function __construct(PDO $pdo){
|
||||
$this->pdo = $pdo;
|
||||
}
|
||||
|
||||
public function getAll() {
|
||||
$query = 'SELECT time, open FROM door ORDER BY time DESC';
|
||||
$statement = $this->pdo->prepare($query);
|
||||
$statement->execute();
|
||||
|
||||
$doorEvents = [];
|
||||
foreach($statement->fetchAll() as $row){
|
||||
$doorEvents[] = [
|
||||
'time' => $row['time'],
|
||||
'open' => $row['open']
|
||||
];
|
||||
}
|
||||
|
||||
return $doorEvents;
|
||||
}
|
||||
|
||||
public function getEntriesAfter($startTime) {
|
||||
$query = 'SELECT time, open FROM door WHERE time > :startTime ORDER BY time DESC';
|
||||
$statement = $this->pdo->prepare($query);
|
||||
$statement->bindParam(':startTime', $startTime, PDO::PARAM_STR);
|
||||
$statement->execute();
|
||||
|
||||
$doorEvents = [];
|
||||
foreach($statement->fetchAll() as $row){
|
||||
$doorEvents[] = [
|
||||
'time' => (int)$row['time'],
|
||||
'open' => (bool)$row['open']
|
||||
];
|
||||
}
|
||||
|
||||
return $doorEvents;
|
||||
}
|
||||
|
||||
public function getCurrent() {
|
||||
$query = 'SELECT time, open FROM door ORDER BY time DESC LIMIT 1';
|
||||
$statement = $this->pdo->prepare($query);
|
||||
$statement->execute();
|
||||
$row = $statement->fetch();
|
||||
return [
|
||||
'time' => (int)$row['time'],
|
||||
'open' => (bool)$row['open']
|
||||
];
|
||||
}
|
||||
|
||||
private function removeOld() {
|
||||
$firstValidTime = time() - 60*60*24*7; //One week before now
|
||||
$query = 'DELETE FROM door WHERE time < :firstValid';
|
||||
$statement = $this->pdo->prepare($query);
|
||||
$statement->bindParam(':firstValid', $firstValidTime, PDO::PARAM_STR);
|
||||
$statement->execute();
|
||||
}
|
||||
|
||||
public function createEvent($time, $open) {
|
||||
$query = 'INSERT INTO door(time, open) VALUES (:time, :open)';
|
||||
$statement = $this->pdo->prepare($query);
|
||||
$statement->bindParam(':time', $time, PDO::PARAM_STR);
|
||||
$statement->bindParam(':open', $open, PDO::PARAM_STR);
|
||||
$statement->execute();
|
||||
|
||||
$this->removeOld();
|
||||
}
|
||||
}
|
@@ -1,79 +0,0 @@
|
||||
<?php
|
||||
namespace pvv\side;
|
||||
|
||||
use \PDO;
|
||||
|
||||
class Doors{
|
||||
private $pdo;
|
||||
|
||||
public function __construct(PDO $pdo){
|
||||
$this->pdo = $pdo;
|
||||
}
|
||||
|
||||
public function getAll() {
|
||||
$query = 'SELECT name, open, description FROM doors ORDER BY open DESC, name ASC';
|
||||
$statement = $this->pdo->prepare($query);
|
||||
$statement->execute();
|
||||
|
||||
$doors = [];
|
||||
foreach($statement->fetchAll() as $row){
|
||||
$doors[] = [
|
||||
'name' => $row['name'],
|
||||
'open' => (int)$row['open'],
|
||||
'description' => $row['description'],
|
||||
];
|
||||
}
|
||||
|
||||
return $doors;
|
||||
}
|
||||
|
||||
public function getByName($name){
|
||||
$query = 'SELECT name, open, description FROM doors WHERE name=:name';
|
||||
$statement = $this->pdo->prepare($query);
|
||||
$statement->bindParam(':name', $name, PDO::PARAM_STR);
|
||||
$statement->execute();
|
||||
|
||||
$row = $statement->fetch();
|
||||
if (!$row) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return [
|
||||
'name' => $row['name'],
|
||||
'open' => (int)$row['open'],
|
||||
'description' => $row['description'],
|
||||
];
|
||||
}
|
||||
|
||||
public function setDoorState($name, $open) {
|
||||
$query = 'UPDATE doors SET open=:open WHERE name=:name';
|
||||
$statement = $this->pdo->prepare($query);
|
||||
$statement->bindParam(':name', $name, PDO::PARAM_STR);
|
||||
$statement->bindParam(':open', $open, PDO::PARAM_INT);
|
||||
$statement->execute();
|
||||
}
|
||||
|
||||
|
||||
public function createDoor($name, $description) {
|
||||
$query = 'INSERT INTO doors(name, open, description) VALUES (:name, TRUE, :desc)';
|
||||
$statement = $this->pdo->prepare($query);
|
||||
$statement->bindParam(':name', $name, PDO::PARAM_STR);
|
||||
$statement->bindParam(':desc', $description, PDO::PARAM_STR);
|
||||
$statement->execute();
|
||||
}
|
||||
|
||||
public function updateDoorDescription($name, $description) {
|
||||
$query = 'UPDATE doors SET descriptin=:desc WHERE name=:name';
|
||||
$statement = $this->pdo->prepare($query);
|
||||
$statement->bindParam(':name', $name, PDO::PARAM_STR);
|
||||
$statement->bindParam(':desc', $description, PDO::PARAM_STR);
|
||||
$statement->execute();
|
||||
}
|
||||
|
||||
public function deleteDoor($name) {
|
||||
$query = 'DELETE FROM doors WHERE name = :name;';
|
||||
$statement = $this->pdo->prepare($query);
|
||||
$statement->bindParam(':name', $name, PDO::PARAM_STR);
|
||||
$statement->execute();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user