@@ -32,8 +32,6 @@ import (
3232 "teleport-plugin-slack-access-request/internal/util"
3333 "teleport-plugin-slack-access-request/internal/util/container"
3434 "teleport-plugin-slack-access-request/internal/util/verifier"
35-
36- "golang.org/x/sync/errgroup"
3735)
3836
3937func (h * Handler ) HandleModalSubmission (payloadStr string , w http.ResponseWriter , r * http.Request ) {
@@ -150,55 +148,47 @@ func (h *Handler) performTransaction(ctx context.Context, payload *viewsubmissio
150148 return fmt .Errorf ("failed to create access review: %w" , err )
151149 }
152150
153- g , gCtx := errgroup .WithContext (ctx )
154151 // 7. outbox 저장하기
155- g .Go (func () error {
156- // 1. Reviewer Channel 용 이벤트 객체 만들기
157- ob , err := model .NewOutboxWithAccessReviewReviewer (updatedAR , createdAccessReview , requesterSlackUser , reviewerSlackUser , payload .MessageTs )
158- if err != nil {
159- return fmt .Errorf ("failed to create outbox with access review in reviewer channel : %w" , err )
160- }
152+ // Reviewer Channel 용 이벤트 객체 만들기
153+ reviewOB , err := model .NewOutboxWithAccessReviewReviewer (updatedAR , createdAccessReview , requesterSlackUser , reviewerSlackUser , payload .MessageTs )
154+ if err != nil {
155+ return fmt .Errorf ("failed to create outbox with access review in reviewer channel : %w" , err )
156+ }
161157
162- createdOB , err := txServices .Outbox .CreateOutbox (gCtx , ob )
163- if err != nil {
164- return fmt .Errorf ("failed to create reviewer outbox: %w" , err )
165- }
158+ createdReviewOB , err := txServices .Outbox .CreateOutbox (ctx , reviewOB )
159+ if err != nil {
160+ return fmt .Errorf ("failed to create reviewer outbox: %w" , err )
161+ }
166162
167- // Outbox Notification 설정
168- obn , err := model .NewOutboxNotification (createdOB )
169- if err != nil {
170- return fmt .Errorf ("failed to create outbox notification: %w" , err )
171- }
172- if err := txServices .Outbox .Notify (ctx , obn ); err != nil {
173- return fmt .Errorf ("failed to notify outbox: %w" , err )
174- }
175- return nil
176- })
177-
178- g .Go (func () error {
179- // 2. Requester Channel 용 이벤트 객체 만들기
180- ob , err := model .NewOutboxWithAccessReviewRequester (updatedAR , createdAccessReview , requesterSlackUser , reviewerSlackUser )
181- if err != nil {
182- return fmt .Errorf ("failed to create outbox with access review in requester channel : %w" , err )
183- }
163+ // Outbox Notification 설정
164+ reviewerOBN , err := model .NewOutboxNotification (createdReviewOB )
165+ if err != nil {
166+ return fmt .Errorf ("failed to create outbox notification: %w" , err )
167+ }
184168
185- createdOB , err := txServices .Outbox .CreateOutbox (gCtx , ob )
186- if err != nil {
187- return fmt .Errorf ("failed to create requester outbox: %w" , err )
188- }
169+ if err := txServices .Outbox .Notify (ctx , reviewerOBN ); err != nil {
170+ return fmt .Errorf ("failed to notify outbox: %w" , err )
171+ }
189172
190- // Outbox Notification 설정
191- obn , err := model .NewOutboxNotification (createdOB )
192- if err != nil {
193- return fmt .Errorf ("failed to create outbox notification: %w" , err )
194- }
195- if err := txServices .Outbox .Notify (ctx , obn ); err != nil {
196- return fmt .Errorf ("failed to notify outbox: %w" , err )
197- }
198- return nil
199- })
200- if err := g .Wait (); err != nil {
201- return fmt .Errorf ("failed to wait goroutines : %w" , err )
173+ // Requester Channel 용 이벤트 객체 만들기
174+ requesterOB , err := model .NewOutboxWithAccessReviewRequester (updatedAR , createdAccessReview , requesterSlackUser , reviewerSlackUser )
175+ if err != nil {
176+ return fmt .Errorf ("failed to create outbox with access review in requester channel : %w" , err )
177+ }
178+
179+ createdRequesterOB , err := txServices .Outbox .CreateOutbox (ctx , requesterOB )
180+ if err != nil {
181+ return fmt .Errorf ("failed to create requester outbox: %w" , err )
182+ }
183+
184+ // Outbox Notification 설정
185+ requesterOBN , err := model .NewOutboxNotification (createdRequesterOB )
186+ if err != nil {
187+ return fmt .Errorf ("failed to create outbox notification: %w" , err )
188+ }
189+
190+ if err := txServices .Outbox .Notify (ctx , requesterOBN ); err != nil {
191+ return fmt .Errorf ("failed to notify outbox: %w" , err )
202192 }
203193
204194 // 8. 트랜잭션 종료하기
0 commit comments