GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.

grpcserver/grpc_server.go   A
last analyzed

Size/Duplication

Total Lines 85
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
cc 12
eloc 60
dl 0
loc 85
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
A grpcserver.grpcServe 0 11 3
A grpcserver.GrpcServeTLS 0 8 2
A grpcserver.*server.Delete 0 10 2
A grpcserver.*server.Put 0 12 2
A grpcserver.*server.Get 0 10 2
A grpcserver.GrpcServe 0 3 1
1
package grpcserver
2
3
import (
4
	"context"
5
	"errors"
6
	"github.com/arazmj/gerdu/cache"
7
	"github.com/arazmj/gerdu/proto"
8
	log "github.com/sirupsen/logrus"
9
	grpc "google.golang.org/grpc"
10
	"google.golang.org/grpc/credentials"
11
	"net"
12
)
13
14
type server struct {
15
	proto.UnimplementedGerduServer
16
	gerdu cache.UnImplementedCache
17
}
18
19
func grpcServe(s *grpc.Server, host string, gerdu cache.UnImplementedCache) {
20
	lis, err := net.Listen("tcp", host)
21
	log.Printf("Gerdu started listening gRPC at %s\n", host)
22
	if err != nil {
23
		log.Fatalf("failed to listen: %v", err)
24
	}
25
	proto.RegisterGerduServer(s, &server{
26
		gerdu: gerdu,
27
	})
28
	if err := s.Serve(lis); err != nil {
29
		log.Fatalf("failed to serve: %v", err)
30
	}
31
}
32
33
//GrpcServe start gRPC server in non-secure mode
34
func GrpcServe(host string, gerdu cache.UnImplementedCache) {
35
	s := grpc.NewServer()
36
	grpcServe(s, host, gerdu)
37
}
38
39
//GrpcServeTLS start gRPC server secure
40
func GrpcServeTLS(host string, tlsCert, tlsKey string, gerdu cache.UnImplementedCache) {
41
	credentials, err := credentials.NewServerTLSFromFile(tlsCert, tlsKey)
42
	if err != nil {
43
		log.Fatalf("Failed to setup TLS for gRPC service: %v", err)
44
	}
45
46
	s := grpc.NewServer(grpc.Creds(credentials))
47
	grpcServe(s, host, gerdu)
48
}
49
50
func (s *server) Put(ctx context.Context, request *proto.PutRequest) (*proto.PutResponse, error) {
51
	value := string(request.Value)
52
	key := request.Key
53
	created := s.gerdu.Put(key, value)
54
	if !created {
55
		log.Printf("gRPC UPDATE Key: %s Value: %s\n", key, value)
56
	} else {
57
		log.Printf("gRPC INSERT Key: %s Value: %s\n", key, value)
58
	}
59
	return &proto.PutResponse{
60
		Created: created,
61
	}, nil
62
}
63
64
func (s *server) Get(ctx context.Context, request *proto.GetRequest) (*proto.GetResponse, error) {
65
	value, ok := s.gerdu.Get(request.Key)
66
	if ok {
67
		log.Printf("gRPC RETREIVED Key: %s Value: %s\n", request.Key, value)
68
		return &proto.GetResponse{
69
			Value: []byte(value),
70
		}, nil
71
	}
72
	log.Printf("gRPC MISSED Key: %s \n", request.Key)
73
	return nil, errors.New("key not found")
74
}
75
76
func (s *server) Delete(ctx context.Context, request *proto.DeleteRequest) (*proto.DeleteResponse, error) {
77
	ok := s.gerdu.Delete(request.Key)
78
	if ok {
79
		log.Printf("gRPC DELETE Key: %s\n", request.Key)
80
		return &proto.DeleteResponse{
81
			Deleted: true,
82
		}, nil
83
	}
84
	log.Printf("gRPC MISSED Key: %s \n", request.Key)
85
	return nil, errors.New("key not found")
86
}
87