@@ -29,6 +29,7 @@ type MessageHandler interface {
2929 OnUnHealth (msg string )
3030}
3131
32+ // CandyClient 客户端提供和服务器交互的接口
3233type CandyClient struct {
3334 host string
3435 stop bool
@@ -39,6 +40,7 @@ type CandyClient struct {
3940 health healthpb.HealthClient
4041}
4142
43+ // NewCandyClient - create an new CandyClient
4244func NewCandyClient (host string , handler MessageHandler ) * CandyClient {
4345 return & CandyClient {host : host , handler : handler }
4446}
@@ -70,7 +72,15 @@ func (c *CandyClient) Stop() error {
7072 return c .conn .Close ()
7173}
7274
75+ // Register 用户注册接口
7376func (c * CandyClient ) Register (user , passwd string ) (int64 , error ) {
77+ if err := CheckUserName (user ); err != nil {
78+ return - 1 , err
79+ }
80+ if err := CheckUserPassword (passwd ); err != nil {
81+ return - 1 , err
82+ }
83+
7484 req := & meta.GateRegisterRequest {User : user , Password : passwd }
7585 resp , err := c .api .Register (context .Background (), req )
7686 if err != nil {
@@ -80,7 +90,16 @@ func (c *CandyClient) Register(user, passwd string) (int64, error) {
8090 return resp .ID , resp .Header .Error ()
8191}
8292
93+ // Login 用户登陆
8394func (c * CandyClient ) Login (user , passwd string ) (int64 , error ) {
95+ if err := CheckUserName (user ); err != nil {
96+ return - 1 , err
97+ }
98+
99+ if err := CheckUserPassword (passwd ); err != nil {
100+ return - 1 , err
101+ }
102+
84103 req := & meta.GateUserLoginRequest {User : user , Password : passwd }
85104 resp , err := c .api .Login (context .Background (), req )
86105 if err != nil {
@@ -90,8 +109,9 @@ func (c *CandyClient) Login(user, passwd string) (int64, error) {
90109 return resp .ID , resp .Header .Error ()
91110}
92111
93- func (c * CandyClient ) Logout (user string ) error {
94- req := & meta.GateUserLogoutRequest {User : user }
112+ // Logout 注销登陆
113+ func (c * CandyClient ) Logout () error {
114+ req := & meta.GateUserLogoutRequest {}
95115 resp , err := c .api .Logout (context .Background (), req )
96116 if err != nil {
97117 return err
@@ -100,7 +120,16 @@ func (c *CandyClient) Logout(user string) error {
100120 return resp .Header .Error ()
101121}
102122
123+ // UpdateUserInfo 更新用户信息, 昵称/头像
103124func (c * CandyClient ) UpdateUserInfo (user , nickName string , avatar []byte ) (int64 , error ) {
125+ if err := CheckUserName (user ); err != nil {
126+ return - 1 , err
127+ }
128+
129+ if err := CheckNickName (nickName ); err != nil {
130+ return - 1 , err
131+ }
132+
104133 req := & meta.GateUpdateUserInfoRequest {User : user , NickName : nickName , Avatar : avatar }
105134 resp , err := c .api .UpdateUserInfo (context .Background (), req )
106135 if err != nil {
@@ -110,7 +139,16 @@ func (c *CandyClient) UpdateUserInfo(user, nickName string, avatar []byte) (int6
110139 return resp .ID , resp .Header .Error ()
111140}
112141
142+ // UpdateUserPassword 更新用户密码
113143func (c * CandyClient ) UpdateUserPassword (user , passwd string ) (int64 , error ) {
144+ if err := CheckUserName (user ); err != nil {
145+ return - 1 , err
146+ }
147+
148+ if err := CheckUserPassword (passwd ); err != nil {
149+ return - 1 , err
150+ }
151+
114152 req := & meta.GateUpdateUserPasswordRequest {User : user , Password : passwd }
115153 resp , err := c .api .UpdateUserPassword (context .Background (), req )
116154 if err != nil {
@@ -120,6 +158,8 @@ func (c *CandyClient) UpdateUserPassword(user, passwd string) (int64, error) {
120158 return resp .ID , resp .Header .Error ()
121159}
122160
161+ // GetUserInfoByName 根据用户名获取用户信息
162+ //TODO 需要把返回字符串修改成对应的类型
123163func (c * CandyClient ) GetUserInfoByName (user string ) (string , error ) {
124164 userInfo , err := c .getUserInfoByName (user )
125165 if err != nil {
@@ -135,6 +175,10 @@ func (c *CandyClient) GetUserInfoByName(user string) (string, error) {
135175}
136176
137177func (c * CandyClient ) getUserInfoByName (user string ) (* UserInfo , error ) {
178+ if err := CheckUserName (user ); err != nil {
179+ return nil , err
180+ }
181+
138182 req := & meta.GateGetUserInfoRequest {Type : 0 , UserName : user }
139183 resp , err := c .api .GetUserInfo (context .Background (), req )
140184 if err != nil {
@@ -145,6 +189,8 @@ func (c *CandyClient) getUserInfoByName(user string) (*UserInfo, error) {
145189 return userInfo , resp .Header .Error ()
146190}
147191
192+ // GetUserInfoByID 根据用户ID获取用户信息
193+ //TODO 需要把返回字符串修改成对应的类型
148194func (c * CandyClient ) GetUserInfoByID (userID int64 ) (string , error ) {
149195 userInfo , err := c .getUserInfoByID (userID )
150196 if err != nil {
@@ -170,6 +216,7 @@ func (c *CandyClient) getUserInfoByID(userID int64) (*UserInfo, error) {
170216 return userInfo , resp .Header .Error ()
171217}
172218
219+ // AddFriend 添加好友
173220func (c * CandyClient ) AddFriend (userID int64 , confirm bool , msg string ) (bool , error ) {
174221 req := & meta.GateAddFriendRequest {UserID : userID , Confirm : confirm , Msg : msg }
175222 resp , err := c .api .AddFriend (context .Background (), req )
@@ -180,6 +227,7 @@ func (c *CandyClient) AddFriend(userID int64, confirm bool, msg string) (bool, e
180227 return resp .Confirm , resp .Header .Error ()
181228}
182229
230+ // LoadFriendList 加载好友列表
183231func (c * CandyClient ) LoadFriendList () (string , error ) {
184232 req := & meta.GateLoadFriendListRequest {}
185233 resp , err := c .api .LoadFriendList (context .Background (), req )
@@ -196,15 +244,15 @@ func (c *CandyClient) LoadFriendList() (string, error) {
196244 return string (data ), nil
197245}
198246
199- // 支持模糊查询,返回对应用户的列表
247+ // FindUser 支持模糊查询,返回对应用户的列表
200248func (c * CandyClient ) FindUser (user string ) (string , error ) {
201249 req := & meta.GateFindUserRequest {User : user }
202250 resp , err := c .api .FindUser (context .Background (), req )
203251 if err != nil {
204252 return empty , err
205253 }
206254
207- users := make ( []* UserInfo , 0 )
255+ var users []* UserInfo
208256 for _ , matchUser := range resp .Users {
209257 userInfo , err := c .getUserInfoByName (matchUser )
210258 if err != nil {
@@ -221,6 +269,7 @@ func (c *CandyClient) FindUser(user string) (string, error) {
221269 return string (data ), resp .Header .Error ()
222270}
223271
272+ // FileExist 判断文件是否存在
224273func (c * CandyClient ) FileExist (key string ) (bool , error ) {
225274 req := & meta.GateCheckFileRequest {Names : []string {key }}
226275 resp , err := c .api .CheckFile (context .Background (), req )
@@ -239,6 +288,7 @@ func (c *CandyClient) FileExist(key string) (bool, error) {
239288 return false , nil
240289}
241290
291+ // FileUpload 文件上传
242292func (c * CandyClient ) FileUpload (data []byte ) (string , error ) {
243293 md5 := string (util .MD5 (data ))
244294 exist , err := c .FileExist (md5 )
@@ -259,6 +309,7 @@ func (c *CandyClient) FileUpload(data []byte) (string, error) {
259309 return md5 , resp .Header .Error ()
260310}
261311
312+ // FileDownload 文件下载
262313func (c * CandyClient ) FileDownload (key string ) ([]byte , error ) {
263314 req := & meta.GateDownloadFileRequest {Names : []string {key }}
264315 resp , err := c .api .DownloadFile (context .Background (), req )
@@ -296,6 +347,7 @@ func (c *CandyClient) loopRecvMessage() {
296347 }
297348}
298349
350+ // healthCheck 健康检查
299351func (c * CandyClient ) healthCheck () {
300352 for ! c .stop {
301353 time .Sleep (time .Second )
0 commit comments