Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Phoenix Hospitality Management System
- * Phoenix REST API - API Department Repository file
- * Written in PHP using the Slim micro-framework
- *
- * @author Troy L. Marker
- * @version 1.0.0
- * @since 0.5.0
- * @copyright Copyright (c) 2020-2021 By Troy Marker Enterprises
- *
- * Declare name space and Import needed functions/classes
- */
- namespace App\Domain\Repository;
- use PDO;
- /**
- * This class provides a repository to the departments Database table
- */
- class Department {
- protected $connection;
- /**
- * Class constructor
- * @param PDO $connection - The database connection
- */
- public function __construct(PDO $connection) {
- $this->connection = $connection;
- }
- /**
- * This method inserts a new department into the database
- * @param array $Params - Method Parameters
- * @return array $AddRetval - Method Return value
- */
- public function add(array $params): string {
- $variables = ['department' => $params['department']];
- $statement = "SELECT id FROM " . strtolower($params['db']) . "_departments WHERE department=:department";
- $result = $this->connection->prepare($statement);
- $result->execute($variables);
- if ($result->rowCount() > 0) {
- return false;
- }
- $statement = "INSERT INTO " . strtolower($params['db']) . "_departments SET department=:department;";
- $this->connection->prepare($statement)->execute($variables);
- return $params['department'];
- }
- /**
- * This method returns a list of departments
- * @param array $params - Method Parameters
- * @return array $ListsRetval - Method Return value
- */
- public function lists(array $params): array {
- if (isset($params['id'])) {
- $variables = ['id' => $params['id']];
- $statement = "SELECT department FROM " . strtolower($params['db']) . "_departments WHERE id=:id";
- $result = $this->connection->prepare($statement);
- $result->execute($variables);
- return $result->fetch(PDO::FETCH_ASSOC);
- }
- $statement = "SELECT * FROM " . strtolower($params['db']) . "_departments ORDER BY id";
- $result = $this->connection->prepare($statement);
- $result->execute();
- return $result->fetchAll(PDO::FETCH_ASSOC);
- }
- /**
- * This method will remove a department from the database
- * @param array $params - Method parameters
- * @return string $RemoveRetval - The name of the department removed.
- */
- public function remove(array $params): string {
- $variables = ['id' => $params['id']];
- $statement = "SELECT department FROM " . strtolower($params['db']) . "_departments WHERE id=:id";
- $result = $this->connection->prepare($statement);
- $result->execute($variables);
- $return = $result->fetch(PDO::FETCH_ASSOC);
- $statement = "DELETE FROM " . strtolower($params['db']) . "_departments WHERE id=:id";
- $result = $this->connection->prepare($statement);
- $result->execute($variables);
- return $return['department'];
- }
- /**
- * The method update all fields in a department record
- * @param array $params - Method parameters
- * @return array $ReplaceRetval - The method results
- */
- public function replace(array $params): array {
- $variables = ['id' => $params['id'], 'department' => $params['department']];
- $statement = "UPDATE " . strtolower($params['db']) . "_departments SET department=:department WHERE id=:id";
- $result = $this->connection->prepare($statement);
- $result->execute($variables);
- return $this->lists($params);
- }
- /**
- * This method will change the name of a department in the database
- * @param array $params - Method parameters
- * @return array - Call success status with message
- */
- public function update(array $params): array {
- $variables = ['id' => $params['id'], 'department' => $params['department']];
- $statement = "UPDATE " . strtolower($params['db']) . "_departments SET department=:department WHERE id=:id";
- $result = $this->connection->prepare($statement);
- $result->execute($variables);
- return $this->lists($params);
- }
- /**
- * This method will check if a department is in the database
- * @param array $params - Method parameters
- * @return boolean Method result
- */
- public function check(array $params): bool {
- $variables = ['department' => $params['department']];
- $statement = "SELECT * FROM " . strtolower($params['db']) . "_departments WHERE department=:department";
- $result = $this->connection->prepare($statement);
- $result->execute($variables);
- if ($result->rowCount() != 0) {
- return true;
- } else {
- return false;
- }
- }
- }
RAW Paste Data