pool: Control sub tree nodes order #212
1 changed files with 19 additions and 3 deletions
|
@ -26,6 +26,16 @@ const (
|
|||
defaultStreamTimeout = 10 * time.Second
|
||||
)
|
||||
|
||||
// SubTreeSort defines an order of nodes returned from GetSubTree RPC.
|
||||
type SubTreeSort int32
|
||||
|
||||
const (
|
||||
// NoneOrder does not specify order of nodes returned in GetSubTree RPC.
|
||||
NoneOrder SubTreeSort = iota
|
||||
// AscendingOrder specifies ascending alphabetical order of nodes based on FilePath attribute.
|
||||
AscendingOrder
|
||||
)
|
||||
|
||||
var (
|
||||
// ErrNodeNotFound is returned from Tree service in case of not found error.
|
||||
ErrNodeNotFound = errors.New("not found")
|
||||
|
@ -119,6 +129,7 @@ type GetSubTreeParams struct {
|
|||
RootID uint64
|
||||
Depth uint32
|
||||
BearerToken []byte
|
||||
Order SubTreeSort
|
||||
}
|
||||
|
||||
// AddNodeParams groups parameters of Pool.AddNode operation.
|
||||
|
@ -388,12 +399,17 @@ func (p *Pool) GetSubTree(ctx context.Context, prm GetSubTreeParams) (*SubTreeRe
|
|||
RootId: prm.RootID,
|
||||
Depth: prm.Depth,
|
||||
BearerToken: prm.BearerToken,
|
||||
OrderBy: &grpcService.GetSubTreeRequest_Body_Order{
|
||||
Direction: grpcService.GetSubTreeRequest_Body_Order_Asc,
|
||||
},
|
||||
OrderBy: new(grpcService.GetSubTreeRequest_Body_Order),
|
||||
},
|
||||
}
|
||||
|
||||
switch prm.Order {
|
||||
case AscendingOrder:
|
||||
request.Body.OrderBy.Direction = grpcService.GetSubTreeRequest_Body_Order_Asc
|
||||
default:
|
||||
request.Body.OrderBy.Direction = grpcService.GetSubTreeRequest_Body_Order_None
|
||||
}
|
||||
|
||||
if err := p.signRequest(request.Body, func(key, sign []byte) {
|
||||
request.Signature = &grpcService.Signature{
|
||||
Key: key,
|
||||
|
|
Loading…
Reference in a new issue