backend for xcvr appview
2
fork

Configure Feed

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

add the bveep beoop boop my message endpoint

rachel-mp4 4a6704f9 6eaaf134

+46 -22
+37 -22
server/internal/handler/lrcHandlers.go
··· 169 169 } 170 170 171 171 func (h *Handler) postMyMessage(w http.ResponseWriter, r *http.Request) { 172 - 173 - } 174 - 175 - func (h *Handler) postMessage(w http.ResponseWriter, r *http.Request) { 176 - session, _ := h.sessionStore.Get(r, "oauthsession") 177 - _, ok := session.Values["id"].(uint) 178 - if !ok { 179 - h.postMyMessage(w, r) 180 - return 181 - } 182 - client, err := h.getClient(r) 183 - if err != nil { 184 - h.serverError(w, errors.New("couldn't find client: "+err.Error())) 185 - return 186 - } 187 - 188 172 lmr, now, err := h.parseMessageRequest(r) 189 173 if err != nil { 190 - h.badRequest(w, errors.New("couldn't parse message "+err.Error())) 174 + h.badRequest(w, errors.New("no good! "+err.Error())) 191 175 return 192 176 } 193 - 194 - uri, cid, err := client.CreateXCVRMessage(*lmr, r.Context()) 177 + uri, cid, err := h.myClient.CreateXCVRMessage(lmr, r.Context()) 195 178 if err != nil { 196 - h.serverError(w, errors.New("couldn't add to user repo: ")) 179 + h.serverError(w, errors.New("that didn't go as planneD: "+err.Error())) 197 180 return 198 181 } 199 - did := session.Values["did"].(string) 182 + did := atputils.GetMyDid() 183 + h.postPostMessagePostHandler(uri, cid, did, now, lmr, w, r) 184 + } 185 + 186 + func (h *Handler) postPostMessagePostHandler(uri, cid, did string, now *time.Time, lmr *lex.MessageRecord, w http.ResponseWriter, r *http.Request) { 200 187 var coloruint32ptr *uint32 201 188 if lmr.Color != nil { 202 189 color := uint32(*lmr.Color) ··· 212 199 Color: coloruint32ptr, 213 200 PostedAt: *now, 214 201 } 215 - err = h.db.StoreMessage(&message, r.Context()) 202 + err := h.db.StoreMessage(&message, r.Context()) 216 203 if err != nil { 217 204 h.serverError(w, errors.New("sooo... the record posted but i couldn't store it: "+err.Error())) 218 205 return ··· 223 210 } 224 211 h.model.BroadcastMessage(curi, message) 225 212 h.getMessages(w, r) 213 + } 214 + 215 + func (h *Handler) postMessage(w http.ResponseWriter, r *http.Request) { 216 + session, _ := h.sessionStore.Get(r, "oauthsession") 217 + _, ok := session.Values["id"].(uint) 218 + if !ok { 219 + h.postMyMessage(w, r) 220 + return 221 + } 222 + client, err := h.getClient(r) 223 + if err != nil { 224 + h.serverError(w, errors.New("couldn't find client: "+err.Error())) 225 + return 226 + } 227 + 228 + lmr, now, err := h.parseMessageRequest(r) 229 + if err != nil { 230 + h.badRequest(w, errors.New("couldn't parse message "+err.Error())) 231 + return 232 + } 233 + 234 + uri, cid, err := client.CreateXCVRMessage(*lmr, r.Context()) 235 + if err != nil { 236 + h.serverError(w, errors.New("couldn't add to user repo: ")) 237 + return 238 + } 239 + did := session.Values["did"].(string) 240 + h.postPostMessagePostHandler(uri, cid, did, now, lmr, w, r) 226 241 } 227 242 228 243 func (h *Handler) deleteChannel(w http.ResponseWriter, r *http.Request) {
+9
server/internal/oauth/passwordclient.go
··· 62 62 return nil 63 63 } 64 64 65 + func (c *PasswordClient) CreateXCVRMessage(message *lex.MessageRecord, ctx context.Context) (cid string, uri string, err error) { 66 + input := atproto.RepoCreateRecord_Input{ 67 + Collection: "org.xcvr.lrc.message", 68 + Repo: *c.did, 69 + Record: &util.LexiconTypeDecoder{Val: message}, 70 + } 71 + return c.createMyRecord(input, ctx) 72 + } 73 + 65 74 func (c *PasswordClient) CreateXCVRSignet(signet *lex.SignetRecord, ctx context.Context) (cid string, uri string, err error) { 66 75 input := atproto.RepoCreateRecord_Input{ 67 76 Collection: "org.xcvr.lrc.signet",