first commit
This commit is contained in:
51
gateway/api/v1/internal/logic/group/create_group.go
Normal file
51
gateway/api/v1/internal/logic/group/create_group.go
Normal file
@@ -0,0 +1,51 @@
|
||||
package logic
|
||||
|
||||
import (
|
||||
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
|
||||
pb "gitlab.33.cn/chat/dtalk/service/group/api"
|
||||
)
|
||||
|
||||
func (l *GroupLogic) CreateGroup(req *types.CreateGroupReq) (*types.CreateGroupResp, error) {
|
||||
name := req.Name
|
||||
addr := l.getOpe()
|
||||
owner := &pb.GroupMemberInfo{
|
||||
Id: addr,
|
||||
Name: "",
|
||||
}
|
||||
members := make([]*pb.GroupMemberInfo, 0, len(req.MemberIds))
|
||||
for _, memberId := range req.MemberIds {
|
||||
members = append(members, &pb.GroupMemberInfo{
|
||||
Id: memberId,
|
||||
Name: "",
|
||||
})
|
||||
}
|
||||
|
||||
resp1, err := l.svcCtx.GroupClient.CreateGroup(l.ctx, &pb.CreateGroupReq{
|
||||
Name: name,
|
||||
GroupType: pb.GroupType_GROUP_TYPE_NORMAL,
|
||||
Owner: owner,
|
||||
Members: members,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
groupId := resp1.GroupId
|
||||
|
||||
resp2, err := l.svcCtx.GroupClient.GetPriGroupInfo(l.ctx, &pb.GetPriGroupInfoReq{
|
||||
GroupId: groupId,
|
||||
PersonId: addr,
|
||||
DisplayNum: int32(1 + len(members)),
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Group := NewTypesGroupInfo(resp2.Group)
|
||||
Members := NewTypesGroupMemberInfos(resp2.Group.Members)
|
||||
|
||||
return &types.CreateGroupResp{
|
||||
GroupInfo: Group,
|
||||
Members: Members,
|
||||
}, nil
|
||||
}
|
||||
Reference in New Issue
Block a user