package model import ( "golang.org/x/oauth2" "time" ) // YaDisk (StorageType) - хранит информацию о пользователе Yandex и данных необходимых для хранилища. // Пользователь может иметь несколько хранилищ YaDisk. // Login - уникальное поле и закрепляется только за одним пользователем type YaDisk struct { ID string `bson:"_id,omitempty" json:"id"` UserID string `bson:"user_id" json:"user_id"` UID string `bson:"uid" json:"uid"` // Yandex UID. Unique ? Login string `bson:"login" json:"login"` // Yandex login. Unique ? DisplayName string `bson:"display_name" json:"display_name"` // Отображаемое имя пользователя в Yandex AccessToken string `bson:"access_token" json:"-"` RefreshToken string `bson:"refresh_token" json:"-"` ExpiresIn time.Time `bson:"expires_in" json:"-"` TokenType string `bson:"token_type" json:"-"` Name string `bson:"name" json:"name"` // Пользовательское название хранилища TemplateFolder string `bson:"template_folder" json:"template_folder"` SaveFolder string `bson:"save_folder" json:"save_folder"` IsDeleted bool `bson:"is_deleted" json:"is_deleted"` CreatedAt time.Time `bson:"created_at" json:"created_at"` UpdatedAt time.Time `bson:"updated_at" json:"updated_at"` } func (m *YaDisk) Token() *oauth2.Token { token := &oauth2.Token{ AccessToken: m.AccessToken, TokenType: m.TokenType, RefreshToken: m.RefreshToken, Expiry: m.ExpiresIn, } return token }