Skip to content

Commit 16ccba1

Browse files
author
ghuet
committed
add GetRoomDetails function to admin api
1 parent 4b970e0 commit 16ccba1

File tree

1 file changed

+46
-6
lines changed

1 file changed

+46
-6
lines changed

synapseadmin/roomapi.go

+46-6
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,14 @@ type RespRoomMessages = mautrix.RespMessages
8686
// RoomMessages returns a list of messages in a room.
8787
//
8888
// https://matrix-org.github.io/synapse/latest/admin_api/rooms.html#room-messages-api
89-
func (cli *Client) RoomMessages(ctx context.Context, roomID id.RoomID, from, to string, dir mautrix.Direction, filter *mautrix.FilterPart, limit int) (resp *RespRoomMessages, err error) {
89+
func (cli *Client) RoomMessages(
90+
ctx context.Context,
91+
roomID id.RoomID,
92+
from, to string,
93+
dir mautrix.Direction,
94+
filter *mautrix.FilterPart,
95+
limit int,
96+
) (resp *RespRoomMessages, err error) {
9097
query := map[string]string{
9198
"from": from,
9299
"dir": string(dir),
@@ -104,7 +111,10 @@ func (cli *Client) RoomMessages(ctx context.Context, roomID id.RoomID, from, to
104111
if limit != 0 {
105112
query["limit"] = strconv.Itoa(limit)
106113
}
107-
urlPath := cli.BuildURLWithQuery(mautrix.SynapseAdminURLPath{"v1", "rooms", roomID, "messages"}, query)
114+
urlPath := cli.BuildURLWithQuery(
115+
mautrix.SynapseAdminURLPath{"v1", "rooms", roomID, "messages"},
116+
query,
117+
)
108118
_, err = cli.MakeRequest(ctx, http.MethodGet, urlPath, nil, &resp)
109119
return resp, err
110120
}
@@ -126,7 +136,11 @@ type RespDeleteRoom struct {
126136
// This calls the async version of the endpoint, which will return immediately and delete the room in the background.
127137
//
128138
// https://matrix-org.github.io/synapse/latest/admin_api/rooms.html#version-2-new-version
129-
func (cli *Client) DeleteRoom(ctx context.Context, roomID id.RoomID, req ReqDeleteRoom) (RespDeleteRoom, error) {
139+
func (cli *Client) DeleteRoom(
140+
ctx context.Context,
141+
roomID id.RoomID,
142+
req ReqDeleteRoom,
143+
) (RespDeleteRoom, error) {
130144
reqURL := cli.BuildAdminURL("v2", "rooms", roomID)
131145
var resp RespDeleteRoom
132146
_, err := cli.MakeRequest(ctx, http.MethodDelete, reqURL, &req, &resp)
@@ -155,7 +169,11 @@ type ReqMakeRoomAdmin struct {
155169
// MakeRoomAdmin promotes a user to admin in a room. This requires that a local user has permission to promote users in the room.
156170
//
157171
// https://matrix-org.github.io/synapse/latest/admin_api/rooms.html#make-room-admin-api
158-
func (cli *Client) MakeRoomAdmin(ctx context.Context, roomIDOrAlias string, req ReqMakeRoomAdmin) error {
172+
func (cli *Client) MakeRoomAdmin(
173+
ctx context.Context,
174+
roomIDOrAlias string,
175+
req ReqMakeRoomAdmin,
176+
) error {
159177
reqURL := cli.BuildAdminURL("v1", "rooms", roomIDOrAlias, "make_room_admin")
160178
_, err := cli.MakeRequest(ctx, http.MethodPost, reqURL, &req, nil)
161179
return err
@@ -168,7 +186,11 @@ type ReqJoinUserToRoom struct {
168186
// JoinUserToRoom makes a local user join the given room.
169187
//
170188
// https://matrix-org.github.io/synapse/latest/admin_api/room_membership.html
171-
func (cli *Client) JoinUserToRoom(ctx context.Context, roomID id.RoomID, req ReqJoinUserToRoom) error {
189+
func (cli *Client) JoinUserToRoom(
190+
ctx context.Context,
191+
roomID id.RoomID,
192+
req ReqJoinUserToRoom,
193+
) error {
172194
reqURL := cli.BuildAdminURL("v1", "join", roomID)
173195
_, err := cli.MakeRequest(ctx, http.MethodPost, reqURL, &req, nil)
174196
return err
@@ -196,9 +218,27 @@ type RoomsBlockResponse struct {
196218
// GetRoomBlockStatus gets whether a room is currently blocked.
197219
//
198220
// https://matrix-org.github.io/synapse/latest/admin_api/rooms.html#get-block-status
199-
func (cli *Client) GetRoomBlockStatus(ctx context.Context, roomID id.RoomID) (RoomsBlockResponse, error) {
221+
func (cli *Client) GetRoomBlockStatus(
222+
ctx context.Context,
223+
roomID id.RoomID,
224+
) (RoomsBlockResponse, error) {
200225
var resp RoomsBlockResponse
201226
reqURL := cli.BuildAdminURL("v1", "rooms", roomID, "block")
202227
_, err := cli.MakeRequest(ctx, http.MethodGet, reqURL, nil, &resp)
203228
return resp, err
204229
}
230+
231+
// ListRooms returns a list of rooms on the server.
232+
//
233+
// https://matrix-org.github.io/synapse/latest/admin_api/rooms.html#list-room-api
234+
func (cli *Client) GetRoomDetails(ctx context.Context, roomID id.RoomID) (RoomInfo, error) {
235+
var resp RoomInfo
236+
var reqURL string
237+
reqURL = cli.BuildURLWithQuery(mautrix.SynapseAdminURLPath{"v1", "rooms", roomID}, nil)
238+
_, err := cli.MakeFullRequest(ctx, mautrix.FullRequest{
239+
Method: http.MethodGet,
240+
URL: reqURL,
241+
ResponseJSON: &resp,
242+
})
243+
return resp, err
244+
}

0 commit comments

Comments
 (0)