diff --git a/appview/db/follow.go b/appview/db/follow.go index c7f50b07..2a18bce3 100644 --- a/appview/db/follow.go +++ b/appview/db/follow.go @@ -8,7 +8,7 @@ import ( type Follow struct { UserDid string SubjectDid string - FollowedAt *time.Time + FollowedAt time.Time RKey string } @@ -33,9 +33,9 @@ func (d *DB) GetFollow(userDid, subjectDid string) (*Follow, error) { followedAtTime, err := time.Parse(time.RFC3339, followedAt) if err != nil { log.Println("unable to determine followed at time") - follow.FollowedAt = nil + follow.FollowedAt = time.Now() } else { - follow.FollowedAt = &followedAtTime + follow.FollowedAt = followedAtTime } return &follow, nil @@ -110,9 +110,9 @@ func (d *DB) GetAllFollows() ([]Follow, error) { followedAtTime, err := time.Parse(time.RFC3339, followedAt) if err != nil { log.Println("unable to determine followed at time") - follow.FollowedAt = nil + follow.FollowedAt = time.Now() } else { - follow.FollowedAt = &followedAtTime + follow.FollowedAt = followedAtTime } follows = append(follows, follow) diff --git a/appview/db/repos.go b/appview/db/repos.go index 471369f0..a92f6f7c 100644 --- a/appview/db/repos.go +++ b/appview/db/repos.go @@ -10,13 +10,13 @@ type Repo struct { Name string Knot string Rkey string - Created *time.Time + Created time.Time } func (d *DB) GetAllRepos() ([]Repo, error) { var repos []Repo - rows, err := d.db.Query(`select * from repos`) + rows, err := d.db.Query(`select did, name, knot, rkey, created from repos`) if err != nil { return nil, err } @@ -24,7 +24,7 @@ func (d *DB) GetAllRepos() ([]Repo, error) { for rows.Next() { var repo Repo - err := scanRepo(rows, &repo.Did, &repo.Name, &repo.Knot, &repo.Rkey, repo.Created) + err := scanRepo(rows, &repo.Did, &repo.Name, &repo.Knot, &repo.Rkey, &repo.Created) if err != nil { return nil, err } @@ -41,7 +41,7 @@ func (d *DB) GetAllRepos() ([]Repo, error) { func (d *DB) GetAllReposByDid(did string) ([]Repo, error) { var repos []Repo - rows, err := d.db.Query(`select did, name, knot, created from repos where did = ?`, did) + rows, err := d.db.Query(`select did, name, knot, rkey, created from repos where did = ?`, did) if err != nil { return nil, err } @@ -49,7 +49,7 @@ func (d *DB) GetAllReposByDid(did string) ([]Repo, error) { for rows.Next() { var repo Repo - err := scanRepo(rows, &repo.Did, &repo.Name, &repo.Knot, &repo.Rkey, repo.Created) + err := scanRepo(rows, &repo.Did, &repo.Name, &repo.Knot, &repo.Rkey, &repo.Created) if err != nil { return nil, err } @@ -73,7 +73,7 @@ func (d *DB) GetRepo(did, name string) (*Repo, error) { return nil, err } createdAtTime, _ := time.Parse(time.RFC3339, createdAt) - repo.Created = &createdAtTime + repo.Created = createdAtTime return &repo, nil } @@ -107,7 +107,7 @@ func (d *DB) CollaboratingIn(collaborator string) ([]Repo, error) { for rows.Next() { var repo Repo - err := scanRepo(rows, &repo.Did, &repo.Name, &repo.Knot, &repo.Rkey, repo.Created) + err := scanRepo(rows, &repo.Did, &repo.Name, &repo.Knot, &repo.Rkey, &repo.Created) if err != nil { return nil, err } @@ -129,10 +129,9 @@ func scanRepo(rows *sql.Rows, did, name, knot, rkey *string, created *time.Time) createdAtTime, err := time.Parse(time.RFC3339, createdAt) if err != nil { - now := time.Now() - created = &now + *created = time.Now() } else { - created = &createdAtTime + *created = createdAtTime } return nil diff --git a/appview/db/timeline.go b/appview/db/timeline.go index 893a8108..7837f227 100644 --- a/appview/db/timeline.go +++ b/appview/db/timeline.go @@ -1,6 +1,7 @@ package db import ( + "log" "sort" "time" ) @@ -8,7 +9,7 @@ import ( type TimelineEvent struct { *Repo *Follow - EventAt *time.Time + EventAt time.Time } func (d *DB) MakeTimeline() ([]TimelineEvent, error) { @@ -25,6 +26,7 @@ func (d *DB) MakeTimeline() ([]TimelineEvent, error) { } for _, repo := range repos { + log.Println(repo.Created) events = append(events, TimelineEvent{ Repo: &repo, Follow: nil, @@ -41,7 +43,7 @@ func (d *DB) MakeTimeline() ([]TimelineEvent, error) { } sort.Slice(events, func(i, j int) bool { - return events[i].EventAt.After(*events[j].EventAt) + return events[i].EventAt.After(events[j].EventAt) }) return events, nil diff --git a/appview/pages/pages.go b/appview/pages/pages.go index 2a08ba0d..a91559ed 100644 --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -176,6 +176,7 @@ func (p *Pages) Login(w io.Writer, params LoginParams) error { type TimelineParams struct { LoggedInUser *auth.User Timeline []db.TimelineEvent + DidHandleMap map[string]string } func (p *Pages) Timeline(w io.Writer, params TimelineParams) error { diff --git a/appview/pages/templates/layouts/topbar.html b/appview/pages/templates/layouts/topbar.html index 97b3bcbd..0081610a 100644 --- a/appview/pages/templates/layouts/topbar.html +++ b/appview/pages/templates/layouts/topbar.html @@ -13,14 +13,19 @@ - - {{ didOrHandle .Did .Handle }} - - - (logout) - + {{ else }} - + login {{ end }} diff --git a/appview/pages/templates/timeline.html b/appview/pages/templates/timeline.html index 22dfcb10..ed89fb6c 100644 --- a/appview/pages/templates/timeline.html +++ b/appview/pages/templates/timeline.html @@ -4,35 +4,44 @@
+ {{ $userHandle }} + created + {{ .Repo.Name }} + +
++ {{ $userHandle }} + followed + {{ $subjectHandle }} + +
+REPOS