QueryRoomVersionCapabilities implements api.RoomserverInternalAPI
( ctx context.Context, request *api.QueryRoomVersionForRoomRequest, response *api.QueryRoomVersionForRoomResponse, )
| 596 | |
| 597 | // QueryRoomVersionCapabilities implements api.RoomserverInternalAPI |
| 598 | func (r *Queryer) QueryRoomVersionForRoom( |
| 599 | ctx context.Context, |
| 600 | request *api.QueryRoomVersionForRoomRequest, |
| 601 | response *api.QueryRoomVersionForRoomResponse, |
| 602 | ) error { |
| 603 | if roomVersion, ok := r.Cache.GetRoomVersion(request.RoomID); ok { |
| 604 | response.RoomVersion = roomVersion |
| 605 | return nil |
| 606 | } |
| 607 | |
| 608 | info, err := r.DB.RoomInfo(ctx, request.RoomID) |
| 609 | if err != nil { |
| 610 | return err |
| 611 | } |
| 612 | if info == nil { |
| 613 | return fmt.Errorf("QueryRoomVersionForRoom: missing room info for room %s", request.RoomID) |
| 614 | } |
| 615 | response.RoomVersion = info.RoomVersion |
| 616 | r.Cache.StoreRoomVersion(request.RoomID, response.RoomVersion) |
| 617 | return nil |
| 618 | } |
| 619 | |
| 620 | func (r *Queryer) roomVersion(roomID string) (gomatrixserverlib.RoomVersion, error) { |
| 621 | var res api.QueryRoomVersionForRoomResponse |
no test coverage detected