| 90 | } |
| 91 | |
| 92 | func (m *imlTeamModule) Create(ctx context.Context, input *team_dto.CreateTeam) (*team_dto.Team, error) { |
| 93 | if input.Id == "" { |
| 94 | input.Id = uuid.New().String() |
| 95 | } |
| 96 | |
| 97 | err := m.transaction.Transaction(ctx, func(ctx context.Context) error { |
| 98 | if input.Master == "" { |
| 99 | input.Master = utils.UserId(ctx) |
| 100 | } |
| 101 | err := m.service.Create(ctx, &team.CreateTeam{ |
| 102 | Id: input.Id, |
| 103 | Name: input.Name, |
| 104 | Description: input.Description, |
| 105 | }) |
| 106 | if err != nil { |
| 107 | return err |
| 108 | } |
| 109 | |
| 110 | err = m.memberService.AddMemberTo(ctx, input.Id, input.Master) |
| 111 | if err != nil { |
| 112 | return err |
| 113 | } |
| 114 | superRole, err := m.roleService.GetSupperRole(ctx, role.GroupTeam) |
| 115 | if err != nil { |
| 116 | return err |
| 117 | } |
| 118 | |
| 119 | return m.roleMemberService.Add(ctx, &role.AddMember{ |
| 120 | Role: superRole.Id, |
| 121 | User: input.Master, |
| 122 | Target: role.TeamTarget(input.Id), |
| 123 | }) |
| 124 | }) |
| 125 | if err != nil { |
| 126 | return nil, err |
| 127 | } |
| 128 | return m.GetTeam(ctx, input.Id) |
| 129 | } |
| 130 | |
| 131 | func (m *imlTeamModule) Edit(ctx context.Context, id string, input *team_dto.EditTeam) (*team_dto.Team, error) { |
| 132 | err := m.transaction.Transaction(ctx, func(ctx context.Context) error { |