diff options
author | Tilo Spannagel <development@tilosp.de> | 2020-08-30 14:01:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-30 14:01:52 +0200 |
commit | f9928c9e259fefee5bd049dbc8d8e5d98107f136 (patch) | |
tree | a593a2376ca4debdecb31b431e9d3928383d89e6 /vendor/github.com/matrix-org/gomatrix/identifier.go | |
parent | a0741d99b80d7da1c063853382756b3a9689f6a7 (diff) | |
download | matterbridge-msglm-f9928c9e259fefee5bd049dbc8d8e5d98107f136.tar.gz matterbridge-msglm-f9928c9e259fefee5bd049dbc8d8e5d98107f136.tar.bz2 matterbridge-msglm-f9928c9e259fefee5bd049dbc8d8e5d98107f136.zip |
Switch to upstream gomatrix (#1219)
Signed-off-by: Tilo Spannagel <development@tilosp.de>
Diffstat (limited to 'vendor/github.com/matrix-org/gomatrix/identifier.go')
-rw-r--r-- | vendor/github.com/matrix-org/gomatrix/identifier.go | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/vendor/github.com/matrix-org/gomatrix/identifier.go b/vendor/github.com/matrix-org/gomatrix/identifier.go new file mode 100644 index 00000000..4a61d080 --- /dev/null +++ b/vendor/github.com/matrix-org/gomatrix/identifier.go @@ -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, + } +} |