Skip to content

Commit

Permalink
feat: add grpc method put,get,del,keys(#148)
Browse files Browse the repository at this point in the history
  • Loading branch information
sjcsjc123 committed Jul 4, 2023
1 parent d3a9ec5 commit ad392f8
Showing 1 changed file with 45 additions and 0 deletions.
45 changes: 45 additions & 0 deletions engine/grpc/db.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package grpc

import (
"context"
"github.com/ByteStorage/FlyDB/engine"
"github.com/ByteStorage/FlyDB/lib/proto"
)

type Service struct {
proto.FlyDBServiceServer
db *engine.DB
}

func (s *Service) Put(ctx context.Context, req *proto.PutRequest) (*proto.PutResponse, error) {
err := s.db.Put([]byte(req.Key), []byte(req.Value))
if err != nil {
return &proto.PutResponse{}, err
}
return &proto.PutResponse{Ok: true}, nil
}

func (s *Service) Get(ctx context.Context, req *proto.GetRequest) (*proto.GetResponse, error) {
value, err := s.db.Get([]byte(req.Key))
if err != nil {
return &proto.GetResponse{}, err
}
return &proto.GetResponse{Value: string(value)}, nil
}

func (s *Service) Del(ctx context.Context, req *proto.DelRequest) (*proto.DelResponse, error) {
err := s.db.Delete([]byte(req.Key))
if err != nil {
return &proto.DelResponse{}, err
}
return &proto.DelResponse{Ok: true}, nil
}

func (s *Service) Keys(ctx context.Context, req *proto.KeysRequest) (*proto.KeysResponse, error) {
list := s.db.GetListKeys()
keys := make([]string, len(list))
for i, bytes := range list {
keys[i] = string(bytes)
}
return &proto.KeysResponse{Keys: keys}, nil
}

0 comments on commit ad392f8

Please sign in to comment.