MCPcopy Index your code
hub / github.com/APIParkLab/APIPark / SimpleMembers

Method SimpleMembers

module/my-team/iml.go:344–396  ·  view source on GitHub ↗
(ctx context.Context, id string, keyword string)

Source from the content-addressed store, hash-verified

342}
343
344func (m *imlTeamModule) SimpleMembers(ctx context.Context, id string, keyword string) ([]*team_dto.SimpleMember, error) {
345 if id == "" {
346 return nil, fmt.Errorf("team id is empty")
347 }
348 teamInfo, err := m.teamService.Get(ctx, id)
349 if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
350 return nil, err
351 }
352 if teamInfo == nil {
353 return nil, fmt.Errorf("team %s not extist", id)
354 }
355 users, err := m.userService.Search(ctx, keyword, -1)
356 if err != nil {
357 return nil, err
358 }
359 userMap := make(map[string]*user.User)
360 userIds := make([]string, 0, len(users))
361 for _, u := range users {
362 userIds = append(userIds, u.UID)
363 userMap[u.UID] = u
364 }
365 teamMembers, err := m.teamMemberService.Members(ctx, []string{id}, userIds)
366 if err != nil {
367 return nil, err
368 }
369 departmentMembers, err := m.departmentMemberService.Members(ctx, nil, userIds)
370 if err != nil {
371 return nil, err
372 }
373 departmentMemberMap := make(map[string][]string)
374 for _, member := range departmentMembers {
375 if _, ok := departmentMemberMap[member.UID]; !ok {
376 departmentMemberMap[member.UID] = make([]string, 0)
377 }
378 departmentMemberMap[member.UID] = append(departmentMemberMap[member.UID], member.Come)
379 }
380
381 out := make([]*team_dto.SimpleMember, 0, len(teamMembers))
382 for _, member := range teamMembers {
383 u, ok := userMap[member.UID]
384 if !ok {
385 continue
386 }
387
388 out = append(out, &team_dto.SimpleMember{
389 User: auto.UUID(u.UID),
390 Mail: u.Email,
391 Department: auto.List(departmentMemberMap[member.UID]),
392 })
393 }
394
395 return out, nil
396}

Callers

nothing calls this directly

Calls 4

GetMethod · 0.65
SearchMethod · 0.65
MembersMethod · 0.65
ListMethod · 0.65

Tested by

no test coverage detected