mirror of https://github.com/matrix-org/gomatrix
Add CreateRoom()
This commit is contained in:
parent
9c7c0986d7
commit
7afedf5a62
11
client.go
11
client.go
|
@ -398,6 +398,17 @@ func (cli *Client) SendText(roomID, text string) (*RespSendEvent, error) {
|
||||||
TextMessage{"m.text", text})
|
TextMessage{"m.text", text})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CreateRoom creates a new Matrix room. See https://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-createroom
|
||||||
|
// resp, err := cli.CreateRoom(&gomatrix.ReqCreateRoom{
|
||||||
|
// Preset: "public_chat",
|
||||||
|
// })
|
||||||
|
// fmt.Println("Room:", resp.RoomID)
|
||||||
|
func (cli *Client) CreateRoom(req *ReqCreateRoom) (resp *RespCreateRoom, err error) {
|
||||||
|
urlPath := cli.BuildURL("createRoom")
|
||||||
|
_, err = cli.MakeRequest("POST", urlPath, req, &resp)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// LeaveRoom leaves the given room. See http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-leave
|
// LeaveRoom leaves the given room. See http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-leave
|
||||||
func (cli *Client) LeaveRoom(roomID string) (resp *RespLeaveRoom, err error) {
|
func (cli *Client) LeaveRoom(roomID string) (resp *RespLeaveRoom, err error) {
|
||||||
u := cli.BuildURL("rooms", roomID, "leave")
|
u := cli.BuildURL("rooms", roomID, "leave")
|
||||||
|
|
22
requests.go
22
requests.go
|
@ -21,3 +21,25 @@ type ReqLogin struct {
|
||||||
DeviceID string `json:"device_id,omitempty"`
|
DeviceID string `json:"device_id,omitempty"`
|
||||||
InitialDeviceDisplayName string `json:"initial_device_display_name,omitempty"`
|
InitialDeviceDisplayName string `json:"initial_device_display_name,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ReqCreateRoom is the JSON request for https://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-createroom
|
||||||
|
type ReqCreateRoom struct {
|
||||||
|
Visibility string `json:"visibility,omitempty"`
|
||||||
|
RoomAliasName string `json:"room_alias_name,omitempty"`
|
||||||
|
Name string `json:"name,omitempty"`
|
||||||
|
Topic string `json:"topic,omitempty"`
|
||||||
|
Invite []string `json:"invite,omitempty"`
|
||||||
|
Invite3PID []ReqInvite3PID `json:"invite_3pid,omitempty"`
|
||||||
|
CreationContent map[string]interface{} `json:"creation_content,omitempty"`
|
||||||
|
InitialState []Event `json:"initial_state,omitempty"`
|
||||||
|
Preset string `json:"preset,omitempty"`
|
||||||
|
IsDirect bool `json:"is_direct,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReqInvite3PID is the JSON request for https://matrix.org/docs/spec/client_server/r0.2.0.html#id57
|
||||||
|
// It is also a JSON object used in https://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-createroom
|
||||||
|
type ReqInvite3PID struct {
|
||||||
|
IDServer string `json:"id_server"`
|
||||||
|
Medium string `json:"medium"`
|
||||||
|
Address string `json:"address"`
|
||||||
|
}
|
||||||
|
|
|
@ -74,6 +74,11 @@ type RespLogin struct {
|
||||||
UserID string `json:"user_id"`
|
UserID string `json:"user_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RespCreateRoom is the JSON response for https://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-createroom
|
||||||
|
type RespCreateRoom struct {
|
||||||
|
RoomID string `json:"room_id"`
|
||||||
|
}
|
||||||
|
|
||||||
// RespSync is the JSON response for http://matrix.org/docs/spec/client_server/r0.2.0.html#get-matrix-client-r0-sync
|
// RespSync is the JSON response for http://matrix.org/docs/spec/client_server/r0.2.0.html#get-matrix-client-r0-sync
|
||||||
type RespSync struct {
|
type RespSync struct {
|
||||||
NextBatch string `json:"next_batch"`
|
NextBatch string `json:"next_batch"`
|
||||||
|
|
Loading…
Reference in New Issue