backend for xcvr appview
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

beep boop

+36 -16
+4
server/internal/handler/lexiconHandlers.go
··· 71 71 return 72 72 } 73 73 } 74 + h.serveProfileView(did, handle, w, r) 75 + } 76 + 77 + func (h *Handler) serveProfileView(did string, handle string, w http.ResponseWriter, r *http.Request) { 74 78 profile, err := h.db.GetProfileView(did, r.Context()) 75 79 if err != nil { 76 80 h.notFound(w, errors.New(fmt.Sprintf("couldn't find profile for handle %s / did %s: %s", handle, did, err.Error())))
+28 -11
server/internal/handler/oauthHandlers.go
··· 154 154 } 155 155 156 156 func (h *Handler) getSession(w http.ResponseWriter, r *http.Request) { 157 + did, handle, err := h.findDidAndHandle(w, r) 158 + if err != nil { 159 + h.handleFindDidAndHandleError(w, r, err) 160 + return 161 + } 162 + w.Header().Set("Content-Type", "application/json") 163 + json.NewEncoder(w).Encode(map[string]any{ 164 + "did": did, 165 + "handle": handle, 166 + }) 167 + } 168 + 169 + func (h *Handler) findDidAndHandle(w http.ResponseWriter, r *http.Request) (did, handle string, err error) { 157 170 session, _ := h.sessionStore.Get(r, "oauthsession") 158 171 did, ok := session.Values["did"].(string) 159 172 if !ok || did == "" { 160 - http.Error(w, "not authenticated", http.StatusUnauthorized) 161 - return 173 + return "", "", errors.New("not authenticated") 162 174 } 163 175 handle, err := h.db.ResolveDid(did, r.Context()) 164 176 if err != nil { 165 177 handle, err = atputils.GetHandleFromDid(r.Context(), did) 166 178 if err != nil { 167 - h.serverError(w, errors.New("error resolving handle")) 168 - return 179 + return "", "", errors.New("error resolving handle" + err.Error()) 169 180 } 170 181 h.logger.Deprintln("storing...") 171 182 err = h.db.StoreDidHandle(did, handle, r.Context()) 172 183 if err != nil { 173 - h.logger.Deprintln("error storing did_handle in getSession: " + err.Error()) 184 + h.logger.Deprintln("error storing did_handle in findDidAndHandle: " + err.Error()) 174 185 } 175 186 } 176 - w.Header().Set("Content-Type", "application/json") 177 - json.NewEncoder(w).Encode(map[string]any{ 178 - "did": did, 179 - "handle": handle, 180 - }) 187 + return did, handle, nil 181 188 } 182 189 183 - 190 + func (h *Handler) handleFindDidAndHandleError(w http.ResponseWriter, r *http.Request, err error) { 191 + if err != nil { 192 + if err.Error() == "not authenticated" { 193 + http.Error(w, "not authenticated", http.StatusUnauthorized) 194 + return 195 + } 196 + h.serverError(w, err) 197 + return 198 + } 199 + h.logger.Deprintln("handling nil error?") 200 + }
+4 -5
server/internal/handler/xcvrHandlers.go
··· 9 9 ) 10 10 11 11 func (h *Handler) postProfile(w http.ResponseWriter, r *http.Request) { 12 - session, _ := h.sessionStore.Get(r, "oauthsession") 13 - did, ok := session.Values["did"].(string) 14 - if !ok || did == "" { 15 - http.Error(w, "not authenticated", http.StatusUnauthorized) 12 + did, handle, err := h.findDidAndHandle(w, r) 13 + if err != nil { 14 + h.handleFindDidAndHandleError(w,r, err) 16 15 return 17 16 } 18 17 var p types.PostProfileRequest ··· 49 48 h.serverError(w, errors.New("error updating profile: " + err.Error())) 50 49 return 51 50 } 52 - h.getProfileView(w,r) 51 + h.serveProfileView(did, handle, w,r) 53 52 }