~aleteoryx/muditaos

8907a3d52959565dd9e09fd9f875018a72dd5b39 — pawpMudita 5 years ago 26ab212
EGD-3868 Create queries for settings
M changelog.md => changelog.md +1 -1
@@ 15,7 15,7 @@
* `[audio]` Added vibration/enable sound database logic
* `[settings]` Create main window for apps and tools 
* `[meditation]` Added a meditation progress bar with simple implementation of meditation application.

* `[settings]` Create set of queries required for settings.

### Changed


M module-services/service-db/agents/settings/settings.sql => module-services/service-db/agents/settings/settings.sql +18 -0
@@ 37,6 37,24 @@ CREATE TABLE IF NOT EXISTS notifications_tab (
        UNIQUE(path, service)
    );

CREATE TABLE IF NOT EXISTS settings_changed_tab(

    id INTEGER PRIMARY KEY,
    path TEXT NOT NULL,
    value TEXT,
    CONSTRAINT changed_unique
        UNIQUE(path ) ON CONFLICT REPLACE
);


CREATE TRIGGER IF NOT EXISTS on_update UPDATE OF value ON settings_tab
WHEN new.value <> old.value
    BEGIN
        INSERT OR REPLACE INTO  settings_changed_tab (path, value) VALUES  (new.path,new.value);
    END;



-- ----------- insert default values ----------------------
INSERT OR REPLACE INTO dictionary_tab (path, value) VALUES
    ('system/phone_mode', 'online'),

A module-services/service-db/workers/settings/settings_queries.hpp => module-services/service-db/workers/settings/settings_queries.hpp +81 -0
@@ 0,0 1,81 @@
#pragma once

#include <log/log.hpp>

namespace Settings::Statements
{
    constexpr auto getValue = R"sql(
                         SELECT value
                         FROM settings_tab  AS ST
                         WHERE ST.path = %q
                         COLLATE NOCASE;
                         )sql";

    constexpr auto checkPathExists = R"sql(
                        SELECT COUNT(value) AS PATH_EXISTS FROM  settings_tab AS ST
                        WHERE ST.path = %q
                        COLLATE NOCASE;
                        )sql";

    constexpr auto CheckValueExistsInDictionary = R"sql(
                        SELECT COUNT(value) AS VALUE_EXISTS_IN_DICT FROM  dictionary_tab AS DT
                        WHERE DT.path = %q
                        AND DT.value = %q
                        COLLATE NOCASE;
                        )sql";

    constexpr auto checkSettingModified = R"sql(
                        SELECT COUNT(value) AS DATA_CHANGED FROM  settings_tab AS ST
                        WHERE ST.path = %q
                        AND ST.value != %q COLLATE NOCASE ;
                        )sql";

    constexpr auto insertValue = R"sql(
                        INSERT OR REPLACE INTO settings_tab (path, value) VALUES
                        ( %q, %q ) ;
                        )sql";

    constexpr auto updateValue = R"sql(
                        UPDATE settings_tab SET value = %q WHERE path = %q ;
                        )sql";

    constexpr auto clearSettingsChangedTable = R"sql(
                        DELETE FROM settings_changed_tab;
                        )sql";

    constexpr auto clearSettingsChangedRow = R"sql(
                        DELETE FROM settings_changed_tab
                        WHERE path = %q ;
                        )sql";

    constexpr auto getSettingsChangeTable = R"sql(
                        SELECT path, value FROM settings_changed_tab
                        COLLATE NOCASE;
                        )sql";

    constexpr auto getSettingsChangeRow = R"sql(
                        SELECT path, value FROM settings_changed_tab
                        WHERE path = %q
                        COLLATE NOCASE;
                        )sql";

    constexpr auto setNotification = R"sql(
                        INSERT OR REPLACE INTO notifications_tab (path, service) VALUES "
                        ( %q , %q ) ;
                        )sql";

    constexpr auto getAllNotifications = R"sql(
                        SELECT path, service
                        FROM notifications_tab  AS NT;
                        )sql";

    constexpr auto clearNotificationTable = R"sql(
                        DELETE FROM notifications_tab;
                        )sql";

    constexpr auto clearNotificationdRow = R"sql(
                        DELETE FROM notifications_tab
                        WHERE path = %q ;
                        )sql";

} // namespace Settings::Statements