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()), } }