2022-07-28 15:00:43 +00:00
|
|
|
|
package model
|
|
|
|
|
|
|
|
|
|
import (
|
2022-08-10 13:53:34 +00:00
|
|
|
|
"golang.org/x/oauth2"
|
2022-07-28 15:00:43 +00:00
|
|
|
|
"time"
|
|
|
|
|
)
|
|
|
|
|
|
2022-11-21 15:07:49 +00:00
|
|
|
|
// YaDisk (StorageType) - хранит информацию о пользователе Yandex и данных необходимых для хранилища.
|
2022-09-15 13:53:55 +00:00
|
|
|
|
// Пользователь может иметь несколько хранилищ YaDisk.
|
|
|
|
|
// Login - уникальное поле и закрепляется только за одним пользователем
|
2022-07-28 15:00:43 +00:00
|
|
|
|
type YaDisk struct {
|
2022-09-15 13:53:55 +00:00
|
|
|
|
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:"-"`
|
2022-10-11 10:07:29 +00:00
|
|
|
|
Name string `bson:"name" json:"name"` // Пользовательское название хранилища
|
2022-09-15 13:53:55 +00:00
|
|
|
|
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"`
|
2022-07-28 15:00:43 +00:00
|
|
|
|
}
|
2022-08-10 13:53:34 +00:00
|
|
|
|
|
|
|
|
|
func (m *YaDisk) Token() *oauth2.Token {
|
|
|
|
|
token := &oauth2.Token{
|
|
|
|
|
AccessToken: m.AccessToken,
|
|
|
|
|
TokenType: m.TokenType,
|
|
|
|
|
RefreshToken: m.RefreshToken,
|
|
|
|
|
Expiry: m.ExpiresIn,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return token
|
|
|
|
|
}
|