A fork of https://github.com/teal-fm/piper

add last.fm, move some stuff about

Natalie B a3e7f67d 5cba2fc7

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