1package queries
2
3import (
4 "github.com/bnema/gordon/internal/db"
5 "github.com/bnema/gordon/internal/server"
6)
7
8func createDBGitHubProvider(a *server.App, userInfo *GithubUserInfo) error {
9 provider := &db.Provider{
10 ID: generateUUID(),
11 Email: userInfo.Emails[0],
12 Login: userInfo.Login,
13 AvatarURL: userInfo.AvatarURL,
14 ProfileURL: userInfo.ProfileURL,
15 Name: "GitHub",
16 }
17
18 query := "INSERT INTO provider (id, account_id, name, login, avatar_url, profile_url, email) VALUES (?, ?, ?, ?, ?, ?, ?)"
19 _, err := a.DB.Exec(query, provider.ID, a.DBTables.Account.ID, provider.Name, provider.Login, provider.AvatarURL, provider.ProfileURL, provider.Email)
20 return err
21}
22
23func PopulateProviderFromDB(a *server.App) error {
24 rows, err := a.DB.Query("SELECT id, account_id, name, login, avatar_url, profile_url, email FROM provider")
25 if err != nil {
26 return err
27 }
28 defer rows.Close()
29
30 for rows.Next() {
31 provider := db.Provider{}
32 err := rows.Scan(&provider.ID, &provider.AccountID, &provider.Name, &provider.Login, &provider.AvatarURL, &provider.ProfileURL, &provider.Email)
33 if err != nil {
34 return err
35 }
36
37 a.DBTables.Provider = provider
38 }
39
40 return rows.Err()
41}