Add missing field filtering and the optional model method
This commit is contained in:
parent
71fa900ea7
commit
2e3e766f73
3 changed files with 85 additions and 6 deletions
|
@ -155,6 +155,17 @@ class Providers extends EA_Controller {
|
||||||
'services',
|
'services',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
$this->providers_model->only($provider['settings'], [
|
||||||
|
'username',
|
||||||
|
'password',
|
||||||
|
'notifications',
|
||||||
|
'calendar_view'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->providers_model->optional($provider, [
|
||||||
|
'services' => [],
|
||||||
|
]);
|
||||||
|
|
||||||
$provider_id = $this->providers_model->save($provider);
|
$provider_id = $this->providers_model->save($provider);
|
||||||
|
|
||||||
$provider = $this->providers_model->find($provider_id);
|
$provider = $this->providers_model->find($provider_id);
|
||||||
|
@ -206,6 +217,10 @@ class Providers extends EA_Controller {
|
||||||
'services',
|
'services',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
$this->providers_model->optional($provider, [
|
||||||
|
'services' => [],
|
||||||
|
]);
|
||||||
|
|
||||||
$provider_id = $this->providers_model->save($provider);
|
$provider_id = $this->providers_model->save($provider);
|
||||||
|
|
||||||
$provider = $this->providers_model->find($provider_id);
|
$provider = $this->providers_model->find($provider_id);
|
||||||
|
|
|
@ -136,6 +136,36 @@ class Secretaries extends EA_Controller {
|
||||||
|
|
||||||
$secretary = request('secretary');
|
$secretary = request('secretary');
|
||||||
|
|
||||||
|
$this->secretaries_model->only($secretary, [
|
||||||
|
'first_name',
|
||||||
|
'last_name',
|
||||||
|
'email',
|
||||||
|
'alt_number',
|
||||||
|
'phone_number',
|
||||||
|
'address',
|
||||||
|
'city',
|
||||||
|
'state',
|
||||||
|
'zip_code',
|
||||||
|
'notes',
|
||||||
|
'timezone',
|
||||||
|
'language',
|
||||||
|
'is_private',
|
||||||
|
'id_roles',
|
||||||
|
'settings',
|
||||||
|
'secretaries',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->secretaries_model->only($secretary['settings'], [
|
||||||
|
'username',
|
||||||
|
'password',
|
||||||
|
'notifications',
|
||||||
|
'calendar_view'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->secretaries_model->optional($secretary, [
|
||||||
|
'providers' => [],
|
||||||
|
]);
|
||||||
|
|
||||||
$secretary_id = $this->secretaries_model->save($secretary);
|
$secretary_id = $this->secretaries_model->save($secretary);
|
||||||
|
|
||||||
$secretary = $this->secretaries_model->find($secretary_id);
|
$secretary = $this->secretaries_model->find($secretary_id);
|
||||||
|
@ -166,6 +196,38 @@ class Secretaries extends EA_Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
$secretary = request('secretary');
|
$secretary = request('secretary');
|
||||||
|
|
||||||
|
$this->secretaries_model->only($secretary, [
|
||||||
|
'id',
|
||||||
|
'first_name',
|
||||||
|
'last_name',
|
||||||
|
'email',
|
||||||
|
'alt_number',
|
||||||
|
'phone_number',
|
||||||
|
'address',
|
||||||
|
'city',
|
||||||
|
'state',
|
||||||
|
'zip_code',
|
||||||
|
'notes',
|
||||||
|
'timezone',
|
||||||
|
'language',
|
||||||
|
'is_private',
|
||||||
|
'id_roles',
|
||||||
|
'settings',
|
||||||
|
'secretaries',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->secretaries_model->only($secretary['settings'], [
|
||||||
|
'username',
|
||||||
|
'password',
|
||||||
|
'notifications',
|
||||||
|
'calendar_view'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->secretaries_model->optional($secretary, [
|
||||||
|
'providers' => [],
|
||||||
|
]);
|
||||||
|
|
||||||
|
|
||||||
$secretary_id = $this->secretaries_model->save($secretary);
|
$secretary_id = $this->secretaries_model->save($secretary);
|
||||||
|
|
||||||
|
|
|
@ -195,19 +195,21 @@ class EA_Model extends CI_Model {
|
||||||
*/
|
*/
|
||||||
public function optional(array &$record, array $fields)
|
public function optional(array &$record, array $fields)
|
||||||
{
|
{
|
||||||
$sanitize = function ($field) use (&$record) {
|
|
||||||
return $record[$field] ?? NULL;
|
|
||||||
};
|
|
||||||
|
|
||||||
if (is_assoc($record))
|
if (is_assoc($record))
|
||||||
{
|
{
|
||||||
$record = array_map($sanitize, $fields);
|
foreach ($fields as $field => $default)
|
||||||
|
{
|
||||||
|
$record[$field] = $record[$field] ?? $default;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
foreach ($record as &$record_item)
|
foreach ($record as &$record_item)
|
||||||
{
|
{
|
||||||
$record_item = array_map($sanitize, $fields);
|
foreach ($fields as $field => $default)
|
||||||
|
{
|
||||||
|
$record_item[$field] = $record_item[$field] ?? $default;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue