300 lines
8.8 KiB
Go
300 lines
8.8 KiB
Go
package relation
|
|
|
|
import (
|
|
"context"
|
|
|
|
"go-common/app/service/main/relation/model"
|
|
"go-common/library/net/rpc"
|
|
)
|
|
|
|
const (
|
|
// relation
|
|
_relation = "RPC.Relation"
|
|
_relations = "RPC.Relations"
|
|
_stat = "RPC.Stat"
|
|
_stats = "RPC.Stats"
|
|
_followings = "RPC.Followings"
|
|
_sameFollowings = "RPC.SameFollowings"
|
|
_whispers = "RPC.Whispers"
|
|
_blacks = "RPC.Blacks"
|
|
_followers = "RPC.Followers"
|
|
_addFollowing = "RPC.AddFollowing"
|
|
_delFollowing = "RPC.DelFollowing"
|
|
_addWhisper = "RPC.AddWhisper"
|
|
_delWhisper = "RPC.DelWhisper"
|
|
_addBlack = "RPC.AddBlack"
|
|
_delBlack = "RPC.DelBlack"
|
|
_delFollower = "RPC.DelFollower"
|
|
|
|
// relation tag
|
|
_tag = "RPC.Tag"
|
|
_tags = "RPC.Tags"
|
|
_userTag = "RPC.UserTag"
|
|
_createTag = "RPC.CreateTag"
|
|
_updateTag = "RPC.UpdateTag"
|
|
_delTag = "RPC.DelTag"
|
|
_tagsAddUsers = "RPC.TagsAddUsers"
|
|
_tagsCopyUsers = "RPC.TagsCopyUsers"
|
|
_tagsMoveUsers = "RPC.TagsMoveUsers"
|
|
_AddSpecial = "RPC.AddSpecial"
|
|
_DelSpecial = "RPC.DelSpecial"
|
|
_Special = "RPC.Special"
|
|
|
|
// prompt
|
|
_prompt = "RPC.Prompt"
|
|
_closePrompt = "RPC.ClosePrompt"
|
|
|
|
// followers incr notify
|
|
_FollowersUnread = "RPC.FollowersUnread"
|
|
_FollowersUnreadCount = "RPC.FollowersUnreadCount"
|
|
_ResetFollowersUnread = "RPC.ResetFollowersUnread"
|
|
_ResetFollowersUnreadCount = "RPC.ResetFollowersUnreadCount"
|
|
_DisableFollowerNotify = "RPC.DisableFollowerNotify"
|
|
_EnableFollowerNotify = "RPC.EnableFollowerNotify"
|
|
_FollowerNotifySetting = "RPC.FollowerNotifySetting"
|
|
|
|
// achieve
|
|
_AchieveGet = "RPC.AchieveGet"
|
|
_Achieve = "RPC.Achieve"
|
|
)
|
|
|
|
var (
|
|
_noRes = &struct{}{}
|
|
)
|
|
|
|
const (
|
|
_appid = "account.service.relation"
|
|
)
|
|
|
|
// Service struct info.
|
|
type Service struct {
|
|
client *rpc.Client2
|
|
}
|
|
|
|
// New new service instance and return.
|
|
func New(c *rpc.ClientConfig) (s *Service) {
|
|
s = &Service{}
|
|
s.client = rpc.NewDiscoveryCli(_appid, c)
|
|
return
|
|
}
|
|
|
|
// Relation get relation info.
|
|
func (s *Service) Relation(c context.Context, arg *model.ArgRelation) (res *model.Following, err error) {
|
|
res = new(model.Following)
|
|
err = s.client.Call(c, _relation, arg, res)
|
|
return
|
|
}
|
|
|
|
// Relations get relation infos.
|
|
func (s *Service) Relations(c context.Context, arg *model.ArgRelations) (res map[int64]*model.Following, err error) {
|
|
err = s.client.Call(c, _relations, arg, &res)
|
|
return
|
|
}
|
|
|
|
// Followings get followings infos.
|
|
func (s *Service) Followings(c context.Context, arg *model.ArgMid) (res []*model.Following, err error) {
|
|
err = s.client.Call(c, _followings, arg, &res)
|
|
return
|
|
}
|
|
|
|
// Whispers get whispers infos.
|
|
func (s *Service) Whispers(c context.Context, arg *model.ArgMid) (res []*model.Following, err error) {
|
|
err = s.client.Call(c, _whispers, arg, &res)
|
|
return
|
|
}
|
|
|
|
// Blacks get black list.
|
|
func (s *Service) Blacks(c context.Context, arg *model.ArgMid) (res []*model.Following, err error) {
|
|
err = s.client.Call(c, _blacks, arg, &res)
|
|
return
|
|
}
|
|
|
|
// Followers get followers list.
|
|
func (s *Service) Followers(c context.Context, arg *model.ArgMid) (res []*model.Following, err error) {
|
|
err = s.client.Call(c, _followers, arg, &res)
|
|
return
|
|
}
|
|
|
|
// Stat get user relation stat.
|
|
func (s *Service) Stat(c context.Context, arg *model.ArgMid) (res *model.Stat, err error) {
|
|
res = new(model.Stat)
|
|
err = s.client.Call(c, _stat, arg, &res)
|
|
return
|
|
}
|
|
|
|
// Stats get users relation stat.
|
|
func (s *Service) Stats(c context.Context, arg *model.ArgMids) (res map[int64]*model.Stat, err error) {
|
|
err = s.client.Call(c, _stats, arg, &res)
|
|
return
|
|
}
|
|
|
|
// ModifyRelation modify user relation.
|
|
func (s *Service) ModifyRelation(c context.Context, arg *model.ArgFollowing) (err error) {
|
|
switch arg.Action {
|
|
case model.ActAddBlack:
|
|
err = s.client.Call(c, _addBlack, arg, _noRes)
|
|
case model.ActAddFollowing:
|
|
err = s.client.Call(c, _addFollowing, arg, _noRes)
|
|
case model.ActAddWhisper:
|
|
err = s.client.Call(c, _addWhisper, arg, _noRes)
|
|
case model.ActDelBalck:
|
|
err = s.client.Call(c, _delBlack, arg, _noRes)
|
|
case model.ActDelFollower:
|
|
err = s.client.Call(c, _delFollower, arg, _noRes)
|
|
case model.ActDelFollowing:
|
|
err = s.client.Call(c, _delFollowing, arg, _noRes)
|
|
case model.ActDelWhisper:
|
|
err = s.client.Call(c, _delWhisper, arg, _noRes)
|
|
default:
|
|
|
|
}
|
|
return
|
|
}
|
|
|
|
// Tag tag
|
|
func (s *Service) Tag(c context.Context, arg *model.ArgTagId) (res []int64, err error) {
|
|
err = s.client.Call(c, _tag, arg, &res)
|
|
return
|
|
}
|
|
|
|
// Tags tags
|
|
func (s *Service) Tags(c context.Context, arg *model.ArgMid) (res []*model.TagCount, err error) {
|
|
err = s.client.Call(c, _tags, arg, &res)
|
|
return
|
|
}
|
|
|
|
// UserTag user tag
|
|
func (s *Service) UserTag(c context.Context, arg *model.ArgRelation) (res map[int64]string, err error) {
|
|
err = s.client.Call(c, _userTag, arg, &res)
|
|
return
|
|
}
|
|
|
|
// CreateTag create tag
|
|
func (s *Service) CreateTag(c context.Context, arg *model.ArgTag) (res int64, err error) {
|
|
err = s.client.Call(c, _createTag, arg, &res)
|
|
return
|
|
}
|
|
|
|
// UpdateTag update tag
|
|
func (s *Service) UpdateTag(c context.Context, arg *model.ArgTagUpdate) (err error) {
|
|
err = s.client.Call(c, _updateTag, arg, _noRes)
|
|
return
|
|
}
|
|
|
|
// DelTag del tag
|
|
func (s *Service) DelTag(c context.Context, arg *model.ArgTagDel) (err error) {
|
|
err = s.client.Call(c, _delTag, arg, _noRes)
|
|
return
|
|
}
|
|
|
|
// TagsAddUsers tags add users
|
|
func (s *Service) TagsAddUsers(c context.Context, arg *model.ArgTagsMoveUsers) (err error) {
|
|
err = s.client.Call(c, _tagsAddUsers, arg, _noRes)
|
|
return
|
|
}
|
|
|
|
// TagsCopyUsers tags copy users
|
|
func (s *Service) TagsCopyUsers(c context.Context, arg *model.ArgTagsMoveUsers) (err error) {
|
|
err = s.client.Call(c, _tagsCopyUsers, arg, _noRes)
|
|
return
|
|
}
|
|
|
|
// TagsMoveUsers tags move users
|
|
func (s *Service) TagsMoveUsers(c context.Context, arg *model.ArgTagsMoveUsers) (err error) {
|
|
err = s.client.Call(c, _tagsMoveUsers, arg, _noRes)
|
|
return
|
|
}
|
|
|
|
// Prompt rpc rpompt client
|
|
func (s *Service) Prompt(c context.Context, arg *model.ArgPrompt) (b bool, err error) {
|
|
err = s.client.Call(c, _prompt, arg, &b)
|
|
return
|
|
}
|
|
|
|
// ClosePrompt close prompt client.
|
|
func (s *Service) ClosePrompt(c context.Context, arg *model.ArgPrompt) (err error) {
|
|
err = s.client.Call(c, _closePrompt, arg, _noRes)
|
|
return
|
|
}
|
|
|
|
// AddSpecial add specail.
|
|
func (s *Service) AddSpecial(c context.Context, arg *model.ArgFollowing) (err error) {
|
|
err = s.client.Call(c, _AddSpecial, arg, &_noRes)
|
|
return
|
|
}
|
|
|
|
// DelSpecial del special.
|
|
func (s *Service) DelSpecial(c context.Context, arg *model.ArgFollowing) (err error) {
|
|
err = s.client.Call(c, _DelSpecial, arg, &_noRes)
|
|
return
|
|
}
|
|
|
|
// Special get special.
|
|
func (s *Service) Special(c context.Context, arg *model.ArgMid) (res []int64, err error) {
|
|
err = s.client.Call(c, _Special, arg, &res)
|
|
return
|
|
}
|
|
|
|
// FollowersUnread check unread status, for the 'show red point' function.
|
|
func (s *Service) FollowersUnread(c context.Context, arg *model.ArgMid) (show bool, err error) {
|
|
err = s.client.Call(c, _FollowersUnread, arg, &show)
|
|
return
|
|
}
|
|
|
|
// FollowersUnreadCount unread count.
|
|
func (s *Service) FollowersUnreadCount(c context.Context, arg *model.ArgMid) (count int64, err error) {
|
|
err = s.client.Call(c, _FollowersUnreadCount, arg, &count)
|
|
return
|
|
}
|
|
|
|
// AchieveGet is
|
|
func (s *Service) AchieveGet(c context.Context, arg *model.ArgAchieveGet) (*model.AchieveGetReply, error) {
|
|
reply := &model.AchieveGetReply{}
|
|
err := s.client.Call(c, _AchieveGet, arg, &reply)
|
|
return reply, err
|
|
}
|
|
|
|
// Achieve is
|
|
func (s *Service) Achieve(c context.Context, arg *model.ArgAchieve) (*model.Achieve, error) {
|
|
reply := &model.Achieve{}
|
|
err := s.client.Call(c, _Achieve, arg, &reply)
|
|
return reply, err
|
|
}
|
|
|
|
// ResetFollowersUnread is
|
|
func (s *Service) ResetFollowersUnread(c context.Context, arg *model.ArgMid) (err error) {
|
|
err = s.client.Call(c, _ResetFollowersUnread, arg, &_noRes)
|
|
return
|
|
}
|
|
|
|
// ResetFollowersUnreadCount is
|
|
func (s *Service) ResetFollowersUnreadCount(c context.Context, arg *model.ArgMid) (err error) {
|
|
err = s.client.Call(c, _ResetFollowersUnreadCount, arg, &_noRes)
|
|
return
|
|
}
|
|
|
|
// DisableFollowerNotify set followerNotify as disabled.
|
|
func (s *Service) DisableFollowerNotify(c context.Context, arg *model.ArgMid) (err error) {
|
|
err = s.client.Call(c, _DisableFollowerNotify, arg, &_noRes)
|
|
return
|
|
}
|
|
|
|
// EnableFollowerNotify set followerNotify as disabled.
|
|
func (s *Service) EnableFollowerNotify(c context.Context, arg *model.ArgMid) (err error) {
|
|
err = s.client.Call(c, _EnableFollowerNotify, arg, &_noRes)
|
|
return
|
|
}
|
|
|
|
// FollowerNotifySetting get followerNotify setting.
|
|
func (s *Service) FollowerNotifySetting(c context.Context, arg *model.ArgMid) (followerNotify *model.FollowerNotifySetting, err error) {
|
|
followerNotify = &model.FollowerNotifySetting{}
|
|
err = s.client.Call(c, _FollowerNotifySetting, arg, followerNotify)
|
|
return
|
|
}
|
|
|
|
// SameFollowings is
|
|
func (s *Service) SameFollowings(c context.Context, arg *model.ArgSameFollowing) (res []*model.Following, err error) {
|
|
err = s.client.Call(c, _sameFollowings, arg, &res)
|
|
return
|
|
}
|