|
|
|
@ -4,75 +4,65 @@ declare(strict_types=1); |
|
|
|
|
|
|
|
|
|
|
|
namespace prj\mockup\models\app; |
|
|
|
namespace prj\mockup\models\app; |
|
|
|
|
|
|
|
|
|
|
|
class home_model { |
|
|
|
class home_model extends \tts\database\model { |
|
|
|
private $dbh; |
|
|
|
protected $pdo; |
|
|
|
private $name_demo_table = "test_names"; |
|
|
|
protected $table = "test_names"; |
|
|
|
private $db_helper; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function __construct($dbh) { |
|
|
|
public function __construct($dbh) { |
|
|
|
// \tts\exceptions\DB_Exception::$error_message = "Home Model Error"; |
|
|
|
// \tts\exceptions\DB_Exception::$error_message = "Home Model Error"; |
|
|
|
$this->dbh = $dbh; |
|
|
|
$this->pdo = $dbh; |
|
|
|
$this->db_helper = new \tts\database\help_save($this->dbh, $this->name_demo_table); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function is_valid(array $data): bool { |
|
|
|
|
|
|
|
return \tts\database\help_load::is_valid($data); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function pre_save(): bool { |
|
|
|
public function pre_save(): bool { |
|
|
|
$missing = $this->db_helper->get_missing(); |
|
|
|
$missing = $this->get_missing(); |
|
|
|
if (count($missing)) { |
|
|
|
if (count($missing)) { |
|
|
|
echo "Required fields not set " . implode(",", $missing) . "!"; |
|
|
|
echo "Required fields not set " . implode(",", $missing) . "!"; |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if ($this->db_helper->dump_diff()) { |
|
|
|
if ($this->dump_diff()) { |
|
|
|
return false; // Opps forgot a field! |
|
|
|
return false; // Opps forgot a field! |
|
|
|
} |
|
|
|
} |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function init_name_demo_table(): void { |
|
|
|
public function init_name_demo_table(): void { |
|
|
|
$create_table_sql = "CREATE TABLE IF NOT EXISTS `{$this->name_demo_table}`( |
|
|
|
$create_table_sql = "CREATE TABLE IF NOT EXISTS `{$this->table}`( |
|
|
|
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, |
|
|
|
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, |
|
|
|
`first_name` TEXT, |
|
|
|
`first_name` TEXT, |
|
|
|
`last_name` TEXT, |
|
|
|
`last_name` TEXT, |
|
|
|
`age` INTEGER |
|
|
|
`age` INTEGER |
|
|
|
)"; |
|
|
|
)"; |
|
|
|
try { |
|
|
|
try { |
|
|
|
$this->dbh->query($create_table_sql); |
|
|
|
$this->pdo->query($create_table_sql); |
|
|
|
} catch (\PDOException $e) { |
|
|
|
} catch (\PDOException $e) { |
|
|
|
echo \tts\exceptions\DB_Exception::customMessage($e, "Unable to make table!"); |
|
|
|
echo \tts\exceptions\DB_Exception::customMessage($e, "Unable to make table!"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function populate($rows): void { |
|
|
|
public function populate($rows): void { |
|
|
|
$dummy = new \tts\database\dummy_data($this->dbh); |
|
|
|
$dummy = new \tts\database\dummy_data($this->pdo); |
|
|
|
$data = [ 'first_name' => \tts\arrays\mocking\rnd_names::get_first_names(), |
|
|
|
$data = [ 'first_name' => \tts\arrays\mocking\rnd_names::get_first_names(), |
|
|
|
'last_name' => \tts\arrays\mocking\rnd_names::get_last_names(), |
|
|
|
'last_name' => \tts\arrays\mocking\rnd_names::get_last_names(), |
|
|
|
'age' => \tts\arrays\mocking\rnd_names::mock_age() ]; |
|
|
|
'age' => \tts\arrays\mocking\rnd_names::mock_age() ]; |
|
|
|
try { |
|
|
|
try { |
|
|
|
$dummy->add_dummy_data($this->name_demo_table, $rows, $data); |
|
|
|
$dummy->add_dummy_data($this->table, $rows, $data); |
|
|
|
} catch (\PDOException $e) { |
|
|
|
} catch (\PDOException $e) { |
|
|
|
echo \tts\exceptions\DB_Exception::customMessage($e, "Unable to populate table!"); |
|
|
|
echo \tts\exceptions\DB_Exception::customMessage($e, "Unable to populate table!"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function get_member(string $member): ?string { |
|
|
|
|
|
|
|
return $this->db_helper->get_member($member); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function save_new_user(array $input): bool { |
|
|
|
public function save_new_user(array $input): bool { |
|
|
|
$set = $this->db_helper->set_members_by_generator($input); |
|
|
|
$set = $this->set_members_by_generator($input); |
|
|
|
if ($set === false) { |
|
|
|
if ($set === false) { |
|
|
|
return false; // Found Validation issues in input |
|
|
|
return false; // Found Validation issues in input |
|
|
|
} |
|
|
|
} |
|
|
|
try { |
|
|
|
try { |
|
|
|
$status = $this->db_helper->save($this); |
|
|
|
$status = $this->save(); |
|
|
|
} catch (\PDOException $e) { |
|
|
|
} catch (\PDOException $e) { |
|
|
|
echo \tts\exceptions\DB_Exception::customMessage($e, "Unable to save changes!"); |
|
|
|
echo \tts\exceptions\DB_Exception::customMessage($e, "Unable to save changes!"); |
|
|
|
} |
|
|
|
} |
|
|
|
if ($status === $this->db_helper::successful_save) { |
|
|
|
if ($status === self::successful_save) { |
|
|
|
return true; // It saved |
|
|
|
return true; // It saved |
|
|
|
} |
|
|
|
} |
|
|
|
return false; // It did not save |
|
|
|
return false; // It did not save |
|
|
|
@ -80,12 +70,12 @@ class home_model { |
|
|
|
|
|
|
|
|
|
|
|
public function get_users(int $number_of_users_to_get = 12): \Generator { |
|
|
|
public function get_users(int $number_of_users_to_get = 12): \Generator { |
|
|
|
if ($number_of_users_to_get === 0) { |
|
|
|
if ($number_of_users_to_get === 0) { |
|
|
|
return \tts\database\help_load::empty_generator(); |
|
|
|
return self::empty_generator(); |
|
|
|
} |
|
|
|
} |
|
|
|
try { |
|
|
|
try { |
|
|
|
$sql = "SELECT * FROM {$this->name_demo_table} LIMIT {$number_of_users_to_get}"; |
|
|
|
$sql = "SELECT * FROM {$this->table} LIMIT {$number_of_users_to_get}"; |
|
|
|
$result = $this->dbh->query($sql); |
|
|
|
$result = $this->pdo->query($sql); |
|
|
|
return \tts\database\help_load::pdo_fetch_lazy($result); |
|
|
|
return self::pdo_fetch_lazy($result); |
|
|
|
} catch (\PDOException $e) { |
|
|
|
} catch (\PDOException $e) { |
|
|
|
echo \tts\exceptions\DB_Exception::customMessage($e); |
|
|
|
echo \tts\exceptions\DB_Exception::customMessage($e); |
|
|
|
} |
|
|
|
} |
|
|
|
|