mirror of
				https://github.com/matrix-org/gomatrix
				synced 2025-11-04 06:18:05 +00:00 
			
		
		
		
	Merge pull request #8 from matrix-org/kegan/create-room-method
Add CreateRoom()
This commit is contained in:
		
						commit
						e5174ba108
					
				
					 3 changed files with 38 additions and 0 deletions
				
			
		
							
								
								
									
										11
									
								
								client.go
									
										
									
									
									
								
							
							
						
						
									
										11
									
								
								client.go
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -398,6 +398,17 @@ func (cli *Client) SendText(roomID, text string) (*RespSendEvent, error) {
 | 
			
		|||
		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
 | 
			
		||||
func (cli *Client) LeaveRoom(roomID string) (resp *RespLeaveRoom, err error) {
 | 
			
		||||
	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"`
 | 
			
		||||
	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"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 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
 | 
			
		||||
type RespSync struct {
 | 
			
		||||
	NextBatch   string `json:"next_batch"`
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue