aboutsummaryrefslogblamecommitdiff
path: root/mxlib/api.go
blob: de5b42445c17f3243c607cafd6188043497da941 (plain) (tree)
1
2
3
4
5
6





                         








                                       




                                      
                                                       





                                                    





















                                                                        










                                                                                






















                                        


                                        
 
package mxlib

import (
	_ "encoding/json"
)

type MxError struct {
	ErrCode string `json:"errcode"`
	ErrMsg string `json:"error"`
}

func (e *MxError) Error() string {
	return e.ErrMsg
}

type Transaction struct {
	Events []Event `json:"events"`
}

type Event struct {
	Content map[string]interface{} `json:"content"`
	Type string `json:"type"`
	EventId string `json:"event_id"`
	RoomId string `json:"room_id"`
	Sender string `json:"sender"`
	OriginServerTs int `json:"origin_server_ts"`
}

type RegisterRequest struct {
	Username string `json:"username"`
}

type RegisterResponse struct {
	UserId string `json:"user_id"`
	AccessToken string `json:"access_token"`
	DeviceId string `json:"device_id"`
}

type ProfileDisplaynameRequest struct {
	Displayname string `json:"displayname"`
}

type CreateRoomRequest struct {
	Preset string `json:"preset"`
	RoomAliasName string `json:"room_alias_name"`
	Name string `json:"name"`
	Topic string `json:"topic"`
	Invite []string `json:"invite"`
	CreationContent map[string]interface{} `json:"creation_content"`
	PowerLevels map[string]interface{} `json:"power_level_content_override"`
}

type CreateRoomNoAliasRequest struct {
	Preset string `json:"preset"`
	Name string `json:"name"`
	Topic string `json:"topic"`
	Invite []string `json:"invite"`
	CreationContent map[string]interface{} `json:"creation_content"`
	PowerLevels map[string]interface{} `json:"power_level_content_override"`
	IsDirect bool `json:"is_direct"`
}

type CreateRoomResponse struct {
	RoomId string `json:"room_id"`
}

type DirectoryRoomResponse struct {
	RoomId string `json:"room_id"`
	Servers []string `json:"string"`
}

type RoomInviteRequest struct {
	UserId string `json:"user_id"`
}

type RoomKickRequest struct {
	UserId string `json:"user_id"`
	Reason string `json:"reason"`
}
type RoomJoinResponse struct {
	RoomId string `json:"room_id"`
}

type RoomSendResponse struct {
	EventId string `json:"event_id"`
}