rpc.go 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. package rpc
  2. import (
  3. "go-common/app/service/main/relation/conf"
  4. "go-common/app/service/main/relation/model"
  5. "go-common/app/service/main/relation/service"
  6. "go-common/library/net/rpc"
  7. "go-common/library/net/rpc/context"
  8. )
  9. // RPC rpc
  10. type RPC struct {
  11. s *service.Service
  12. }
  13. // New new rpc server.
  14. func New(c *conf.Config, s *service.Service) (svr *rpc.Server) {
  15. r := &RPC{s: s}
  16. svr = rpc.NewServer(c.RPCServer)
  17. if err := svr.Register(r); err != nil {
  18. panic(err)
  19. }
  20. return
  21. }
  22. // Ping check connection success.
  23. func (r *RPC) Ping(c context.Context, arg *struct{}, res *struct{}) (err error) {
  24. return
  25. }
  26. // Relation relation
  27. func (r *RPC) Relation(c context.Context, a *model.ArgRelation, res *model.Following) (err error) {
  28. var f *model.Following
  29. if f, err = r.s.Relation(c, a.Mid, a.Fid); err == nil && f != nil {
  30. *res = *f
  31. }
  32. return
  33. }
  34. // Relations relations
  35. func (r *RPC) Relations(c context.Context, a *model.ArgRelations, res *map[int64]*model.Following) (err error) {
  36. *res, err = r.s.Relations(c, a.Mid, a.Fids)
  37. return
  38. }
  39. // Stat stat
  40. func (r *RPC) Stat(c context.Context, a *model.ArgMid, res *model.Stat) (err error) {
  41. var st *model.Stat
  42. if st, err = r.s.Stat(c, a.Mid); err == nil && st != nil {
  43. *res = *st
  44. }
  45. return
  46. }
  47. // Stats stats
  48. func (r *RPC) Stats(c context.Context, a *model.ArgMids, res *map[int64]*model.Stat) (err error) {
  49. *res, err = r.s.Stats(c, a.Mids)
  50. return
  51. }
  52. // Attentions attentions
  53. func (r *RPC) Attentions(c context.Context, a *model.ArgMid, res *[]*model.Following) (err error) {
  54. *res, err = r.s.Attentions(c, a.Mid)
  55. return
  56. }
  57. // Followings followings
  58. func (r *RPC) Followings(c context.Context, a *model.ArgMid, res *[]*model.Following) (err error) {
  59. *res, err = r.s.Followings(c, a.Mid)
  60. return
  61. }
  62. // AddFollowing add following
  63. func (r *RPC) AddFollowing(c context.Context, a *model.ArgFollowing, res *struct{}) (err error) {
  64. err = r.s.AddFollowing(c, a.Mid, a.Fid, a.Source, a.Infoc)
  65. return
  66. }
  67. // DelFollowing del following
  68. func (r *RPC) DelFollowing(c context.Context, a *model.ArgFollowing, res *struct{}) (err error) {
  69. err = r.s.DelFollowing(c, a.Mid, a.Fid, a.Source, a.Infoc)
  70. return
  71. }
  72. // Whispers whispers
  73. func (r *RPC) Whispers(c context.Context, a *model.ArgMid, res *[]*model.Following) (err error) {
  74. *res, err = r.s.Whispers(c, a.Mid)
  75. return
  76. }
  77. // AddWhisper add whisper
  78. func (r *RPC) AddWhisper(c context.Context, a *model.ArgFollowing, res *struct{}) (err error) {
  79. err = r.s.AddWhisper(c, a.Mid, a.Fid, a.Source, a.Infoc)
  80. return
  81. }
  82. // DelWhisper del whisper
  83. func (r *RPC) DelWhisper(c context.Context, a *model.ArgFollowing, res *struct{}) (err error) {
  84. err = r.s.DelWhisper(c, a.Mid, a.Fid, a.Source, a.Infoc)
  85. return
  86. }
  87. // Blacks blacks
  88. func (r *RPC) Blacks(c context.Context, a *model.ArgMid, res *[]*model.Following) (err error) {
  89. *res, err = r.s.Blacks(c, a.Mid)
  90. return
  91. }
  92. // AddBlack add black
  93. func (r *RPC) AddBlack(c context.Context, a *model.ArgFollowing, res *struct{}) (err error) {
  94. err = r.s.AddBlack(c, a.Mid, a.Fid, a.Source, a.Infoc)
  95. return
  96. }
  97. // DelBlack del black
  98. func (r *RPC) DelBlack(c context.Context, a *model.ArgFollowing, res *struct{}) (err error) {
  99. err = r.s.DelBlack(c, a.Mid, a.Fid, a.Source, a.Infoc)
  100. return
  101. }
  102. // Followers followers
  103. func (r *RPC) Followers(c context.Context, a *model.ArgMid, res *[]*model.Following) (err error) {
  104. *res, err = r.s.Followers(c, a.Mid)
  105. return
  106. }
  107. // DelFollower del Follower
  108. func (r *RPC) DelFollower(c context.Context, a *model.ArgFollowing, res *struct{}) (err error) {
  109. err = r.s.DelFollowing(c, a.Fid, a.Mid, a.Source, a.Infoc)
  110. return
  111. }
  112. // Tag tag
  113. func (r *RPC) Tag(c context.Context, a *model.ArgTagId, res *[]int64) (err error) {
  114. *res, err = r.s.Tag(c, a.Mid, a.TagId, a.RealIP)
  115. return
  116. }
  117. // Tags tags
  118. func (r *RPC) Tags(c context.Context, a *model.ArgMid, res *[]*model.TagCount) (err error) {
  119. *res, err = r.s.Tags(c, a.Mid, a.RealIP)
  120. return
  121. }
  122. // UserTag user tag
  123. func (r *RPC) UserTag(c context.Context, a *model.ArgRelation, res *map[int64]string) (err error) {
  124. *res, err = r.s.UserTag(c, a.Mid, a.Fid, a.RealIP)
  125. return
  126. }
  127. // CreateTag create tag
  128. func (r *RPC) CreateTag(c context.Context, a *model.ArgTag, res *int64) (err error) {
  129. *res, err = r.s.CreateTag(c, a.Mid, a.Tag, a.RealIP)
  130. return
  131. }
  132. // UpdateTag update tag
  133. func (r *RPC) UpdateTag(c context.Context, a *model.ArgTagUpdate, res *struct{}) (err error) {
  134. err = r.s.UpdateTag(c, a.Mid, a.TagId, a.New, a.RealIP)
  135. return
  136. }
  137. // DelTag del tag
  138. func (r *RPC) DelTag(c context.Context, a *model.ArgTagDel, res *struct{}) (err error) {
  139. err = r.s.DelTag(c, a.Mid, a.TagId, a.RealIP)
  140. return
  141. }
  142. // TagsAddUsers tags add users
  143. func (r *RPC) TagsAddUsers(c context.Context, a *model.ArgTagsMoveUsers, res *struct{}) (err error) {
  144. err = r.s.TagsAddUsers(c, a.Mid, a.AfterTagIds, a.Fids, a.RealIP)
  145. return
  146. }
  147. // TagsCopyUsers tags copy users
  148. func (r *RPC) TagsCopyUsers(c context.Context, a *model.ArgTagsMoveUsers, res *struct{}) (err error) {
  149. err = r.s.TagsMoveUsers(c, a.Mid, a.BeforeID, a.AfterTagIds, a.Fids, a.RealIP)
  150. return
  151. }
  152. // TagsMoveUsers tags move users
  153. func (r *RPC) TagsMoveUsers(c context.Context, a *model.ArgTagsMoveUsers, res *struct{}) (err error) {
  154. err = r.s.TagsMoveUsers(c, a.Mid, a.BeforeID, a.AfterTagIds, a.Fids, a.RealIP)
  155. return
  156. }
  157. // Prompt rpc prompt.
  158. func (r *RPC) Prompt(c context.Context, m *model.ArgPrompt, res *bool) (err error) {
  159. *res, err = r.s.Prompt(c, m)
  160. return
  161. }
  162. // ClosePrompt close prompt.
  163. func (r *RPC) ClosePrompt(c context.Context, m *model.ArgPrompt, res *struct{}) (err error) {
  164. return r.s.ClosePrompt(c, m)
  165. }
  166. // AddSpecial add user to special.
  167. func (r *RPC) AddSpecial(c context.Context, m *model.ArgFollowing, res *struct{}) (err error) {
  168. return r.s.AddSpecial(c, m.Mid, m.Fid)
  169. }
  170. // DelSpecial del user from sepcial.
  171. func (r *RPC) DelSpecial(c context.Context, m *model.ArgFollowing, res *struct{}) (err error) {
  172. return r.s.DelSpecial(c, m.Mid, m.Fid)
  173. }
  174. // Special get user specail list.
  175. func (r *RPC) Special(c context.Context, m *model.ArgMid, res *[]int64) (err error) {
  176. *res, err = r.s.Special(c, m.Mid)
  177. return
  178. }
  179. // FollowersUnread is
  180. func (r *RPC) FollowersUnread(c context.Context, arg *model.ArgMid, res *bool) (err error) {
  181. *res, err = r.s.Unread(c, arg.Mid)
  182. return
  183. }
  184. // FollowersUnreadCount is
  185. func (r *RPC) FollowersUnreadCount(c context.Context, arg *model.ArgMid, res *int64) (err error) {
  186. *res, err = r.s.UnreadCount(c, arg.Mid)
  187. return
  188. }
  189. // AchieveGet is
  190. func (r *RPC) AchieveGet(c context.Context, arg *model.ArgAchieveGet, res *model.AchieveGetReply) error {
  191. reply, err := r.s.AchieveGet(c, arg)
  192. if err != nil {
  193. return err
  194. }
  195. *res = *reply
  196. return nil
  197. }
  198. // Achieve is
  199. func (r *RPC) Achieve(c context.Context, arg *model.ArgAchieve, res *model.Achieve) error {
  200. reply, err := r.s.Achieve(c, arg)
  201. if err != nil {
  202. return err
  203. }
  204. *res = *reply
  205. return nil
  206. }
  207. // ResetFollowersUnread is
  208. func (r *RPC) ResetFollowersUnread(c context.Context, arg *model.ArgMid, res *struct{}) (err error) {
  209. err = r.s.ResetUnread(c, arg.Mid)
  210. return
  211. }
  212. // ResetFollowersUnreadCount is
  213. func (r *RPC) ResetFollowersUnreadCount(c context.Context, arg *model.ArgMid, res *struct{}) (err error) {
  214. err = r.s.ResetUnreadCount(c, arg.Mid)
  215. return
  216. }
  217. // DisableFollowerNotify set followerNotify as disabled.
  218. func (r *RPC) DisableFollowerNotify(c context.Context, arg *model.ArgMid, res *struct{}) (err error) {
  219. err = r.s.DisableFollowerNotify(c, arg)
  220. return
  221. }
  222. // EnableFollowerNotify set followerNotify as enabled.
  223. func (r *RPC) EnableFollowerNotify(c context.Context, arg *model.ArgMid, res *struct{}) (err error) {
  224. err = r.s.EnableFollowerNotify(c, arg)
  225. return
  226. }
  227. // FollowerNotifySetting get member follower notify setting
  228. func (r *RPC) FollowerNotifySetting(c context.Context, arg *model.ArgMid, res *model.FollowerNotifySetting) (err error) {
  229. rely, err := r.s.FollowerNotifySetting(c, arg)
  230. if err != nil {
  231. return
  232. }
  233. *res = *rely
  234. return
  235. }
  236. // SameFollowings is
  237. func (r *RPC) SameFollowings(c context.Context, arg *model.ArgSameFollowing, res *[]*model.Following) error {
  238. reply, err := r.s.SameFollowings(c, arg)
  239. if err != nil {
  240. return err
  241. }
  242. *res = reply
  243. return nil
  244. }