mirror of https://github.com/matrix-org/gomatrix
Add room membership APIs
This commit is contained in:
parent
373dfc2ff2
commit
490a10cbc3
42
client.go
42
client.go
|
@ -411,6 +411,48 @@ func (cli *Client) LeaveRoom(roomID string) (resp *RespLeaveRoom, err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ForgetRoom forgets a room entirely. See http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-forget
|
||||||
|
func (cli *Client) ForgetRoom(roomID string) (resp *RespForgetRoom, err error) {
|
||||||
|
u := cli.BuildURL("rooms", roomID, "forget")
|
||||||
|
_, err = cli.MakeRequest("POST", u, struct{}{}, &resp)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// InviteUser invites a user to a room. See http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-invite
|
||||||
|
func (cli *Client) InviteUser(roomID string, req *ReqInviteUser) (resp *RespInviteUser, err error) {
|
||||||
|
u := cli.BuildURL("rooms", roomID, "invite")
|
||||||
|
_, err = cli.MakeRequest("POST", u, struct{}{}, &resp)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// InviteUserByThirdParty invites a third-party identifier to a room. See http://matrix.org/docs/spec/client_server/r0.2.0.html#invite-by-third-party-id-endpoint
|
||||||
|
func (cli *Client) InviteUserByThirdParty(roomID string, req *ReqInvite3PID) (resp *RespInviteUser, err error) {
|
||||||
|
u := cli.BuildURL("rooms", roomID, "invite")
|
||||||
|
_, err = cli.MakeRequest("POST", u, req, &resp)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// KickUser kicks a user from a room. See http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-kick
|
||||||
|
func (cli *Client) KickUser(roomID string, req *ReqKickUser) (resp *RespKickUser, err error) {
|
||||||
|
u := cli.BuildURL("rooms", roomID, "kick")
|
||||||
|
_, err = cli.MakeRequest("POST", u, req, &resp)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// BanUser bans a user from a room. See http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-ban
|
||||||
|
func (cli *Client) BanUser(roomID string, req *ReqBanUser) (resp *RespBanUser, err error) {
|
||||||
|
u := cli.BuildURL("rooms", roomID, "ban")
|
||||||
|
_, err = cli.MakeRequest("POST", u, req, &resp)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnbanUser unbans a user from a room. See http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-unban
|
||||||
|
func (cli *Client) UnbanUser(roomID string, req *ReqUnbanUser) (resp *RespUnbanUser, err error) {
|
||||||
|
u := cli.BuildURL("rooms", roomID, "unban")
|
||||||
|
_, err = cli.MakeRequest("POST", u, req, &resp)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// StateEvent gets a single state event in a room. It will attempt to JSON unmarshal into the given "outContent" struct with
|
// StateEvent gets a single state event in a room. It will attempt to JSON unmarshal into the given "outContent" struct with
|
||||||
// the HTTP response body, or return an error.
|
// the HTTP response body, or return an error.
|
||||||
// See http://matrix.org/docs/spec/client_server/r0.2.0.html#get-matrix-client-r0-rooms-roomid-state-eventtype-statekey
|
// See http://matrix.org/docs/spec/client_server/r0.2.0.html#get-matrix-client-r0-rooms-roomid-state-eventtype-statekey
|
||||||
|
|
22
requests.go
22
requests.go
|
@ -43,3 +43,25 @@ type ReqInvite3PID struct {
|
||||||
Medium string `json:"medium"`
|
Medium string `json:"medium"`
|
||||||
Address string `json:"address"`
|
Address string `json:"address"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ReqInviteUser is the JSON request for http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-invite
|
||||||
|
type ReqInviteUser struct {
|
||||||
|
UserID string `json:"user_id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReqKickUser is the JSON request for http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-kick
|
||||||
|
type ReqKickUser struct {
|
||||||
|
Reason string `json:"reason,omitempty"`
|
||||||
|
UserID string `json:"user_id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReqBanUser is the JSON request for http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-ban
|
||||||
|
type ReqBanUser struct {
|
||||||
|
Reason string `json:"reason,omitempty"`
|
||||||
|
UserID string `json:"user_id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReqUnbanUser is the JSON request for http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-unban
|
||||||
|
type ReqUnbanUser struct {
|
||||||
|
UserID string `json:"user_id"`
|
||||||
|
}
|
||||||
|
|
15
responses.go
15
responses.go
|
@ -25,6 +25,21 @@ type RespJoinRoom struct {
|
||||||
// RespLeaveRoom is the JSON response for http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-leave
|
// RespLeaveRoom is the JSON response for http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-leave
|
||||||
type RespLeaveRoom struct{}
|
type RespLeaveRoom struct{}
|
||||||
|
|
||||||
|
// RespForgetRoom is the JSON response for http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-forget
|
||||||
|
type RespForgetRoom struct{}
|
||||||
|
|
||||||
|
// RespInviteUser is the JSON response for http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-invite
|
||||||
|
type RespInviteUser struct{}
|
||||||
|
|
||||||
|
// RespKickUser is the JSON response for http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-kick
|
||||||
|
type RespKickUser struct{}
|
||||||
|
|
||||||
|
// RespBanUser is the JSON response for http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-ban
|
||||||
|
type RespBanUser struct{}
|
||||||
|
|
||||||
|
// RespUnbanUser is the JSON response for http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-unban
|
||||||
|
type RespUnbanUser struct{}
|
||||||
|
|
||||||
// RespSendEvent is the JSON response for http://matrix.org/docs/spec/client_server/r0.2.0.html#put-matrix-client-r0-rooms-roomid-send-eventtype-txnid
|
// RespSendEvent is the JSON response for http://matrix.org/docs/spec/client_server/r0.2.0.html#put-matrix-client-r0-rooms-roomid-send-eventtype-txnid
|
||||||
type RespSendEvent struct {
|
type RespSendEvent struct {
|
||||||
EventID string `json:"event_id"`
|
EventID string `json:"event_id"`
|
||||||
|
|
Loading…
Reference in New Issue