diff options
| author | GrailFinder <wohilas@gmail.com> | 2024-06-12 09:13:05 +0300 | 
|---|---|---|
| committer | GrailFinder <wohilas@gmail.com> | 2024-06-12 09:13:05 +0300 | 
| commit | b300ad869f424cdd26bcfc78635a27656836ca96 (patch) | |
| tree | fc675c3608269d367be2ec23fd689f030bfaebd2 /internal/database | |
| parent | 01f9a9f5d71450a0c80195058245fdebe88796bd (diff) | |
Diffstat (limited to 'internal/database')
| -rw-r--r-- | internal/database/migrations/001_init.down.sql | 2 | ||||
| -rw-r--r-- | internal/database/migrations/001_init.up.sql | 6 | ||||
| -rw-r--r-- | internal/database/migrations/002_defaults.down.sql | 5 | ||||
| -rw-r--r-- | internal/database/migrations/002_defaults.up.sql | 11 | ||||
| -rw-r--r-- | internal/database/repos/defaults.go | 25 | ||||
| -rw-r--r-- | internal/database/repos/main.go | 1 | 
6 files changed, 46 insertions, 4 deletions
| diff --git a/internal/database/migrations/001_init.down.sql b/internal/database/migrations/001_init.down.sql index 1b8680f..41cc5c9 100644 --- a/internal/database/migrations/001_init.down.sql +++ b/internal/database/migrations/001_init.down.sql @@ -1,4 +1,4 @@ -BEGIN; +BEGIN TRANSACTION;  DROP SCHEMA public CASCADE;  CREATE SCHEMA public;  COMMIT; diff --git a/internal/database/migrations/001_init.up.sql b/internal/database/migrations/001_init.up.sql index f7e41c1..141a045 100644 --- a/internal/database/migrations/001_init.up.sql +++ b/internal/database/migrations/001_init.up.sql @@ -1,5 +1,5 @@ -BEGIN; -CREATE TABLE user_score ( +BEGIN TRANSACTION; +CREATE TABLE IF NOT EXISTS user_score (      id INTEGER PRIMARY KEY AUTOINCREMENT,      username TEXT UNIQUE NOT NULL,      password TEXT NOT NULL, @@ -8,7 +8,7 @@ CREATE TABLE user_score (      created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP  ); -CREATE TABLE action ( +CREATE TABLE IF NOT EXISTS action(      id INTEGER PRIMARY KEY AUTOINCREMENT,      name TEXT NOT NULL,      magnitude SMALLINT NOT NULL DEFAULT 1, diff --git a/internal/database/migrations/002_defaults.down.sql b/internal/database/migrations/002_defaults.down.sql new file mode 100644 index 0000000..3e38fa2 --- /dev/null +++ b/internal/database/migrations/002_defaults.down.sql @@ -0,0 +1,5 @@ +BEGIN TRANSACTION; + +DROP TABLE defaults; + +COMMIT; diff --git a/internal/database/migrations/002_defaults.up.sql b/internal/database/migrations/002_defaults.up.sql new file mode 100644 index 0000000..4bf42b7 --- /dev/null +++ b/internal/database/migrations/002_defaults.up.sql @@ -0,0 +1,11 @@ +BEGIN TRANSACTION; + +CREATE TABLE IF NOT EXISTS defaults ( +    id INTEGER PRIMARY KEY AUTOINCREMENT, +    key TEXT UNIQUE NOT NULL, +    value TEXT NOT NULL, +    description TEXT NOT NULL DEFAULT '', +    created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +COMMIT; diff --git a/internal/database/repos/defaults.go b/internal/database/repos/defaults.go new file mode 100644 index 0000000..e0b5e52 --- /dev/null +++ b/internal/database/repos/defaults.go @@ -0,0 +1,25 @@ +package repos + +type DefaultsRepo interface { +	DBGetDefaultsMap() (map[string]string, error) +} + +func (p *Provider) DBGetDefaultsMap() (map[string]string, error) { +	rows, err := p.db.Queryx(`SELECT key, value +        FROM defaults; +    `) +	if err != nil { +		return nil, err +	} +	res := make(map[string]string) +	for rows.Next() { +		keyval, err := rows.SliceScan() +		if err != nil { +			return nil, err +		} +		key := keyval[0].(string) +		value := keyval[1].(string) +		res[key] = value +	} +	return res, nil +} diff --git a/internal/database/repos/main.go b/internal/database/repos/main.go index 25eeec4..72860dd 100644 --- a/internal/database/repos/main.go +++ b/internal/database/repos/main.go @@ -7,6 +7,7 @@ import (  type FullRepo interface {  	ActionRepo  	UserScoreRepo +	DefaultsRepo  }  type Provider struct { | 
