1
Fork 0
photoview/api/graphql/models/share_token.go

53 lines
1.1 KiB
Go

package models
import (
"database/sql"
"time"
"github.com/pkg/errors"
)
type ShareToken struct {
TokenID int
Value string
OwnerID int
Expire *time.Time
Password *string
AlbumID *int
MediaID *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.MediaID); err != nil {
return nil, errors.Wrap(err, "failed to scan share token from database")
}
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.MediaID); err != nil {
return nil, errors.Wrap(err, "failed to scan share tokens from database")
}
tokens = append(tokens, &token)
}
rows.Close()
return tokens, nil
}