hydroxide-push/protonmail/users.go

98 lines
2.1 KiB
Go
Raw Normal View History

2017-08-24 11:51:15 +03:00
package protonmail
import (
"net/http"
)
type (
2017-09-13 12:43:12 +03:00
LogAuth int
ComposerMode int
2017-08-24 11:51:15 +03:00
MessageButtons int
2017-09-13 12:43:12 +03:00
ImagesMode int
ViewMode int
ViewLayout int
SwipeAction int
2017-08-24 11:51:15 +03:00
)
type User struct {
2017-09-13 12:43:12 +03:00
ID string
Name string
NotificationEmail string
Signature string // HTML
NumMessagePerPage int
UsedSpace int
Notify int
AutoSaveContacts int
Language string // e.g. en_US
LogAuth LogAuth
ComposerMode ComposerMode
MessageButtons MessageButtons
Images ImagesMode
Moved int
ShowImages int
ShowEmbedded int
ViewMode ViewMode
ViewLayout ViewLayout
SwipeLeft SwipeAction
SwipeRight SwipeAction
Theme string
Currency string // e.g. EUR
Credit int
InvoiceText string
AlsoArchive int
Hotkeys int
PMSignature int
TwoFactor int
PasswordReset int
PasswordMode PasswordMode
News int
AutoResponder interface{} // TODO
2017-08-24 11:51:15 +03:00
AutoWildcardSearch int
2017-09-13 12:43:12 +03:00
DraftMIMEType string
ReceiveMIMEType string
ImageProxy int
DisplayName string
MaxSpace int
MaxUpload int
Subscribed int // TODO
Services int // TODO
Role int // TODO
Private int
VPN interface{} // TODO
Delinquent int
Addresses []*Address
2017-09-21 21:02:54 +03:00
Keys []*PrivateKey
2017-08-24 11:51:15 +03:00
}
func (c *Client) GetCurrentUser() (*User, error) {
req, err := c.newRequest(http.MethodGet, "/users", nil)
if err != nil {
return nil, err
}
var userData struct {
2017-08-24 11:51:15 +03:00
resp
User *User
}
if err := c.doJSON(req, &userData); err != nil {
2017-08-24 11:51:15 +03:00
return nil, err
}
req2, err := c.newRequest(http.MethodGet, "/addresses", nil)
if err != nil {
return nil, err
}
var addrData struct {
resp
Addresses []*Address
}
if err := c.doJSON(req2, &addrData); err != nil {
return nil, err
}
userData.User.Addresses = addrData.Addresses
return userData.User, nil
2017-08-24 11:51:15 +03:00
}