-
Notifications
You must be signed in to change notification settings - Fork 0
/
relation.go
64 lines (55 loc) · 2.16 KB
/
relation.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
package rpc
import (
"context"
"time"
"github.com/alph00/tiktok-tiny/kitex_gen/relation"
"github.com/alph00/tiktok-tiny/kitex_gen/relation/relationservice"
"github.com/alph00/tiktok-tiny/pkg/consul"
"github.com/alph00/tiktok-tiny/pkg/viper"
"github.com/cloudwego/kitex/client"
"github.com/cloudwego/kitex/pkg/retry"
"github.com/cloudwego/kitex/pkg/rpcinfo"
)
var (
relationClient relationservice.Client
)
func init() {
resolverConfig := viper.Read("consul")
consuladdr := resolverConfig.GetString("host") + ":" + resolverConfig.GetString("port")
resolver, err := consul.NewConsulResolver(consuladdr)
if err != nil {
panic(err)
}
relationServiceConfig := viper.Read("service")
serviceName := relationServiceConfig.GetString("relation.name")
c, err := relationservice.NewClient(
serviceName,
// client.WithMiddleware(middleware.CommonMiddleware),
// client.WithInstanceMW(middleware.ClientMiddleware),
client.WithMuxConnection(1),
client.WithRPCTimeout(30*time.Second),
client.WithConnectTimeout(30000*time.Millisecond),
client.WithFailureRetry(retry.NewFailurePolicy()),
client.WithResolver(resolver), // resolver
client.WithClientBasicInfo(&rpcinfo.EndpointBasicInfo{ServiceName: serviceName}),
)
if err != nil {
panic(err)
}
relationClient = c
}
func RelationAction(ctx context.Context, req *relation.RelationActionRequest) (resp *relation.RelationActionResponse, err error) {
return relationClient.RelationAction(ctx, req)
}
// FollowList implements the RelationServiceImpl interface.
func FollowList(ctx context.Context, req *relation.RelationFollowListRequest) (resp *relation.RelationFollowListResponse, err error) {
return relationClient.FollowList(ctx, req)
}
// FollowerList implements the RelationServiceImpl interface.
func FollowerList(ctx context.Context, req *relation.RelationFollowerListRequest) (resp *relation.RelationFollowerListResponse, err error) {
return relationClient.FollowerList(ctx, req)
}
// FriendList implements the RelationServiceImpl interface.
func FriendList(ctx context.Context, req *relation.RelationFriendListRequest) (resp *relation.RelationFriendListResponse, err error) {
return relationClient.FriendList(ctx, req)
}