74 lines
1.2 KiB
Go
74 lines
1.2 KiB
Go
package util
|
|
|
|
import (
|
|
"github.com/nspcc-dev/neofs-api-go/pkg/token"
|
|
"github.com/nspcc-dev/neofs-api-go/v2/session"
|
|
)
|
|
|
|
type CommonPrm struct {
|
|
local bool
|
|
|
|
token *token.SessionToken
|
|
bearer *token.BearerToken
|
|
}
|
|
|
|
func (p *CommonPrm) WithLocalOnly(v bool) *CommonPrm {
|
|
if p != nil {
|
|
p.local = v
|
|
}
|
|
|
|
return p
|
|
}
|
|
|
|
func (p *CommonPrm) LocalOnly() bool {
|
|
if p != nil {
|
|
return p.local
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
func (p *CommonPrm) WithSessionToken(token *token.SessionToken) *CommonPrm {
|
|
if p != nil {
|
|
p.token = token
|
|
}
|
|
|
|
return p
|
|
}
|
|
|
|
func (p *CommonPrm) WithBearerToken(token *token.BearerToken) *CommonPrm {
|
|
if p != nil {
|
|
p.bearer = token
|
|
}
|
|
|
|
return p
|
|
}
|
|
|
|
func (p *CommonPrm) SessionToken() *token.SessionToken {
|
|
if p != nil {
|
|
return p.token
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (p *CommonPrm) BearerToken() *token.BearerToken {
|
|
if p != nil {
|
|
return p.bearer
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func CommonPrmFromV2(req interface {
|
|
GetMetaHeader() *session.RequestMetaHeader
|
|
}) *CommonPrm {
|
|
meta := req.GetMetaHeader()
|
|
|
|
return &CommonPrm{
|
|
local: meta.GetTTL() <= 1, // FIXME: use constant
|
|
token: token.NewSessionTokenFromV2(meta.GetSessionToken()),
|
|
bearer: token.NewBearerTokenFromV2(meta.GetBearerToken()),
|
|
}
|
|
}
|