GetVisibility implements GET /directory/list/room/{roomID}
( req *http.Request, rsAPI roomserverAPI.ClientRoomserverAPI, roomID string, )
| 237 | |
| 238 | // GetVisibility implements GET /directory/list/room/{roomID} |
| 239 | func GetVisibility( |
| 240 | req *http.Request, rsAPI roomserverAPI.ClientRoomserverAPI, |
| 241 | roomID string, |
| 242 | ) util.JSONResponse { |
| 243 | var res roomserverAPI.QueryPublishedRoomsResponse |
| 244 | err := rsAPI.QueryPublishedRooms(req.Context(), &roomserverAPI.QueryPublishedRoomsRequest{ |
| 245 | RoomID: roomID, |
| 246 | }, &res) |
| 247 | if err != nil { |
| 248 | util.GetLogger(req.Context()).WithError(err).Error("QueryPublishedRooms failed") |
| 249 | return jsonerror.InternalServerError() |
| 250 | } |
| 251 | |
| 252 | var v roomVisibility |
| 253 | if len(res.RoomIDs) == 1 { |
| 254 | v.Visibility = gomatrixserverlib.Public |
| 255 | } else { |
| 256 | v.Visibility = "private" |
| 257 | } |
| 258 | |
| 259 | return util.JSONResponse{ |
| 260 | Code: http.StatusOK, |
| 261 | JSON: v, |
| 262 | } |
| 263 | } |
| 264 | |
| 265 | // SetVisibility implements PUT /directory/list/room/{roomID} |
| 266 | // TODO: Allow admin users to edit the room visibility |
no test coverage detected