32 lines
945 B
SQL
32 lines
945 B
SQL
-- name: GetConfig :one
|
|
SELECT * FROM config LIMIT 1;
|
|
|
|
-- name: UpsertConfig :exec
|
|
INSERT INTO config (api_token, zone_id, domain, update_period)
|
|
VALUES (?, ?, ?, ?)
|
|
ON CONFLICT DO UPDATE SET
|
|
api_token = excluded.api_token,
|
|
zone_id = excluded.zone_id,
|
|
domain = excluded.domain,
|
|
update_period = excluded.update_period;
|
|
|
|
-- name: InitSchema :exec
|
|
-- This query is used to ensure the schema is set up properly
|
|
CREATE TABLE IF NOT EXISTS config (
|
|
api_token TEXT,
|
|
zone_id TEXT,
|
|
domain TEXT NOT NULL DEFAULT 'mz.uy',
|
|
update_period TEXT NOT NULL DEFAULT '0 */6 * * *'
|
|
);
|
|
|
|
CREATE TRIGGER IF NOT EXISTS enforce_single_config
|
|
BEFORE INSERT ON config
|
|
WHEN (SELECT COUNT(*) FROM config) > 0
|
|
BEGIN
|
|
SELECT RAISE(FAIL, 'Only one config record allowed');
|
|
END;
|
|
|
|
-- Insert default config if none exists
|
|
INSERT OR IGNORE INTO config (domain, update_period)
|
|
SELECT 'mz.uy', '0 */6 * * *'
|
|
WHERE NOT EXISTS (SELECT 1 FROM config);
|