From e1970232f78a9c320660d5e3b913747030ac3384 Mon Sep 17 00:00:00 2001 From: Jan Kvetina Date: Thu, 30 Dec 2021 18:55:45 +0100 Subject: [PATCH] Check values --- triggers/settings__.sql | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/triggers/settings__.sql b/triggers/settings__.sql index fbe5af3..2f00056 100644 --- a/triggers/settings__.sql +++ b/triggers/settings__.sql @@ -36,6 +36,31 @@ COMPOUND TRIGGER IF NOT DELETING THEN :NEW.updated_by := curr_updated_by; :NEW.updated_at := curr_updated_at; + + -- check name + IF NOT REGEXP_LIKE(:NEW.setting_name, '^[A-Z0-9_]{1,' || TO_CHAR(30 - NVL(LENGTH(app_actions.in_settings_prefix), 0)) || '}$') THEN + app.raise_error('WRONG_NAME', :NEW.setting_name); + END IF; + + -- check date value + IF :NEW.is_date = 'Y' THEN + BEGIN + :NEW.setting_value := app.get_date(app.get_date(:NEW.setting_value)); + EXCEPTION + WHEN OTHERS THEN + app.raise_error('WRONG_DATE'); + END; + END IF; + + -- check numeric value + IF :NEW.is_numeric = 'Y' THEN + BEGIN + :NEW.setting_value := TO_NUMBER(REPLACE(:NEW.setting_value, ',', '.')); + EXCEPTION + WHEN OTHERS THEN + app.raise_error('WRONG_NUMBER'); + END; + END IF; END IF; -- curr_event_id := app.log_event('SETTINGS_CHANGED');