mirror of
https://github.com/alextselegidis/easyappointments.git
synced 2024-11-14 03:52:21 +03:00
Define get/set methods for related model resources (provider, secretary, admin users)
This commit is contained in:
parent
ea276bd649
commit
1fbe17aade
3 changed files with 125 additions and 141 deletions
|
@ -211,10 +211,7 @@ class Admins_model extends EA_Model
|
||||||
|
|
||||||
foreach ($admins as &$admin) {
|
foreach ($admins as &$admin) {
|
||||||
$this->cast($admin);
|
$this->cast($admin);
|
||||||
|
$admin['settings'] = $this->get_settings($admin['id']);
|
||||||
$admin['settings'] = $this->db->get_where('user_settings', ['id_users' => $admin['id']])->row_array();
|
|
||||||
|
|
||||||
unset($admin['settings']['id_users'], $admin['settings']['password'], $admin['settings']['salt']);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $admins;
|
return $admins;
|
||||||
|
@ -264,7 +261,7 @@ class Admins_model extends EA_Model
|
||||||
$settings['salt'] = generate_salt();
|
$settings['salt'] = generate_salt();
|
||||||
$settings['password'] = hash_password($settings['salt'], $settings['password']);
|
$settings['password'] = hash_password($settings['salt'], $settings['password']);
|
||||||
|
|
||||||
$this->save_settings($admin['id'], $settings);
|
$this->set_settings($admin['id'], $settings);
|
||||||
|
|
||||||
return $admin['id'];
|
return $admin['id'];
|
||||||
}
|
}
|
||||||
|
@ -277,7 +274,7 @@ class Admins_model extends EA_Model
|
||||||
*
|
*
|
||||||
* @throws InvalidArgumentException
|
* @throws InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
protected function save_settings(int $admin_id, array $settings): void
|
public function set_settings(int $admin_id, array $settings): void
|
||||||
{
|
{
|
||||||
if (empty($settings)) {
|
if (empty($settings)) {
|
||||||
throw new InvalidArgumentException('The settings argument cannot be empty.');
|
throw new InvalidArgumentException('The settings argument cannot be empty.');
|
||||||
|
@ -295,6 +292,22 @@ class Admins_model extends EA_Model
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the admin settings.
|
||||||
|
*
|
||||||
|
* @param int $admin_id Admin ID.
|
||||||
|
*
|
||||||
|
* @throws InvalidArgumentException
|
||||||
|
*/
|
||||||
|
public function get_settings(int $admin_id): array
|
||||||
|
{
|
||||||
|
$settings = $this->db->get_where('user_settings', ['id_users' => $admin_id])->row_array();
|
||||||
|
|
||||||
|
unset($settings['id_users'], $settings['password'], $settings['salt']);
|
||||||
|
|
||||||
|
return $settings;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the value of an admin setting.
|
* Set the value of an admin setting.
|
||||||
*
|
*
|
||||||
|
@ -347,7 +360,7 @@ class Admins_model extends EA_Model
|
||||||
throw new RuntimeException('Could not update admin.');
|
throw new RuntimeException('Could not update admin.');
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->save_settings($admin['id'], $settings);
|
$this->set_settings($admin['id'], $settings);
|
||||||
|
|
||||||
return $admin['id'];
|
return $admin['id'];
|
||||||
}
|
}
|
||||||
|
@ -390,10 +403,7 @@ class Admins_model extends EA_Model
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->cast($admin);
|
$this->cast($admin);
|
||||||
|
$admin['settings'] = $this->get_settings($admin['id']);
|
||||||
$admin['settings'] = $this->db->get_where('user_settings', ['id_users' => $admin_id])->row_array();
|
|
||||||
|
|
||||||
unset($admin['settings']['id_users'], $admin['settings']['password'], $admin['settings']['salt']);
|
|
||||||
|
|
||||||
return $admin;
|
return $admin;
|
||||||
}
|
}
|
||||||
|
@ -507,10 +517,7 @@ class Admins_model extends EA_Model
|
||||||
|
|
||||||
foreach ($admins as &$admin) {
|
foreach ($admins as &$admin) {
|
||||||
$this->cast($admin);
|
$this->cast($admin);
|
||||||
|
$admin['settings'] = $this->get_settings($admin['id']);
|
||||||
$admin['settings'] = $this->db->get_where('user_settings', ['id_users' => $admin['id']])->row_array();
|
|
||||||
|
|
||||||
unset($admin['settings']['id_users'], $admin['settings']['password'], $admin['settings']['salt']);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $admins;
|
return $admins;
|
||||||
|
|
|
@ -225,20 +225,8 @@ class Providers_model extends EA_Model
|
||||||
|
|
||||||
foreach ($providers as &$provider) {
|
foreach ($providers as &$provider) {
|
||||||
$this->cast($provider);
|
$this->cast($provider);
|
||||||
|
$provider['settings'] = $this->get_settings($provider['id']);
|
||||||
$provider['settings'] = $this->db->get_where('user_settings', ['id_users' => $provider['id']])->row_array();
|
$provider['services'] = $this->get_service_ids($provider['id']);
|
||||||
|
|
||||||
unset($provider['settings']['id_users'], $provider['settings']['password'], $provider['settings']['salt']);
|
|
||||||
|
|
||||||
$provider['services'] = [];
|
|
||||||
|
|
||||||
$service_provider_connections = $this->db
|
|
||||||
->get_where('services_providers', ['id_users' => $provider['id']])
|
|
||||||
->result_array();
|
|
||||||
|
|
||||||
foreach ($service_provider_connections as $service_provider_connection) {
|
|
||||||
$provider['services'][] = (int) $service_provider_connection['id_services'];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $providers;
|
return $providers;
|
||||||
|
@ -289,8 +277,8 @@ class Providers_model extends EA_Model
|
||||||
$settings['salt'] = generate_salt();
|
$settings['salt'] = generate_salt();
|
||||||
$settings['password'] = hash_password($settings['salt'], $settings['password']);
|
$settings['password'] = hash_password($settings['salt'], $settings['password']);
|
||||||
|
|
||||||
$this->save_settings($provider['id'], $settings);
|
$this->set_settings($provider['id'], $settings);
|
||||||
$this->save_service_ids($provider['id'], $service_ids);
|
$this->set_service_ids($provider['id'], $service_ids);
|
||||||
|
|
||||||
return $provider['id'];
|
return $provider['id'];
|
||||||
}
|
}
|
||||||
|
@ -303,7 +291,7 @@ class Providers_model extends EA_Model
|
||||||
*
|
*
|
||||||
* @throws InvalidArgumentException
|
* @throws InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
protected function save_settings(int $provider_id, array $settings): void
|
public function set_settings(int $provider_id, array $settings): void
|
||||||
{
|
{
|
||||||
if (empty($settings)) {
|
if (empty($settings)) {
|
||||||
throw new InvalidArgumentException('The settings argument cannot be empty.');
|
throw new InvalidArgumentException('The settings argument cannot be empty.');
|
||||||
|
@ -334,6 +322,22 @@ class Providers_model extends EA_Model
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the provider settings.
|
||||||
|
*
|
||||||
|
* @param int $provider_id Provider ID.
|
||||||
|
*
|
||||||
|
* @throws InvalidArgumentException
|
||||||
|
*/
|
||||||
|
public function get_settings(int $provider_id): array
|
||||||
|
{
|
||||||
|
$settings = $this->db->get_where('user_settings', ['id_users' => $provider_id])->row_array();
|
||||||
|
|
||||||
|
unset($settings['id_users'], $settings['password'], $settings['salt']);
|
||||||
|
|
||||||
|
return $settings;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the value of a provider setting.
|
* Set the value of a provider setting.
|
||||||
*
|
*
|
||||||
|
@ -385,8 +389,8 @@ class Providers_model extends EA_Model
|
||||||
throw new RuntimeException('Could not update provider.');
|
throw new RuntimeException('Could not update provider.');
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->save_settings($provider['id'], $settings);
|
$this->set_settings($provider['id'], $settings);
|
||||||
$this->save_service_ids($provider['id'], $service_ids);
|
$this->set_service_ids($provider['id'], $service_ids);
|
||||||
|
|
||||||
return $provider['id'];
|
return $provider['id'];
|
||||||
}
|
}
|
||||||
|
@ -397,7 +401,7 @@ class Providers_model extends EA_Model
|
||||||
* @param int $provider_id Provider ID.
|
* @param int $provider_id Provider ID.
|
||||||
* @param array $service_ids Service IDs.
|
* @param array $service_ids Service IDs.
|
||||||
*/
|
*/
|
||||||
protected function save_service_ids(int $provider_id, array $service_ids): void
|
public function set_service_ids(int $provider_id, array $service_ids): void
|
||||||
{
|
{
|
||||||
// Re-insert the provider-service connections.
|
// Re-insert the provider-service connections.
|
||||||
$this->db->delete('services_providers', ['id_users' => $provider_id]);
|
$this->db->delete('services_providers', ['id_users' => $provider_id]);
|
||||||
|
@ -412,6 +416,26 @@ class Providers_model extends EA_Model
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the provider service IDs.
|
||||||
|
*
|
||||||
|
* @param int $provider_id Provider ID.
|
||||||
|
*/
|
||||||
|
public function get_service_ids(int $provider_id): array
|
||||||
|
{
|
||||||
|
$service_provider_connections = $this->db
|
||||||
|
->get_where('services_providers', ['id_users' => $provider_id])
|
||||||
|
->result_array();
|
||||||
|
|
||||||
|
$service_ids = [];
|
||||||
|
|
||||||
|
foreach ($service_provider_connections as $service_provider_connection) {
|
||||||
|
$service_ids[] = (int) $service_provider_connection['id_services'];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $service_ids;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove an existing provider from the database.
|
* Remove an existing provider from the database.
|
||||||
*
|
*
|
||||||
|
@ -553,20 +577,8 @@ class Providers_model extends EA_Model
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->cast($provider);
|
$this->cast($provider);
|
||||||
|
$provider['settings'] = $this->get_settings($provider['id']);
|
||||||
$provider['settings'] = $this->db->get_where('user_settings', ['id_users' => $provider_id])->row_array();
|
$provider['services'] = $this->get_service_ids($provider['id']);
|
||||||
|
|
||||||
unset($provider['settings']['id_users'], $provider['settings']['password'], $provider['settings']['salt']);
|
|
||||||
|
|
||||||
$service_provider_connections = $this->db
|
|
||||||
->get_where('services_providers', ['id_users' => $provider_id])
|
|
||||||
->result_array();
|
|
||||||
|
|
||||||
$provider['services'] = [];
|
|
||||||
|
|
||||||
foreach ($service_provider_connections as $service_provider_connection) {
|
|
||||||
$provider['services'][] = (int) $service_provider_connection['id_services'];
|
|
||||||
}
|
|
||||||
|
|
||||||
return $provider;
|
return $provider;
|
||||||
}
|
}
|
||||||
|
@ -622,25 +634,8 @@ class Providers_model extends EA_Model
|
||||||
|
|
||||||
foreach ($providers as &$provider) {
|
foreach ($providers as &$provider) {
|
||||||
$this->cast($provider);
|
$this->cast($provider);
|
||||||
|
$provider['settings'] = $this->get_settings($provider['id']);
|
||||||
$provider['settings'] = $this->db->get_where('user_settings', ['id_users' => $provider['id']])->row_array();
|
$provider['services'] = $this->get_service_ids($provider['id']);
|
||||||
|
|
||||||
unset(
|
|
||||||
$provider['settings']['id_users'],
|
|
||||||
$provider['settings']['username'],
|
|
||||||
$provider['settings']['password'],
|
|
||||||
$provider['settings']['salt'],
|
|
||||||
);
|
|
||||||
|
|
||||||
$provider['services'] = [];
|
|
||||||
|
|
||||||
$service_provider_connections = $this->db
|
|
||||||
->get_where('services_providers', ['id_users' => $provider['id']])
|
|
||||||
->result_array();
|
|
||||||
|
|
||||||
foreach ($service_provider_connections as $service_provider_connection) {
|
|
||||||
$provider['services'][] = (int) $service_provider_connection['id_services'];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $providers;
|
return $providers;
|
||||||
|
@ -697,20 +692,8 @@ class Providers_model extends EA_Model
|
||||||
|
|
||||||
foreach ($providers as &$provider) {
|
foreach ($providers as &$provider) {
|
||||||
$this->cast($provider);
|
$this->cast($provider);
|
||||||
|
$provider['settings'] = $this->get_settings($provider['id']);
|
||||||
$provider['settings'] = $this->db->get_where('user_settings', ['id_users' => $provider['id']])->row_array();
|
$provider['services'] = $this->get_service_ids($provider['id']);
|
||||||
|
|
||||||
unset($provider['settings']['id_users'], $provider['settings']['password'], $provider['settings']['salt']);
|
|
||||||
|
|
||||||
$provider['services'] = [];
|
|
||||||
|
|
||||||
$service_provider_connections = $this->db
|
|
||||||
->get_where('services_providers', ['id_users' => $provider['id']])
|
|
||||||
->result_array();
|
|
||||||
|
|
||||||
foreach ($service_provider_connections as $service_provider_connection) {
|
|
||||||
$provider['services'][] = (int) $service_provider_connection['id_services'];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $providers;
|
return $providers;
|
||||||
|
|
|
@ -222,25 +222,9 @@ class Secretaries_model extends EA_Model
|
||||||
$secretaries = $this->db->get_where('users', ['id_roles' => $role_id], $limit, $offset)->result_array();
|
$secretaries = $this->db->get_where('users', ['id_roles' => $role_id], $limit, $offset)->result_array();
|
||||||
|
|
||||||
foreach ($secretaries as &$secretary) {
|
foreach ($secretaries as &$secretary) {
|
||||||
$secretary['settings'] = $this->db
|
$this->cast($secretary);
|
||||||
->get_where('user_settings', ['id_users' => $secretary['id']])
|
$secretary['settings'] = $this->get_settings($secretary['id']);
|
||||||
->row_array();
|
$secretary['providers'] = $this->get_provider_ids($secretary['id']);
|
||||||
|
|
||||||
unset(
|
|
||||||
$secretary['settings']['id_users'],
|
|
||||||
$secretary['settings']['password'],
|
|
||||||
$secretary['settings']['salt'],
|
|
||||||
);
|
|
||||||
|
|
||||||
$secretary_provider_connections = $this->db
|
|
||||||
->get_where('secretaries_providers', ['id_users_secretary' => $secretary['id']])
|
|
||||||
->result_array();
|
|
||||||
|
|
||||||
$secretary['providers'] = [];
|
|
||||||
|
|
||||||
foreach ($secretary_provider_connections as $secretary_provider_connection) {
|
|
||||||
$secretary['providers'][] = (int) $secretary_provider_connection['id_users_provider'];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $secretaries;
|
return $secretaries;
|
||||||
|
@ -292,21 +276,21 @@ class Secretaries_model extends EA_Model
|
||||||
$settings['salt'] = generate_salt();
|
$settings['salt'] = generate_salt();
|
||||||
$settings['password'] = hash_password($settings['salt'], $settings['password']);
|
$settings['password'] = hash_password($settings['salt'], $settings['password']);
|
||||||
|
|
||||||
$this->save_settings($secretary['id'], $settings);
|
$this->set_settings($secretary['id'], $settings);
|
||||||
$this->save_provider_ids($secretary['id'], $provider_ids);
|
$this->set_provider_ids($secretary['id'], $provider_ids);
|
||||||
|
|
||||||
return $secretary['id'];
|
return $secretary['id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Save the secretary settings.
|
* Set the secretary settings.
|
||||||
*
|
*
|
||||||
* @param int $secretary_id Secretary ID.
|
* @param int $secretary_id Secretary ID.
|
||||||
* @param array $settings Associative array with the settings data.
|
* @param array $settings Associative array with the settings data.
|
||||||
*
|
*
|
||||||
* @throws InvalidArgumentException
|
* @throws InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
protected function save_settings(int $secretary_id, array $settings): void
|
public function set_settings(int $secretary_id, array $settings): void
|
||||||
{
|
{
|
||||||
if (empty($settings)) {
|
if (empty($settings)) {
|
||||||
throw new InvalidArgumentException('The settings argument cannot be empty.');
|
throw new InvalidArgumentException('The settings argument cannot be empty.');
|
||||||
|
@ -324,6 +308,22 @@ class Secretaries_model extends EA_Model
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the secretary settings.
|
||||||
|
*
|
||||||
|
* @param int $secretary_id Secretary ID.
|
||||||
|
*
|
||||||
|
* @throws InvalidArgumentException
|
||||||
|
*/
|
||||||
|
public function get_settings(int $secretary_id): array
|
||||||
|
{
|
||||||
|
$settings = $this->db->get_where('user_settings', ['id_users' => $secretary_id])->row_array();
|
||||||
|
|
||||||
|
unset($settings['id_users'], $settings['password'], $settings['salt']);
|
||||||
|
|
||||||
|
return $settings;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the value of a secretary setting.
|
* Set the value of a secretary setting.
|
||||||
*
|
*
|
||||||
|
@ -375,19 +375,19 @@ class Secretaries_model extends EA_Model
|
||||||
throw new RuntimeException('Could not update secretary.');
|
throw new RuntimeException('Could not update secretary.');
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->save_settings($secretary['id'], $settings);
|
$this->set_settings($secretary['id'], $settings);
|
||||||
$this->save_provider_ids($secretary['id'], $provider_ids);
|
$this->set_provider_ids($secretary['id'], $provider_ids);
|
||||||
|
|
||||||
return (int) $secretary['id'];
|
return (int) $secretary['id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Save the secretary provider IDs.
|
* Set the secretary provider IDs.
|
||||||
*
|
*
|
||||||
* @param int $secretary_id Secretary ID.
|
* @param int $secretary_id Secretary ID.
|
||||||
* @param array $provider_ids Provider IDs.
|
* @param array $provider_ids Provider IDs.
|
||||||
*/
|
*/
|
||||||
protected function save_provider_ids(int $secretary_id, array $provider_ids): void
|
public function set_provider_ids(int $secretary_id, array $provider_ids): void
|
||||||
{
|
{
|
||||||
// Re-insert the secretary-provider connections.
|
// Re-insert the secretary-provider connections.
|
||||||
$this->db->delete('secretaries_providers', ['id_users_secretary' => $secretary_id]);
|
$this->db->delete('secretaries_providers', ['id_users_secretary' => $secretary_id]);
|
||||||
|
@ -402,6 +402,26 @@ class Secretaries_model extends EA_Model
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the secretary provider IDs.
|
||||||
|
*
|
||||||
|
* @param int $secretary_id Secretary ID.
|
||||||
|
*/
|
||||||
|
public function get_provider_ids(int $secretary_id): array
|
||||||
|
{
|
||||||
|
$secretary_provider_connections = $this->db
|
||||||
|
->get_where('secretaries_providers', ['id_users_secretary' => $secretary_id])
|
||||||
|
->result_array();
|
||||||
|
|
||||||
|
$provider_ids = [];
|
||||||
|
|
||||||
|
foreach ($secretary_provider_connections as $secretary_provider_connection) {
|
||||||
|
$provider_ids[] = (int) $secretary_provider_connection['id_users_provider'];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $provider_ids;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove an existing secretary from the database.
|
* Remove an existing secretary from the database.
|
||||||
*
|
*
|
||||||
|
@ -522,25 +542,9 @@ class Secretaries_model extends EA_Model
|
||||||
->result_array();
|
->result_array();
|
||||||
|
|
||||||
foreach ($secretaries as &$secretary) {
|
foreach ($secretaries as &$secretary) {
|
||||||
$secretary['settings'] = $this->db
|
$this->cast($secretary);
|
||||||
->get_where('user_settings', ['id_users' => $secretary['id']])
|
$secretary['settings'] = $this->get_settings($secretary['id']);
|
||||||
->row_array();
|
$secretary['providers'] = $this->get_provider_ids($secretary['id']);
|
||||||
|
|
||||||
unset(
|
|
||||||
$secretary['settings']['id_users'],
|
|
||||||
$secretary['settings']['password'],
|
|
||||||
$secretary['settings']['salt'],
|
|
||||||
);
|
|
||||||
|
|
||||||
$secretary_provider_connections = $this->db
|
|
||||||
->get_where('secretaries_providers', ['id_users_secretary' => $secretary['id']])
|
|
||||||
->result_array();
|
|
||||||
|
|
||||||
$secretary['providers'] = [];
|
|
||||||
|
|
||||||
foreach ($secretary_provider_connections as $secretary_provider_connection) {
|
|
||||||
$secretary['providers'][] = (int) $secretary_provider_connection['id_users_provider'];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $secretaries;
|
return $secretaries;
|
||||||
|
@ -731,19 +735,9 @@ class Secretaries_model extends EA_Model
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$secretary['settings'] = $this->db->get_where('user_settings', ['id_users' => $secretary_id])->row_array();
|
$this->cast($secretary);
|
||||||
|
$secretary['settings'] = $this->get_settings($secretary['id']);
|
||||||
unset($secretary['settings']['id_users'], $secretary['settings']['password'], $secretary['settings']['salt']);
|
$secretary['providers'] = $this->get_provider_ids($secretary['id']);
|
||||||
|
|
||||||
$secretary_provider_connections = $this->db
|
|
||||||
->get_where('secretaries_providers', ['id_users_secretary' => $secretary_id])
|
|
||||||
->result_array();
|
|
||||||
|
|
||||||
$secretary['providers'] = [];
|
|
||||||
|
|
||||||
foreach ($secretary_provider_connections as $secretary_provider_connection) {
|
|
||||||
$secretary['providers'][] = (int) $secretary_provider_connection['id_users_provider'];
|
|
||||||
}
|
|
||||||
|
|
||||||
return $secretary;
|
return $secretary;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue