diff options
| author | Guillaume Horel <guillaume.horel@gmail.com> | 2017-06-25 18:41:45 -0400 |
|---|---|---|
| committer | Guillaume Horel <guillaume.horel@gmail.com> | 2017-06-25 18:41:45 -0400 |
| commit | 696c3dce5b184ae8c6effec4e7024cf56bf1b1ae (patch) | |
| tree | 2b0765cae87e7594fd18d763408f906a91ee297d | |
| parent | 0f836c3c0a0ad3addf943282199a73f1e92d9be9 (diff) | |
| download | lastfm-api-696c3dce5b184ae8c6effec4e7024cf56bf1b1ae.tar.gz | |
add tracking of clients
| -rw-r--r-- | data.go | 15 | ||||
| -rw-r--r-- | migrations/20170625140530_client.sql | 12 |
2 files changed, 27 insertions, 0 deletions
@@ -61,9 +61,16 @@ type LoveImport struct { Count int } +type Client struct { + Key string + Secret string + Name string +} + type DataStore interface { PutSession(*Session) error GetSession(key string) (*Session, error) + GetClient(key string) (*Client, error) PutScrobbles([]Scrobble) error PutNowPlaying(s Scrobble) error NowPlaying(userId int) *Scrobble @@ -114,6 +121,14 @@ func (store *SqlStore) GetSession(key string) (*Session, error) { return s, err } +func (store *SqlStore) GetClient(key string) (*Client, error) { + query := `SELECT secret, name FROM clients WHERE key = $1` + row := store.QueryRow(query, key) + c := &Client{Key: key} + err := row.Scan(&c.Secret, &c.Name) + return c, err +} + func (store *SqlStore) GetScrobblingUser(lfmName string) (int, string, error) { var password string var userId int diff --git a/migrations/20170625140530_client.sql b/migrations/20170625140530_client.sql new file mode 100644 index 0000000..b872526 --- /dev/null +++ b/migrations/20170625140530_client.sql @@ -0,0 +1,12 @@ + +-- +goose Up +-- SQL in section 'Up' is executed when this migration is applied +CREATE TABLE clients ( + key text PRIMARY KEY, + secret text, + name text +); + +-- +goose Down +-- SQL section 'Down' is executed when this migration is rolled back +DROP TABLE clients; |
