Change the store interface to remove variadic args (#1095)
This commit is contained in:
@@ -73,6 +73,7 @@ func (s *serviceStore) List() ([]*store.Record, error) {
|
||||
if err != nil {
|
||||
return records, err
|
||||
}
|
||||
|
||||
for _, record := range rsp.Records {
|
||||
records = append(records, &store.Record{
|
||||
Key: record.Key,
|
||||
@@ -86,15 +87,24 @@ func (s *serviceStore) List() ([]*store.Record, error) {
|
||||
}
|
||||
|
||||
// Read a record with key
|
||||
func (s *serviceStore) Read(keys ...string) ([]*store.Record, error) {
|
||||
func (s *serviceStore) Read(key string, opts ...store.ReadOption) ([]*store.Record, error) {
|
||||
var options store.ReadOptions
|
||||
for _, o := range opts {
|
||||
o(&options)
|
||||
}
|
||||
|
||||
rsp, err := s.Client.Read(s.Context(), &pb.ReadRequest{
|
||||
Keys: keys,
|
||||
Key: key,
|
||||
Options: &pb.ReadOptions{
|
||||
Prefix: options.Prefix,
|
||||
},
|
||||
}, client.WithAddress(s.Nodes...))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
records := make([]*store.Record, 0, len(rsp.Records))
|
||||
|
||||
for _, val := range rsp.Records {
|
||||
records = append(records, &store.Record{
|
||||
Key: val.Key,
|
||||
@@ -102,32 +112,27 @@ func (s *serviceStore) Read(keys ...string) ([]*store.Record, error) {
|
||||
Expiry: time.Duration(val.Expiry) * time.Second,
|
||||
})
|
||||
}
|
||||
|
||||
return records, nil
|
||||
}
|
||||
|
||||
// Write a record
|
||||
func (s *serviceStore) Write(recs ...*store.Record) error {
|
||||
records := make([]*pb.Record, 0, len(recs))
|
||||
|
||||
for _, record := range recs {
|
||||
records = append(records, &pb.Record{
|
||||
func (s *serviceStore) Write(record *store.Record) error {
|
||||
_, err := s.Client.Write(s.Context(), &pb.WriteRequest{
|
||||
Record: &pb.Record{
|
||||
Key: record.Key,
|
||||
Value: record.Value,
|
||||
Expiry: int64(record.Expiry.Seconds()),
|
||||
})
|
||||
}
|
||||
|
||||
_, err := s.Client.Write(s.Context(), &pb.WriteRequest{
|
||||
Records: records,
|
||||
},
|
||||
}, client.WithAddress(s.Nodes...))
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// Delete a record with key
|
||||
func (s *serviceStore) Delete(keys ...string) error {
|
||||
func (s *serviceStore) Delete(key string) error {
|
||||
_, err := s.Client.Delete(s.Context(), &pb.DeleteRequest{
|
||||
Keys: keys,
|
||||
Key: key,
|
||||
}, client.WithAddress(s.Nodes...))
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user