diff --git a/appview/db/punchcard.go b/appview/db/punchcard.go index 91dde121..0ab2925c 100644 --- a/appview/db/punchcard.go +++ b/appview/db/punchcard.go @@ -5,16 +5,12 @@ import ( "fmt" "strings" "time" -) -type Punch struct { - Did string - Date time.Time - Count int -} + "tangled.org/core/appview/models" +) // this adds to the existing count -func AddPunch(e Execer, punch Punch) error { +func AddPunch(e Execer, punch models.Punch) error { _, err := e.Exec(` insert into punchcard (did, date, count) values (?, ?, ?) @@ -24,18 +20,13 @@ func AddPunch(e Execer, punch Punch) error { return err } -type Punchcard struct { - Total int - Punches []Punch -} - -func MakePunchcard(e Execer, filters ...filter) (*Punchcard, error) { - punchcard := &Punchcard{} +func MakePunchcard(e Execer, filters ...filter) (*models.Punchcard, error) { + punchcard := &models.Punchcard{} now := time.Now() startOfYear := time.Date(now.Year(), 1, 1, 0, 0, 0, 0, time.UTC) endOfYear := time.Date(now.Year(), 12, 31, 0, 0, 0, 0, time.UTC) for d := startOfYear; d.Before(endOfYear) || d.Equal(endOfYear); d = d.AddDate(0, 0, 1) { - punchcard.Punches = append(punchcard.Punches, Punch{ + punchcard.Punches = append(punchcard.Punches, models.Punch{ Date: d, Count: 0, }) @@ -68,7 +59,7 @@ func MakePunchcard(e Execer, filters ...filter) (*Punchcard, error) { defer rows.Close() for rows.Next() { - var punch Punch + var punch models.Punch var date string var count sql.NullInt64 if err := rows.Scan(&date, &count); err != nil { diff --git a/appview/models/punchcard.go b/appview/models/punchcard.go new file mode 100644 index 00000000..da2f9e09 --- /dev/null +++ b/appview/models/punchcard.go @@ -0,0 +1,14 @@ +package models + +import "time" + +type Punch struct { + Did string + Date time.Time + Count int +} + +type Punchcard struct { + Total int + Punches []Punch +} diff --git a/appview/pages/pages.go b/appview/pages/pages.go index 6a29603d..5c3c3382 100644 --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -412,7 +412,7 @@ type ProfileCard struct { UserDid string UserHandle string FollowStatus models.FollowStatus - Punchcard *db.Punchcard + Punchcard *models.Punchcard Profile *models.Profile Stats ProfileStats Active string diff --git a/appview/state/knotstream.go b/appview/state/knotstream.go index fd16a9003..8a64fbe6 100644 --- a/appview/state/knotstream.go +++ b/appview/state/knotstream.go @@ -125,7 +125,7 @@ func populatePunchcard(d *db.DB, record tangled.GitRefUpdate) error { } } - punch := db.Punch{ + punch := models.Punch{ Did: record.CommitterDid, Date: time.Now(), Count: count,