Monorepo for Tangled tangled.org

appview/models: move db.Email into models

Signed-off-by: oppiliappan <me@oppi.li>

oppi.li fde77b9f ea02bd91

verified
Changed files
+37 -28
appview
db
models
pages
settings
signup
+16 -25
appview/db/email.go
··· 3 import ( 4 "strings" 5 "time" 6 ) 7 8 - type Email struct { 9 - ID int64 10 - Did string 11 - Address string 12 - Verified bool 13 - Primary bool 14 - VerificationCode string 15 - LastSent *time.Time 16 - CreatedAt time.Time 17 - } 18 - 19 - func GetPrimaryEmail(e Execer, did string) (Email, error) { 20 query := ` 21 select id, did, email, verified, is_primary, verification_code, last_sent, created 22 from emails 23 where did = ? and is_primary = true 24 ` 25 - var email Email 26 var createdStr string 27 var lastSent string 28 err := e.QueryRow(query, did).Scan(&email.ID, &email.Did, &email.Address, &email.Verified, &email.Primary, &email.VerificationCode, &lastSent, &createdStr) 29 if err != nil { 30 - return Email{}, err 31 } 32 email.CreatedAt, err = time.Parse(time.RFC3339, createdStr) 33 if err != nil { 34 - return Email{}, err 35 } 36 parsedTime, err := time.Parse(time.RFC3339, lastSent) 37 if err != nil { 38 - return Email{}, err 39 } 40 email.LastSent = &parsedTime 41 return email, nil 42 } 43 44 - func GetEmail(e Execer, did string, em string) (Email, error) { 45 query := ` 46 select id, did, email, verified, is_primary, verification_code, last_sent, created 47 from emails 48 where did = ? and email = ? 49 ` 50 - var email Email 51 var createdStr string 52 var lastSent string 53 err := e.QueryRow(query, did, em).Scan(&email.ID, &email.Did, &email.Address, &email.Verified, &email.Primary, &email.VerificationCode, &lastSent, &createdStr) 54 if err != nil { 55 - return Email{}, err 56 } 57 email.CreatedAt, err = time.Parse(time.RFC3339, createdStr) 58 if err != nil { 59 - return Email{}, err 60 } 61 parsedTime, err := time.Parse(time.RFC3339, lastSent) 62 if err != nil { 63 - return Email{}, err 64 } 65 email.LastSent = &parsedTime 66 return email, nil ··· 187 return count > 0, nil 188 } 189 190 - func AddEmail(e Execer, email Email) error { 191 // Check if this is the first email for this DID 192 countQuery := ` 193 select count(*) ··· 254 return err 255 } 256 257 - func GetAllEmails(e Execer, did string) ([]Email, error) { 258 query := ` 259 select did, email, verified, is_primary, verification_code, last_sent, created 260 from emails ··· 266 } 267 defer rows.Close() 268 269 - var emails []Email 270 for rows.Next() { 271 - var email Email 272 var createdStr string 273 var lastSent string 274 err := rows.Scan(&email.Did, &email.Address, &email.Verified, &email.Primary, &email.VerificationCode, &lastSent, &createdStr)
··· 3 import ( 4 "strings" 5 "time" 6 + 7 + "tangled.org/core/appview/models" 8 ) 9 10 + func GetPrimaryEmail(e Execer, did string) (models.Email, error) { 11 query := ` 12 select id, did, email, verified, is_primary, verification_code, last_sent, created 13 from emails 14 where did = ? and is_primary = true 15 ` 16 + var email models.Email 17 var createdStr string 18 var lastSent string 19 err := e.QueryRow(query, did).Scan(&email.ID, &email.Did, &email.Address, &email.Verified, &email.Primary, &email.VerificationCode, &lastSent, &createdStr) 20 if err != nil { 21 + return models.Email{}, err 22 } 23 email.CreatedAt, err = time.Parse(time.RFC3339, createdStr) 24 if err != nil { 25 + return models.Email{}, err 26 } 27 parsedTime, err := time.Parse(time.RFC3339, lastSent) 28 if err != nil { 29 + return models.Email{}, err 30 } 31 email.LastSent = &parsedTime 32 return email, nil 33 } 34 35 + func GetEmail(e Execer, did string, em string) (models.Email, error) { 36 query := ` 37 select id, did, email, verified, is_primary, verification_code, last_sent, created 38 from emails 39 where did = ? and email = ? 40 ` 41 + var email models.Email 42 var createdStr string 43 var lastSent string 44 err := e.QueryRow(query, did, em).Scan(&email.ID, &email.Did, &email.Address, &email.Verified, &email.Primary, &email.VerificationCode, &lastSent, &createdStr) 45 if err != nil { 46 + return models.Email{}, err 47 } 48 email.CreatedAt, err = time.Parse(time.RFC3339, createdStr) 49 if err != nil { 50 + return models.Email{}, err 51 } 52 parsedTime, err := time.Parse(time.RFC3339, lastSent) 53 if err != nil { 54 + return models.Email{}, err 55 } 56 email.LastSent = &parsedTime 57 return email, nil ··· 178 return count > 0, nil 179 } 180 181 + func AddEmail(e Execer, email models.Email) error { 182 // Check if this is the first email for this DID 183 countQuery := ` 184 select count(*) ··· 245 return err 246 } 247 248 + func GetAllEmails(e Execer, did string) ([]models.Email, error) { 249 query := ` 250 select did, email, verified, is_primary, verification_code, last_sent, created 251 from emails ··· 257 } 258 defer rows.Close() 259 260 + var emails []models.Email 261 for rows.Next() { 262 + var email models.Email 263 var createdStr string 264 var lastSent string 265 err := rows.Scan(&email.Did, &email.Address, &email.Verified, &email.Primary, &email.VerificationCode, &lastSent, &createdStr)
+16
appview/models/email.go
···
··· 1 + package models 2 + 3 + import ( 4 + "time" 5 + ) 6 + 7 + type Email struct { 8 + ID int64 9 + Did string 10 + Address string 11 + Verified bool 12 + Primary bool 13 + VerificationCode string 14 + LastSent *time.Time 15 + CreatedAt time.Time 16 + }
+1 -1
appview/pages/pages.go
··· 314 315 type UserEmailsSettingsParams struct { 316 LoggedInUser *oauth.User 317 - Emails []db.Email 318 Tabs []map[string]any 319 Tab string 320 }
··· 314 315 type UserEmailsSettingsParams struct { 316 LoggedInUser *oauth.User 317 + Emails []models.Email 318 Tabs []map[string]any 319 Tab string 320 }
+2 -1
appview/settings/settings.go
··· 16 "tangled.org/core/appview/db" 17 "tangled.org/core/appview/email" 18 "tangled.org/core/appview/middleware" 19 "tangled.org/core/appview/oauth" 20 "tangled.org/core/appview/pages" 21 "tangled.org/core/tid" ··· 185 } 186 defer tx.Rollback() 187 188 - if err := db.AddEmail(tx, db.Email{ 189 Did: did, 190 Address: emAddr, 191 Verified: false,
··· 16 "tangled.org/core/appview/db" 17 "tangled.org/core/appview/email" 18 "tangled.org/core/appview/middleware" 19 + "tangled.org/core/appview/models" 20 "tangled.org/core/appview/oauth" 21 "tangled.org/core/appview/pages" 22 "tangled.org/core/tid" ··· 186 } 187 defer tx.Rollback() 188 189 + if err := db.AddEmail(tx, models.Email{ 190 Did: did, 191 Address: emAddr, 192 Verified: false,
+2 -1
appview/signup/signup.go
··· 14 "tangled.org/core/appview/db" 15 "tangled.org/core/appview/dns" 16 "tangled.org/core/appview/email" 17 "tangled.org/core/appview/pages" 18 "tangled.org/core/appview/state/userutil" 19 "tangled.org/core/appview/xrpcclient" ··· 229 return 230 } 231 232 - err = db.AddEmail(s.db, db.Email{ 233 Did: did, 234 Address: email, 235 Verified: true,
··· 14 "tangled.org/core/appview/db" 15 "tangled.org/core/appview/dns" 16 "tangled.org/core/appview/email" 17 + "tangled.org/core/appview/models" 18 "tangled.org/core/appview/pages" 19 "tangled.org/core/appview/state/userutil" 20 "tangled.org/core/appview/xrpcclient" ··· 230 return 231 } 232 233 + err = db.AddEmail(s.db, models.Email{ 234 Did: did, 235 Address: email, 236 Verified: true,