49 lines
971 B
Go
49 lines
971 B
Go
package models
|
|
|
|
import (
|
|
"database/sql"
|
|
"time"
|
|
)
|
|
|
|
type ShareToken struct {
|
|
TokenID int
|
|
Value string
|
|
OwnerID int
|
|
Expire *time.Time
|
|
Password *string
|
|
AlbumID *int
|
|
PhotoID *int
|
|
}
|
|
|
|
func (share *ShareToken) Token() string {
|
|
return share.Value
|
|
}
|
|
|
|
func (share *ShareToken) ID() int {
|
|
return share.TokenID
|
|
}
|
|
|
|
func NewShareTokenFromRow(row *sql.Row) (*ShareToken, error) {
|
|
token := ShareToken{}
|
|
|
|
if err := row.Scan(&token.TokenID, &token.Value, &token.OwnerID, &token.Expire, &token.Password, &token.AlbumID, &token.PhotoID); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &token, nil
|
|
}
|
|
|
|
func NewShareTokensFromRows(rows *sql.Rows) ([]*ShareToken, error) {
|
|
tokens := make([]*ShareToken, 0)
|
|
|
|
for rows.Next() {
|
|
var token ShareToken
|
|
if err := rows.Scan(&token.TokenID, &token.Value, &token.OwnerID, &token.Expire, &token.Password, &token.AlbumID, &token.PhotoID); err != nil {
|
|
return nil, err
|
|
}
|
|
tokens = append(tokens, &token)
|
|
}
|
|
|
|
return tokens, nil
|
|
}
|