(req *http.Request, roomID string, rsAPI roomserverAPI.ClientRoomserverAPI)
| 351 | } |
| 352 | |
| 353 | func extractRequestData(req *http.Request, roomID string, rsAPI roomserverAPI.ClientRoomserverAPI) ( |
| 354 | body *threepid.MembershipRequest, evTime time.Time, roomVer gomatrixserverlib.RoomVersion, resErr *util.JSONResponse, |
| 355 | ) { |
| 356 | verReq := roomserverAPI.QueryRoomVersionForRoomRequest{RoomID: roomID} |
| 357 | verRes := roomserverAPI.QueryRoomVersionForRoomResponse{} |
| 358 | if err := rsAPI.QueryRoomVersionForRoom(req.Context(), &verReq, &verRes); err != nil { |
| 359 | resErr = &util.JSONResponse{ |
| 360 | Code: http.StatusBadRequest, |
| 361 | JSON: jsonerror.UnsupportedRoomVersion(err.Error()), |
| 362 | } |
| 363 | return |
| 364 | } |
| 365 | roomVer = verRes.RoomVersion |
| 366 | |
| 367 | if reqErr := httputil.UnmarshalJSONRequest(req, &body); reqErr != nil { |
| 368 | resErr = reqErr |
| 369 | return |
| 370 | } |
| 371 | |
| 372 | evTime, err := httputil.ParseTSParam(req) |
| 373 | if err != nil { |
| 374 | resErr = &util.JSONResponse{ |
| 375 | Code: http.StatusBadRequest, |
| 376 | JSON: jsonerror.InvalidArgumentValue(err.Error()), |
| 377 | } |
| 378 | return |
| 379 | } |
| 380 | return |
| 381 | } |
| 382 | |
| 383 | func checkAndProcessThreepid( |
| 384 | req *http.Request, |
no test coverage detected