39 lines
1.7 KiB
Go
39 lines
1.7 KiB
Go
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
|
||
}
|