easybridge/mxlib/api.go
2020-02-26 17:45:25 +01:00

106 lines
2.8 KiB
Go

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 PasswordLoginRequest struct {
Type string `json:"type"`
Identifier map[string]string `json:"identifier"`
Password string `json:"password"`
DeviceID string `json:"device_id"`
InitialDeviceDisplayNAme string `json:"initial_device_display_name"`
}
type LoginResponse struct {
UserID string `json:"user_id"`
AccessToken string `json:"access_token"`
}
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 CreateDirectRoomRequest struct {
Preset string `json:"preset"`
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"`
}
type UploadResponse struct {
ContentUri string `json:"content_uri"`
}
type ProfileAvatarUrl struct {
AvatarUrl string `json:"avatar_url"`
}