tangled
alpha
login
or
join now
tom.sherman.is
/
piper
0
fork
atom
A fork of https://github.com/teal-fm/piper
0
fork
atom
overview
issues
pulls
pipelines
add last.fm, move some stuff about
Natalie B
11 months ago
a3e7f67d
5cba2fc7
+61
1 changed file
expand all
collapse all
unified
split
db
lfm.go
+61
db/lfm.go
···
1
1
+
package db
2
2
+
3
3
+
import (
4
4
+
"github.com/teal-fm/piper/models"
5
5
+
)
6
6
+
7
7
+
func (db *DB) AddLastFMUsername(userID int64, lastfmUsername string) error {
8
8
+
_, err := db.Exec(`
9
9
+
UPDATE users
10
10
+
SET lastfm_username = ?
11
11
+
WHERE id = ?`, lastfmUsername, userID)
12
12
+
13
13
+
return err
14
14
+
}
15
15
+
16
16
+
func (db *DB) GetAllUsersWithLastFM() ([]*models.User, error) {
17
17
+
rows, err := db.Query(`
18
18
+
SELECT id, username, email, spotify_id, access_token, refresh_token, token_expiry, created_at, updated_at, lastfm_username
19
19
+
FROM users
20
20
+
WHERE lastfm_username IS NOT NULL
21
21
+
ORDER BY id`)
22
22
+
23
23
+
if err != nil {
24
24
+
return nil, err
25
25
+
}
26
26
+
defer rows.Close()
27
27
+
28
28
+
var users []*models.User
29
29
+
30
30
+
for rows.Next() {
31
31
+
user := &models.User{}
32
32
+
err := rows.Scan(
33
33
+
&user.ID, &user.Username, &user.Email, &user.SpotifyID,
34
34
+
&user.AccessToken, &user.RefreshToken, &user.TokenExpiry,
35
35
+
&user.CreatedAt, &user.UpdatedAt, &user.LastFMUsername)
36
36
+
if err != nil {
37
37
+
return nil, err
38
38
+
}
39
39
+
users = append(users, user)
40
40
+
}
41
41
+
42
42
+
return users, nil
43
43
+
}
44
44
+
45
45
+
func (db *DB) GetUserByLastFM(lastfmUsername string) (*models.User, error) {
46
46
+
row := db.QueryRow(`
47
47
+
SELECT id, username, email, spotify_id, access_token, refresh_token, token_expiry, created_at, updated_at, lastfm_username
48
48
+
FROM users
49
49
+
WHERE lastfm_username = ?`, lastfmUsername)
50
50
+
51
51
+
user := &models.User{}
52
52
+
err := row.Scan(
53
53
+
&user.ID, &user.Username, &user.Email, &user.SpotifyID,
54
54
+
&user.AccessToken, &user.RefreshToken, &user.TokenExpiry,
55
55
+
&user.CreatedAt, &user.UpdatedAt, &user.LastFMUsername)
56
56
+
if err != nil {
57
57
+
return nil, err
58
58
+
}
59
59
+
60
60
+
return user, nil
61
61
+
}