mirror of
https://github.com/openimsdk/open-im-server.git
synced 2026-05-19 08:19:01 +08:00
Error code standardization
This commit is contained in:
@@ -0,0 +1,292 @@
|
||||
package convert
|
||||
|
||||
import (
|
||||
"Open_IM/pkg/common/db/relation"
|
||||
sdk "Open_IM/pkg/proto/sdk_ws"
|
||||
utils "github.com/OpenIMSDK/open_utils"
|
||||
"time"
|
||||
)
|
||||
|
||||
func getUsersInfo(userIDs []string) ([]*sdk.UserInfo, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func getGroupOwnerInfo(groupID string) (*sdk.GroupMemberFullInfo, error) {
|
||||
return nil, nil
|
||||
}
|
||||
func getNumberOfGroupMember(groupID string) (int32, error) {
|
||||
return 0, nil
|
||||
}
|
||||
|
||||
type DBFriend struct {
|
||||
*relation.Friend
|
||||
}
|
||||
|
||||
func NewDBFriend(friend *relation.Friend) *DBFriend {
|
||||
return &DBFriend{Friend: friend}
|
||||
}
|
||||
|
||||
type PBFriend struct {
|
||||
*sdk.FriendInfo
|
||||
}
|
||||
|
||||
func NewPBFriend(friendInfo *sdk.FriendInfo) *PBFriend {
|
||||
return &PBFriend{FriendInfo: friendInfo}
|
||||
}
|
||||
|
||||
func (db *DBFriend) Convert() (*sdk.FriendInfo, error) {
|
||||
pbFriend := &sdk.FriendInfo{FriendUser: &sdk.UserInfo{}}
|
||||
utils.CopyStructFields(pbFriend, db)
|
||||
user, err := getUsersInfo([]string{db.FriendUserID})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
utils.CopyStructFields(pbFriend.FriendUser, user[0])
|
||||
pbFriend.CreateTime = db.CreateTime.Unix()
|
||||
|
||||
pbFriend.FriendUser.CreateTime = db.CreateTime.Unix()
|
||||
return pbFriend, nil
|
||||
}
|
||||
|
||||
func (pb *PBFriend) Convert() (*relation.Friend, error) {
|
||||
dbFriend := &relation.Friend{}
|
||||
utils.CopyStructFields(dbFriend, pb)
|
||||
dbFriend.FriendUserID = pb.FriendUser.UserID
|
||||
dbFriend.CreateTime = utils.UnixSecondToTime(pb.CreateTime)
|
||||
return dbFriend, nil
|
||||
}
|
||||
|
||||
type DBFriendRequest struct {
|
||||
*relation.FriendRequest
|
||||
}
|
||||
|
||||
func NewDBFriendRequest(friendRequest *relation.FriendRequest) *DBFriendRequest {
|
||||
return &DBFriendRequest{FriendRequest: friendRequest}
|
||||
}
|
||||
|
||||
type PBFriendRequest struct {
|
||||
*sdk.FriendRequest
|
||||
}
|
||||
|
||||
func NewPBFriendRequest(friendRequest *sdk.FriendRequest) *PBFriendRequest {
|
||||
return &PBFriendRequest{FriendRequest: friendRequest}
|
||||
}
|
||||
|
||||
func (pb *PBFriendRequest) Convert() (*relation.FriendRequest, error) {
|
||||
dbFriendRequest := &relation.FriendRequest{}
|
||||
utils.CopyStructFields(dbFriendRequest, pb)
|
||||
dbFriendRequest.CreateTime = utils.UnixSecondToTime(int64(pb.CreateTime))
|
||||
dbFriendRequest.HandleTime = utils.UnixSecondToTime(int64(pb.HandleTime))
|
||||
return dbFriendRequest, nil
|
||||
}
|
||||
func (db *DBFriendRequest) Convert() (*sdk.FriendRequest, error) {
|
||||
pbFriendRequest := &sdk.FriendRequest{}
|
||||
utils.CopyStructFields(pbFriendRequest, db)
|
||||
user, err := getUsersInfo([]string{db.FromUserID})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
pbFriendRequest.FromNickname = user[0].Nickname
|
||||
pbFriendRequest.FromFaceURL = user[0].FaceURL
|
||||
pbFriendRequest.FromGender = user[0].Gender
|
||||
user, err = getUsersInfo([]string{db.ToUserID})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
pbFriendRequest.ToNickname = user[0].Nickname
|
||||
pbFriendRequest.ToFaceURL = user[0].FaceURL
|
||||
pbFriendRequest.ToGender = user[0].Gender
|
||||
pbFriendRequest.CreateTime = db.CreateTime.Unix()
|
||||
pbFriendRequest.HandleTime = db.HandleTime.Unix()
|
||||
return pbFriendRequest, nil
|
||||
}
|
||||
|
||||
type DBBlack struct {
|
||||
*relation.Black
|
||||
}
|
||||
|
||||
func NewDBBlack(black *relation.Black) *DBBlack {
|
||||
return &DBBlack{Black: black}
|
||||
}
|
||||
|
||||
type PBBlack struct {
|
||||
*sdk.BlackInfo
|
||||
}
|
||||
|
||||
func NewPBBlack(blackInfo *sdk.BlackInfo) *PBBlack {
|
||||
return &PBBlack{BlackInfo: blackInfo}
|
||||
}
|
||||
|
||||
func (pb *PBBlack) Convert() (*relation.Black, error) {
|
||||
dbBlack := &relation.Black{}
|
||||
dbBlack.BlockUserID = pb.BlackUserInfo.UserID
|
||||
dbBlack.CreateTime = utils.UnixSecondToTime(int64(pb.CreateTime))
|
||||
return dbBlack, nil
|
||||
}
|
||||
func (db *DBBlack) Convert() (*sdk.BlackInfo, error) {
|
||||
pbBlack := &sdk.BlackInfo{}
|
||||
utils.CopyStructFields(pbBlack, db)
|
||||
pbBlack.CreateTime = db.CreateTime.Unix()
|
||||
user, err := getUsersInfo([]string{db.BlockUserID})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
utils.CopyStructFields(pbBlack.BlackUserInfo, user)
|
||||
return pbBlack, nil
|
||||
}
|
||||
|
||||
type DBGroup struct {
|
||||
*relation.Group
|
||||
}
|
||||
|
||||
func NewDBGroup(group *relation.Group) *DBGroup {
|
||||
return &DBGroup{Group: group}
|
||||
}
|
||||
|
||||
type PBGroup struct {
|
||||
*sdk.GroupInfo
|
||||
}
|
||||
|
||||
func NewPBGroup(groupInfo *sdk.GroupInfo) *PBGroup {
|
||||
return &PBGroup{GroupInfo: groupInfo}
|
||||
}
|
||||
|
||||
func (pb *PBGroup) Convert() *relation.Group {
|
||||
dst := &relation.Group{}
|
||||
_ = utils.CopyStructFields(dst, pb)
|
||||
return dst
|
||||
}
|
||||
func (db *DBGroup) Convert() (*sdk.GroupInfo, error) {
|
||||
dst := &sdk.GroupInfo{}
|
||||
utils.CopyStructFields(dst, db)
|
||||
user, err := getGroupOwnerInfo(db.GroupID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
dst.OwnerUserID = user.UserID
|
||||
|
||||
memberCount, err := getNumberOfGroupMember(db.GroupID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
dst.MemberCount = uint32(memberCount)
|
||||
dst.CreateTime = db.CreateTime.Unix()
|
||||
dst.NotificationUpdateTime = db.NotificationUpdateTime.Unix()
|
||||
if db.NotificationUpdateTime.Unix() < 0 {
|
||||
dst.NotificationUpdateTime = 0
|
||||
}
|
||||
return dst, nil
|
||||
}
|
||||
|
||||
type DBGroupMember struct {
|
||||
*relation.GroupMember
|
||||
}
|
||||
|
||||
func NewDBGroupMember(groupMember *relation.GroupMember) *DBGroupMember {
|
||||
return &DBGroupMember{GroupMember: groupMember}
|
||||
}
|
||||
|
||||
type PBGroupMember struct {
|
||||
*sdk.GroupMemberFullInfo
|
||||
}
|
||||
|
||||
func NewPBGroupMember(groupMemberFullInfo *sdk.GroupMemberFullInfo) *PBGroupMember {
|
||||
return &PBGroupMember{GroupMemberFullInfo: groupMemberFullInfo}
|
||||
}
|
||||
|
||||
func (pb *PBGroupMember) Convert() (*relation.GroupMember, error) {
|
||||
dst := &relation.GroupMember{}
|
||||
utils.CopyStructFields(dst, pb)
|
||||
dst.JoinTime = utils.UnixSecondToTime(int64(pb.JoinTime))
|
||||
dst.MuteEndTime = utils.UnixSecondToTime(int64(pb.MuteEndTime))
|
||||
return dst, nil
|
||||
}
|
||||
func (db *DBGroupMember) Convert() (*sdk.GroupMemberFullInfo, error) {
|
||||
dst := &sdk.GroupMemberFullInfo{}
|
||||
utils.CopyStructFields(dst, db)
|
||||
|
||||
user, err := getUsersInfo([]string{db.UserID})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
dst.AppMangerLevel = user[0].AppMangerLevel
|
||||
|
||||
dst.JoinTime = db.JoinTime.Unix()
|
||||
if db.JoinTime.Unix() < 0 {
|
||||
dst.JoinTime = 0
|
||||
}
|
||||
dst.MuteEndTime = db.MuteEndTime.Unix()
|
||||
if dst.MuteEndTime < time.Now().Unix() {
|
||||
dst.MuteEndTime = 0
|
||||
}
|
||||
return dst, nil
|
||||
}
|
||||
|
||||
type DBGroupRequest struct {
|
||||
*relation.GroupRequest
|
||||
}
|
||||
|
||||
func NewDBGroupRequest(groupRequest *relation.GroupRequest) *DBGroupRequest {
|
||||
return &DBGroupRequest{GroupRequest: groupRequest}
|
||||
}
|
||||
|
||||
type PBGroupRequest struct {
|
||||
*sdk.GroupRequest
|
||||
}
|
||||
|
||||
func NewPBGroupRequest(groupRequest *sdk.GroupRequest) *PBGroupRequest {
|
||||
return &PBGroupRequest{GroupRequest: groupRequest}
|
||||
}
|
||||
|
||||
func (pb *PBGroupRequest) Convert() (*relation.GroupRequest, error) {
|
||||
dst := &relation.GroupRequest{}
|
||||
utils.CopyStructFields(dst, pb)
|
||||
dst.ReqTime = utils.UnixSecondToTime(int64(pb.ReqTime))
|
||||
dst.HandledTime = utils.UnixSecondToTime(int64(pb.HandleTime))
|
||||
return dst, nil
|
||||
}
|
||||
func (db *DBGroupRequest) Convert() (*sdk.GroupRequest, error) {
|
||||
dst := &sdk.GroupRequest{}
|
||||
utils.CopyStructFields(dst, db)
|
||||
dst.ReqTime = db.ReqTime.Unix()
|
||||
dst.HandleTime = db.HandledTime.Unix()
|
||||
return dst, nil
|
||||
}
|
||||
|
||||
type DBUser struct {
|
||||
*relation.User
|
||||
}
|
||||
|
||||
func NewDBUser(user *relation.User) *DBUser {
|
||||
return &DBUser{User: user}
|
||||
}
|
||||
|
||||
type PBUser struct {
|
||||
*sdk.UserInfo
|
||||
}
|
||||
|
||||
func NewPBUser(userInfo *sdk.UserInfo) *PBUser {
|
||||
return &PBUser{UserInfo: userInfo}
|
||||
}
|
||||
|
||||
func (pb *PBUser) Convert() (*relation.User, error) {
|
||||
dst := &relation.User{}
|
||||
utils.CopyStructFields(dst, pb)
|
||||
dst.Birth = utils.UnixSecondToTime(pb.Birthday)
|
||||
dst.CreateTime = utils.UnixSecondToTime(int64(pb.CreateTime))
|
||||
return dst, nil
|
||||
}
|
||||
|
||||
func (db *DBUser) Convert() (*sdk.UserInfo, error) {
|
||||
dst := &sdk.UserInfo{}
|
||||
utils.CopyStructFields(dst, db)
|
||||
dst.CreateTime = db.CreateTime.Unix()
|
||||
dst.Birthday = db.Birth.Unix()
|
||||
return dst, nil
|
||||
}
|
||||
|
||||
func (db *DBUser) ConvertPublic() (*sdk.PublicUserInfo, error) {
|
||||
dst := &sdk.PublicUserInfo{}
|
||||
utils.CopyStructFields(dst, db)
|
||||
return dst, nil
|
||||
}
|
||||
@@ -181,7 +181,7 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri
|
||||
// process Friend application
|
||||
func (s *friendServer) RespondFriendApply(ctx context.Context, req *pbFriend.RespondFriendApplyReq) (*pbFriend.RespondFriendApplyResp, error) {
|
||||
resp := &pbFriend.RespondFriendApplyResp{}
|
||||
if err := token_verify.CheckAccessV3(ctx, req.ToUserID); err != nil {
|
||||
if err := check.Access(ctx, req.ToUserID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
friendRequest := relation.FriendRequest{FromUserID: req.FromUserID, ToUserID: req.ToUserID, HandleMsg: req.HandleMsg, HandleResult: req.HandleResult}
|
||||
@@ -206,7 +206,7 @@ func (s *friendServer) RespondFriendApply(ctx context.Context, req *pbFriend.Res
|
||||
|
||||
func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFriendReq) (*pbFriend.DeleteFriendResp, error) {
|
||||
resp := &pbFriend.DeleteFriendResp{}
|
||||
if err := token_verify.CheckAccessV3(ctx, req.OwnerUserID); err != nil {
|
||||
if err := check.Access(ctx, req.OwnerUserID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := s.FriendInterface.Delete(ctx, req.OwnerUserID, req.FriendUserID); err != nil {
|
||||
@@ -218,7 +218,7 @@ func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFri
|
||||
|
||||
func (s *friendServer) SetFriendRemark(ctx context.Context, req *pbFriend.SetFriendRemarkReq) (*pbFriend.SetFriendRemarkResp, error) {
|
||||
resp := &pbFriend.SetFriendRemarkResp{}
|
||||
if err := token_verify.CheckAccessV3(ctx, req.OwnerUserID); err != nil {
|
||||
if err := check.Access(ctx, req.OwnerUserID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := s.FriendInterface.UpdateRemark(ctx, req.OwnerUserID, req.FriendUserID, req.Remark); err != nil {
|
||||
@@ -228,25 +228,25 @@ func (s *friendServer) SetFriendRemark(ctx context.Context, req *pbFriend.SetFri
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
func (s *friendServer) RemoveBlacklist(ctx context.Context, req *pbFriend.RemoveBlackReq) (*pbFriend.RemoveBlackResp, error) {
|
||||
resp := &pbFriend.RemoveBlacklistResp{}
|
||||
func (s *friendServer) RemoveBlack(ctx context.Context, req *pbFriend.RemoveBlackReq) (*pbFriend.RemoveBlackResp, error) {
|
||||
resp := &pbFriend.RemoveBlackResp{}
|
||||
//Parse token, to find current user information
|
||||
if err := token_verify.CheckAccessV3(ctx, req.FromUserID); err != nil {
|
||||
if err := check.Access(ctx, req.OwnerUserID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := s.BlackInterface.Delete(ctx, []*relation.Black{{OwnerUserID: req.FromUserID, BlockUserID: req.ToUserID}}); err != nil {
|
||||
if err := s.BlackInterface.Delete(ctx, []*relation.Black{{OwnerUserID: req.OwnerUserID, BlockUserID: req.BlackUserID}}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
chat.BlackDeletedNotification(req)
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFriendListReq) (*pbFriend.GetFriendListResp, error) {
|
||||
resp := &pbFriend.GetFriendListResp{}
|
||||
if err := token_verify.CheckAccessV3(ctx, req.FromUserID); err != nil {
|
||||
func (s *friendServer) GetFriends(ctx context.Context, req *pbFriend.GetFriendsReq) (*pbFriend.GetFriendsResp, error) {
|
||||
resp := &pbFriend.GetFriendsResp{}
|
||||
if err := check.Access(ctx, req.UserID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
friends, err := s.FriendInterface.FindOwnerUserID(ctx, req.FromUserID)
|
||||
friends, err := s.FriendInterface.FindOwnerFriends(ctx, req.UserID, req.Pagination.PageNumber, req.Pagination.ShowNumber)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -254,7 +254,7 @@ func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFrien
|
||||
for _, f := range friends {
|
||||
userIDList = append(userIDList, f.FriendUserID)
|
||||
}
|
||||
users, err := GetUsersInfo(ctx, userIDList)
|
||||
users, err := check.GetUsersInfo(ctx, userIDList)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -263,9 +263,12 @@ func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFrien
|
||||
userMap[user.UserID] = users[i]
|
||||
}
|
||||
for _, friendUser := range friends {
|
||||
friendUserInfo := sdkws.FriendInfo{FriendUser: userMap[friendUser.FriendUserID]}
|
||||
utils.CopyStructFields(&friendUserInfo, friendUser)
|
||||
resp.FriendInfoList = append(resp.FriendInfoList, &friendUserInfo)
|
||||
|
||||
friendUserInfo, err := (utils.NewDBFriend(friendUser)).Convert()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
resp.FriendsInfo = append(resp.FriendsInfo, friendUserInfo)
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user