Skip to content

Commit cbf87fb

Browse files
authored
[fix] fix ExecTxn func (#58)
1 parent 8ae374a commit cbf87fb

File tree

1 file changed

+10
-15
lines changed

1 file changed

+10
-15
lines changed

db/mongo/mongo.go

+10-15
Original file line numberDiff line numberDiff line change
@@ -192,25 +192,20 @@ func (mc *Client) ExecTxn(ctx context.Context, cmd func(sessionContext mongo.Ses
192192
if err != nil {
193193
return err
194194
}
195-
if err = session.StartTransaction(); err != nil {
196-
return err
197-
}
198195
defer session.EndSession(ctx)
199-
if err = mongo.WithSession(ctx, session, func(sc mongo.SessionContext) error {
196+
err = mongo.WithSession(ctx, session, func(sc mongo.SessionContext) error {
197+
if err = session.StartTransaction(); err != nil {
198+
return err
199+
}
200200
if err = cmd(sc); err != nil {
201-
if err = session.AbortTransaction(sc); err != nil {
202-
return err
203-
}
204-
} else {
205-
if err = session.CommitTransaction(sc); err != nil {
206-
return err
201+
if abortErr := session.AbortTransaction(sc); abortErr != nil {
202+
return abortErr
207203
}
204+
return err
208205
}
209-
return nil
210-
}); err != nil {
211-
return err
212-
}
213-
return nil
206+
return session.CommitTransaction(sc)
207+
})
208+
return err
214209
}
215210

216211
func (mc *Client) GetDB() *mongo.Database {

0 commit comments

Comments
 (0)