/
user_model.go
48 lines (41 loc) · 1.11 KB
/
user_model.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
package transport
import (
"context"
"github.com/longjoy/micro-go-book/ch13-seckill/pb"
"github.com/longjoy/micro-go-book/ch13-seckill/user-service/endpoint"
)
func EncodeGRPCUserRequest(_ context.Context, r interface{}) (interface{}, error) {
req := r.(pb.UserRequest)
return &pb.UserRequest{
Username: string(req.Username),
Password: string(req.Password),
}, nil
}
func DecodeGRPCUserRequest(ctx context.Context, r interface{}) (interface{}, error) {
req := r.(*pb.UserRequest)
return endpoint.UserRequest{
Username: string(req.Username),
Password: string(req.Password),
}, nil
}
func EncodeGRPCUserResponse(_ context.Context, r interface{}) (interface{}, error) {
resp := r.(endpoint.UserResponse)
if resp.Error != nil {
return &pb.UserResponse{
Result: bool(resp.Result),
Err: "error",
}, nil
}
return &pb.UserResponse{
Result: bool(resp.Result),
UserId:resp.UserId,
Err: "",
}, nil
}
func DecodeGRPCUserResponse(_ context.Context, r interface{}) (interface{}, error) {
resp := r.(*pb.UserResponse)
return pb.UserResponse{
Result: bool(resp.Result),
Err: resp.Err,
}, nil
}