'int', 'name' => 'string' ]; } public function process() : self { if ($this->is_received('save')) { $this->save(); } if ($this->is_received('add')) { $this->add(); } if ($this->is_received('delete')) { $this->delete(); } $this->set('groups', $this->load_groups()); return $this; } private function save() : void { try { $group = new group($this->get_validated('id')); $group->prepare_name($this->get_validated('name')); $this->get_mapper()->save($group); } catch (exception $exception) { $error = 'An error exception when saving group. More info: '; $error .= $exception->getMessage(); $this->error_toast($error); } } private function add() : void { try { $group = new group(); $group->prepare_name($this->get_validated('name')); $this->get_mapper()->create($group); } catch (exception $exception) { $error = 'An error exception when saving group. More info: '; $error .= $exception->getMessage(); $this->error_toast($error); } } private function delete() : void { try { $group = new group($this->get_validated('id')); $this->get_mapper()->remove($group); } catch (exception $exception) { $error = 'An error exception when removing group. More info: '; $error .= $exception->getMessage(); $this->error_toast($error); } } private function load_groups() : string_builder { $converter = new group_converter(); $groups = new string_builder(); foreach ($this->get_mapper()->load_all() as $group) { $groups->push( $this ->get_templates() ->prepare('single_group') ->render($converter->load_object($group)->get_array()) ); } return $groups; } private function get_mapper() : groups_mapper { return new groups_mapper( $this->get_database(), $this->get_tables() ); } }