mirror of
https://github.com/garethgeorge/backrest.git
synced 2025-12-15 10:05:42 +00:00
30 lines
736 B
Go
30 lines
736 B
Go
package protoutil
|
|
|
|
import (
|
|
"errors"
|
|
"reflect"
|
|
|
|
v1 "github.com/garethgeorge/backrest/gen/go/v1"
|
|
"github.com/garethgeorge/backrest/internal/oplog"
|
|
)
|
|
|
|
func OpSelectorToQuery(sel *v1.OpSelector) (oplog.Query, error) {
|
|
if sel == nil {
|
|
return oplog.Query{}, errors.New("empty selector")
|
|
}
|
|
|
|
q := oplog.Query{
|
|
RepoGUID: sel.RepoGuid,
|
|
PlanID: sel.PlanId,
|
|
SnapshotID: sel.SnapshotId,
|
|
FlowID: sel.FlowId,
|
|
InstanceID: sel.InstanceId,
|
|
OriginalInstanceKeyid: sel.OriginalInstanceKeyid,
|
|
}
|
|
if len(sel.Ids) > 0 && !reflect.DeepEqual(q, oplog.Query{}) {
|
|
return oplog.Query{}, errors.New("cannot specify both query and ids")
|
|
}
|
|
q.OpIDs = sel.Ids
|
|
return q, nil
|
|
}
|