forked from tangled.org/core
Monorepo for Tangled — https://tangled.org

appview: fix crash when follows is empty

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

oppi.li f7609e84 06f79a0a

verified
Changed files
+10 -8
appview
state
+10 -8
appview/state/profile.go
··· 284 l = l.With("profileDid", profile.UserDid, "profileHandle", profile.UserHandle) 285 286 loggedInUser := s.oauth.GetUser(r) 287 288 follows, err := fetchFollows(s.db, profile.UserDid) 289 if err != nil { 290 l.Error("failed to fetch follows", "err", err) 291 - return nil, err 292 } 293 294 if len(follows) == 0 { 295 - return nil, nil 296 } 297 298 followDids := make([]string, 0, len(follows)) ··· 303 profiles, err := db.GetProfiles(s.db, db.FilterIn("did", followDids)) 304 if err != nil { 305 l.Error("failed to get profiles", "followDids", followDids, "err", err) 306 - return nil, err 307 } 308 309 followStatsMap, err := db.GetFollowerFollowingCounts(s.db, followDids) ··· 316 following, err := db.GetFollowing(s.db, loggedInUser.Did) 317 if err != nil { 318 l.Error("failed to get follow list", "err", err, "loggedInUser", loggedInUser.Did) 319 - return nil, err 320 } 321 loggedInUserFollowing = make(map[string]struct{}, len(following)) 322 for _, follow := range following { ··· 350 } 351 } 352 353 - return &FollowsPageParams{ 354 - Follows: followCards, 355 - Card: profile, 356 - }, nil 357 } 358 359 func (s *State) followersPage(w http.ResponseWriter, r *http.Request) {
··· 284 l = l.With("profileDid", profile.UserDid, "profileHandle", profile.UserHandle) 285 286 loggedInUser := s.oauth.GetUser(r) 287 + params := FollowsPageParams{ 288 + Card: profile, 289 + } 290 291 follows, err := fetchFollows(s.db, profile.UserDid) 292 if err != nil { 293 l.Error("failed to fetch follows", "err", err) 294 + return &params, err 295 } 296 297 if len(follows) == 0 { 298 + return &params, nil 299 } 300 301 followDids := make([]string, 0, len(follows)) ··· 306 profiles, err := db.GetProfiles(s.db, db.FilterIn("did", followDids)) 307 if err != nil { 308 l.Error("failed to get profiles", "followDids", followDids, "err", err) 309 + return &params, err 310 } 311 312 followStatsMap, err := db.GetFollowerFollowingCounts(s.db, followDids) ··· 319 following, err := db.GetFollowing(s.db, loggedInUser.Did) 320 if err != nil { 321 l.Error("failed to get follow list", "err", err, "loggedInUser", loggedInUser.Did) 322 + return &params, err 323 } 324 loggedInUserFollowing = make(map[string]struct{}, len(following)) 325 for _, follow := range following { ··· 353 } 354 } 355 356 + params.Follows = followCards 357 + 358 + return &params, nil 359 } 360 361 func (s *State) followersPage(w http.ResponseWriter, r *http.Request) {