| 307 | } |
| 308 | |
| 309 | func (m *imlTeamModule) Members(ctx context.Context, id string, keyword string) ([]*team_dto.Member, error) { |
| 310 | _, err := m.teamService.Get(ctx, id) |
| 311 | if err != nil { |
| 312 | return nil, err |
| 313 | } |
| 314 | users, err := m.userService.Search(ctx, keyword, -1) |
| 315 | if err != nil { |
| 316 | return nil, err |
| 317 | } |
| 318 | if len(users) == 0 { |
| 319 | return make([]*team_dto.Member, 0), nil |
| 320 | } |
| 321 | userIds := utils.SliceToSlice(users, func(s *user.User) string { |
| 322 | return s.UID |
| 323 | }) |
| 324 | members, err := m.teamMemberService.Members(ctx, []string{id}, userIds) |
| 325 | if err != nil { |
| 326 | return nil, err |
| 327 | } |
| 328 | roleMembers, err := m.roleMemberService.List(ctx, role.TeamTarget(id)) |
| 329 | if err != nil { |
| 330 | return nil, err |
| 331 | } |
| 332 | roleMemberMap := utils.SliceToMapArrayO(roleMembers, func(r *role.Member) (string, string) { |
| 333 | return r.User, r.Role |
| 334 | }) |
| 335 | uId := utils.UserId(ctx) |
| 336 | out := make([]*team_dto.Member, 0, len(members)) |
| 337 | for _, member := range members { |
| 338 | out = append(out, team_dto.ToMember(member, uId, roleMemberMap[member.UID]...)) |
| 339 | } |
| 340 | |
| 341 | return out, nil |
| 342 | } |
| 343 | |
| 344 | func (m *imlTeamModule) SimpleMembers(ctx context.Context, id string, keyword string) ([]*team_dto.SimpleMember, error) { |
| 345 | if id == "" { |