forked from TrueCloudLab/frostfs-sdk-go
[#62] client: move package from neofs-api-go
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
parent
6c55c0fd4b
commit
4855154b35
11 changed files with 2651 additions and 0 deletions
37
client/response.go
Normal file
37
client/response.go
Normal file
|
@ -0,0 +1,37 @@
|
|||
package client
|
||||
|
||||
import "github.com/nspcc-dev/neofs-api-go/v2/session"
|
||||
|
||||
// ResponseMetaInfo groups meta information about any NeoFS API response.
|
||||
type ResponseMetaInfo struct {
|
||||
key []byte
|
||||
}
|
||||
|
||||
type verificationHeaderGetter interface {
|
||||
GetVerificationHeader() *session.ResponseVerificationHeader
|
||||
}
|
||||
|
||||
// ResponderKey returns responder's public key in a binary format.
|
||||
//
|
||||
// Result must not be mutated.
|
||||
func (x ResponseMetaInfo) ResponderKey() []byte {
|
||||
return x.key
|
||||
}
|
||||
|
||||
// WithResponseInfoHandler allows to specify handler of response meta information for the all Client operations.
|
||||
// The handler is called right after the response is received. Client returns handler's error immediately.
|
||||
func WithResponseInfoHandler(f func(ResponseMetaInfo) error) Option {
|
||||
return func(opts *clientOptions) {
|
||||
opts.cbRespInfo = f
|
||||
}
|
||||
}
|
||||
|
||||
func (c *clientImpl) handleResponseInfoV2(_ *callOptions, resp verificationHeaderGetter) error {
|
||||
if c.opts.cbRespInfo == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return c.opts.cbRespInfo(ResponseMetaInfo{
|
||||
key: resp.GetVerificationHeader().GetBodySignature().GetKey(),
|
||||
})
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue