mirror of https://github.com/matrix-org/gomatrix
Update Login() Logout() and LogoutAll() to r0.6.0 (#73)
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
This commit is contained in:
parent
e5578b12c7
commit
c698fb0c10
10
client.go
10
client.go
|
@ -354,7 +354,7 @@ func (cli *Client) Login(req *ReqLogin) (resp *RespLogin, err error) {
|
|||
return
|
||||
}
|
||||
|
||||
// Logout the current user. See http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-logout
|
||||
// Logout the current user. See http://matrix.org/docs/spec/client_server/r0.6.0.html#post-matrix-client-r0-logout
|
||||
// This does not clear the credentials from the client instance. See ClearCredentials() instead.
|
||||
func (cli *Client) Logout() (resp *RespLogout, err error) {
|
||||
urlPath := cli.BuildURL("logout")
|
||||
|
@ -362,6 +362,14 @@ func (cli *Client) Logout() (resp *RespLogout, err error) {
|
|||
return
|
||||
}
|
||||
|
||||
// LogoutAll logs the current user out on all devices. See https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-logout-all
|
||||
// This does not clear the credentials from the client instance. See ClearCredentails() instead.
|
||||
func (cli *Client) LogoutAll() (resp *RespLogoutAll, err error) {
|
||||
urlPath := cli.BuildURL("logout/all")
|
||||
err = cli.MakeRequest("POST", urlPath, nil, &resp)
|
||||
return
|
||||
}
|
||||
|
||||
// Versions returns the list of supported Matrix versions on this homeserver. See http://matrix.org/docs/spec/client_server/r0.2.0.html#get-matrix-client-versions
|
||||
func (cli *Client) Versions() (resp *RespVersions, err error) {
|
||||
urlPath := cli.BuildBaseURL("_matrix", "client", "versions")
|
||||
|
|
|
@ -0,0 +1,69 @@
|
|||
package gomatrix
|
||||
|
||||
// Identifier is the interface for https://matrix.org/docs/spec/client_server/r0.6.0#identifier-types
|
||||
type Identifier interface {
|
||||
// Returns the identifier type
|
||||
// https://matrix.org/docs/spec/client_server/r0.6.0#identifier-types
|
||||
Type() string
|
||||
}
|
||||
|
||||
// UserIdentifier is the Identifier for https://matrix.org/docs/spec/client_server/r0.6.0#matrix-user-id
|
||||
type UserIdentifier struct {
|
||||
IDType string `json:"type"` // Set by NewUserIdentifer
|
||||
User string `json:"user"`
|
||||
}
|
||||
|
||||
// Type implements the Identifier interface
|
||||
func (i UserIdentifier) Type() string {
|
||||
return "m.id.user"
|
||||
}
|
||||
|
||||
// NewUserIdentifier creates a new UserIdentifier with IDType set to "m.id.user"
|
||||
func NewUserIdentifier(user string) UserIdentifier {
|
||||
return UserIdentifier{
|
||||
IDType: "m.id.user",
|
||||
User: user,
|
||||
}
|
||||
}
|
||||
|
||||
// ThirdpartyIdentifier is the Identifier for https://matrix.org/docs/spec/client_server/r0.6.0#third-party-id
|
||||
type ThirdpartyIdentifier struct {
|
||||
IDType string `json:"type"` // Set by NewThirdpartyIdentifier
|
||||
Medium string `json:"medium"`
|
||||
Address string `json:"address"`
|
||||
}
|
||||
|
||||
// Type implements the Identifier interface
|
||||
func (i ThirdpartyIdentifier) Type() string {
|
||||
return "m.id.thirdparty"
|
||||
}
|
||||
|
||||
// NewThirdpartyIdentifier creates a new UserIdentifier with IDType set to "m.id.user"
|
||||
func NewThirdpartyIdentifier(medium, address string) ThirdpartyIdentifier {
|
||||
return ThirdpartyIdentifier{
|
||||
IDType: "m.id.thirdparty",
|
||||
Medium: medium,
|
||||
Address: address,
|
||||
}
|
||||
}
|
||||
|
||||
// PhoneIdentifier is the Identifier for https://matrix.org/docs/spec/client_server/r0.6.0#phone-number
|
||||
type PhoneIdentifier struct {
|
||||
IDType string `json:"type"` // Set by NewPhoneIdentifier
|
||||
Country string `json:"country"`
|
||||
Phone string `json:"phone"`
|
||||
}
|
||||
|
||||
// Type implements the Identifier interface
|
||||
func (i PhoneIdentifier) Type() string {
|
||||
return "m.id.phone"
|
||||
}
|
||||
|
||||
// NewPhoneIdentifier creates a new UserIdentifier with IDType set to "m.id.user"
|
||||
func NewPhoneIdentifier(country, phone string) PhoneIdentifier {
|
||||
return PhoneIdentifier{
|
||||
IDType: "m.id.phone",
|
||||
Country: country,
|
||||
Phone: phone,
|
||||
}
|
||||
}
|
|
@ -10,9 +10,10 @@ type ReqRegister struct {
|
|||
Auth interface{} `json:"auth,omitempty"`
|
||||
}
|
||||
|
||||
// ReqLogin is the JSON request for http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-login
|
||||
// ReqLogin is the JSON request for http://matrix.org/docs/spec/client_server/r0.6.0.html#post-matrix-client-r0-login
|
||||
type ReqLogin struct {
|
||||
Type string `json:"type"`
|
||||
Identifier Identifier `json:"identifier,omitempty"`
|
||||
Password string `json:"password,omitempty"`
|
||||
Medium string `json:"medium,omitempty"`
|
||||
User string `json:"user,omitempty"`
|
||||
|
|
18
responses.go
18
responses.go
|
@ -122,17 +122,31 @@ type RespRegister struct {
|
|||
UserID string `json:"user_id"`
|
||||
}
|
||||
|
||||
// RespLogin is the JSON response for http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-login
|
||||
// RespLogin is the JSON response for http://matrix.org/docs/spec/client_server/r0.6.0.html#post-matrix-client-r0-login
|
||||
type RespLogin struct {
|
||||
AccessToken string `json:"access_token"`
|
||||
DeviceID string `json:"device_id"`
|
||||
HomeServer string `json:"home_server"`
|
||||
UserID string `json:"user_id"`
|
||||
WellKnown DiscoveryInformation `json:"well_known"`
|
||||
}
|
||||
|
||||
// RespLogout is the JSON response for http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-logout
|
||||
// DiscoveryInformation is the JSON Response for https://matrix.org/docs/spec/client_server/r0.6.0#get-well-known-matrix-client and a part of the JSON Response for https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-login
|
||||
type DiscoveryInformation struct {
|
||||
Homeserver struct {
|
||||
BaseURL string `json:"base_url"`
|
||||
} `json:"m.homeserver"`
|
||||
IdentityServer struct {
|
||||
BaseURL string `json:"base_url"`
|
||||
} `json:"m.identitiy_server"`
|
||||
}
|
||||
|
||||
// RespLogout is the JSON response for http://matrix.org/docs/spec/client_server/r0.6.0.html#post-matrix-client-r0-logout
|
||||
type RespLogout struct{}
|
||||
|
||||
// RespLogoutAll is the JSON response for https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-logout-all
|
||||
type RespLogoutAll struct{}
|
||||
|
||||
// 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"`
|
||||
|
|
Loading…
Reference in New Issue