forked from tangled.org/core
this repo has no description

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
···
import (
"strings"
"time"
+
+
"tangled.org/core/appview/models"
)
-
type Email struct {
-
ID int64
-
Did string
-
Address string
-
Verified bool
-
Primary bool
-
VerificationCode string
-
LastSent *time.Time
-
CreatedAt time.Time
-
}
-
-
func GetPrimaryEmail(e Execer, did string) (Email, error) {
+
func GetPrimaryEmail(e Execer, did string) (models.Email, error) {
query := `
select id, did, email, verified, is_primary, verification_code, last_sent, created
from emails
where did = ? and is_primary = true
`
-
var email Email
+
var email models.Email
var createdStr string
var lastSent string
err := e.QueryRow(query, did).Scan(&email.ID, &email.Did, &email.Address, &email.Verified, &email.Primary, &email.VerificationCode, &lastSent, &createdStr)
if err != nil {
-
return Email{}, err
+
return models.Email{}, err
}
email.CreatedAt, err = time.Parse(time.RFC3339, createdStr)
if err != nil {
-
return Email{}, err
+
return models.Email{}, err
}
parsedTime, err := time.Parse(time.RFC3339, lastSent)
if err != nil {
-
return Email{}, err
+
return models.Email{}, err
}
email.LastSent = &parsedTime
return email, nil
}
-
func GetEmail(e Execer, did string, em string) (Email, error) {
+
func GetEmail(e Execer, did string, em string) (models.Email, error) {
query := `
select id, did, email, verified, is_primary, verification_code, last_sent, created
from emails
where did = ? and email = ?
`
-
var email Email
+
var email models.Email
var createdStr string
var lastSent string
err := e.QueryRow(query, did, em).Scan(&email.ID, &email.Did, &email.Address, &email.Verified, &email.Primary, &email.VerificationCode, &lastSent, &createdStr)
if err != nil {
-
return Email{}, err
+
return models.Email{}, err
}
email.CreatedAt, err = time.Parse(time.RFC3339, createdStr)
if err != nil {
-
return Email{}, err
+
return models.Email{}, err
}
parsedTime, err := time.Parse(time.RFC3339, lastSent)
if err != nil {
-
return Email{}, err
+
return models.Email{}, err
}
email.LastSent = &parsedTime
return email, nil
···
return count > 0, nil
}
-
func AddEmail(e Execer, email Email) error {
+
func AddEmail(e Execer, email models.Email) error {
// Check if this is the first email for this DID
countQuery := `
select count(*)
···
return err
}
-
func GetAllEmails(e Execer, did string) ([]Email, error) {
+
func GetAllEmails(e Execer, did string) ([]models.Email, error) {
query := `
select did, email, verified, is_primary, verification_code, last_sent, created
from emails
···
}
defer rows.Close()
-
var emails []Email
+
var emails []models.Email
for rows.Next() {
-
var email Email
+
var email models.Email
var createdStr string
var lastSent string
err := rows.Scan(&email.Did, &email.Address, &email.Verified, &email.Primary, &email.VerificationCode, &lastSent, &createdStr)
+16
appview/models/email.go
···
+
package models
+
+
import (
+
"time"
+
)
+
+
type Email struct {
+
ID int64
+
Did string
+
Address string
+
Verified bool
+
Primary bool
+
VerificationCode string
+
LastSent *time.Time
+
CreatedAt time.Time
+
}
+1 -1
appview/pages/pages.go
···
type UserEmailsSettingsParams struct {
LoggedInUser *oauth.User
-
Emails []db.Email
+
Emails []models.Email
Tabs []map[string]any
Tab string
}
+2 -1
appview/settings/settings.go
···
"tangled.org/core/appview/db"
"tangled.org/core/appview/email"
"tangled.org/core/appview/middleware"
+
"tangled.org/core/appview/models"
"tangled.org/core/appview/oauth"
"tangled.org/core/appview/pages"
"tangled.org/core/tid"
···
}
defer tx.Rollback()
-
if err := db.AddEmail(tx, db.Email{
+
if err := db.AddEmail(tx, models.Email{
Did: did,
Address: emAddr,
Verified: false,
+2 -1
appview/signup/signup.go
···
"tangled.org/core/appview/db"
"tangled.org/core/appview/dns"
"tangled.org/core/appview/email"
+
"tangled.org/core/appview/models"
"tangled.org/core/appview/pages"
"tangled.org/core/appview/state/userutil"
"tangled.org/core/appview/xrpcclient"
···
return
}
-
err = db.AddEmail(s.db, db.Email{
+
err = db.AddEmail(s.db, models.Email{
Did: did,
Address: email,
Verified: true,