/
client_service.go
83 lines (65 loc) · 2.24 KB
/
client_service.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package grpc
import (
"context"
"github.com/KhaledHosseini/play-microservices/api-gateway/api-gateway-service/config"
gr "github.com/KhaledHosseini/play-microservices/api-gateway/api-gateway-service/pkg/grpc"
"github.com/KhaledHosseini/play-microservices/api-gateway/api-gateway-service/pkg/logger"
"github.com/KhaledHosseini/play-microservices/api-gateway/api-gateway-service/proto"
"google.golang.org/grpc"
)
type JobGRPCClient struct {
log logger.Logger
cfg *config.Config
gr.GRPC_Client
}
func NewJobGRPCCLient(log logger.Logger, cfg *config.Config) *JobGRPCClient {
return &JobGRPCClient{log: log, cfg: cfg}
}
func (jc *JobGRPCClient) getClient() (proto.JobsServiceClient, *grpc.ClientConn, error) {
conn, err := jc.Connect(jc.cfg.SchedulerServiceURL)
if err != nil {
return nil, nil, err
}
return proto.NewJobsServiceClient(conn), conn, nil
}
func (jc *JobGRPCClient) GRPC_CreateJob(c context.Context, createJobRequest *proto.CreateJobRequest) (*proto.CreateJobResponse, error) {
client, conn, err := jc.getClient()
if err != nil {
return nil, err
}
defer conn.Close()
return client.CreateJob(c, createJobRequest)
}
func (jc *JobGRPCClient) GRPC_GetJob(c context.Context, getJobRequest *proto.GetJobRequest) (*proto.Job, error) {
client, conn, err := jc.getClient()
if err != nil {
return nil, err
}
defer conn.Close()
return client.GetJob(c, getJobRequest)
}
func (jc *JobGRPCClient) GRPC_ListJobs(c context.Context, listJobsRequest *proto.ListJobsRequest) (*proto.ListJobsResponse, error) {
jc.log.Info("Connecting to grpc server.")
client, conn, err := jc.getClient()
if err != nil {
return nil, err
}
defer conn.Close()
return client.ListJobs(c, listJobsRequest)
}
func (jc *JobGRPCClient) GRPC_UpdateJob(c context.Context, updateJobRequest *proto.UpdateJobRequest) (*proto.UpdateJobResponse, error) {
client, conn, err := jc.getClient()
if err != nil {
return nil, err
}
defer conn.Close()
return client.UpdateJob(c, updateJobRequest)
}
func (jc *JobGRPCClient) GRPC_DeleteJob(c context.Context, deleteJobRequest *proto.DeleteJobRequest) (*proto.DeleteJobResponse, error) {
client, conn, err := jc.getClient()
if err != nil {
return nil, err
}
defer conn.Close()
return client.DeleteJob(c, deleteJobRequest)
}