@@ -6,40 +6,56 @@ import (
66 "github.com/benchttp/worker/stats"
77)
88
9- func (s StatsService ) Create (stats stats.Stats , statsId , userId , tag string ) error {
9+ // nolint:gocognit
10+ func (s StatsService ) Create (statsToStore stats.Stats , statsID , userId , tag string ) error {
1011 tx , err := s .db .Begin ()
1112 if err != nil {
1213 return err
1314 }
1415
1516 insertIntoStatsDescriptor , err := tx .Prepare (`INSERT INTO public.stats_descriptor(id, user_id, tag, finished_at) VALUES($1, $2, $3, '2022-03-03 17:36:38-02')` )
1617 if err != nil {
17- tx .Rollback ()
18+ err = tx .Rollback ()
19+ if err != nil {
20+ return ErrExecutingRollback
21+ }
1822 return ErrPreparingStmt
1923 }
2024 defer insertIntoStatsDescriptor .Close ()
2125
22- if _ , err = insertIntoStatsDescriptor .Exec (statsId , userId , tag ); err != nil {
23- tx .Rollback ()
26+ if _ , err = insertIntoStatsDescriptor .Exec (statsID , userId , tag ); err != nil {
27+ err = tx .Rollback ()
28+ if err != nil {
29+ return ErrExecutingRollback
30+ }
2431 return ErrExecutingPreparedStmt
2532 }
2633
2734 insertIntoTimestats , err := tx .Prepare (`INSERT INTO public.timestats(stats_descriptor_id, min, max, mean, median, standard_deviation, deciles) VALUES
2835 ($1, $2, $3, $4, $5, $6, $7)` )
2936 if err != nil {
30- tx .Rollback ()
37+ err = tx .Rollback ()
38+ if err != nil {
39+ return ErrExecutingRollback
40+ }
3141 return ErrPreparingStmt
3242 }
3343 defer insertIntoTimestats .Close ()
3444
35- if _ , err = insertIntoTimestats .Exec (statsId , stats .Min , stats .Max , stats .Mean , stats .Median , stats .StdDev , pq .Array (stats .Deciles )); err != nil {
36- tx .Rollback ()
45+ if _ , err = insertIntoTimestats .Exec (statsID , statsToStore .Min , statsToStore .Max , statsToStore .Mean , statsToStore .Median , statsToStore .StdDev , pq .Array (statsToStore .Deciles )); err != nil {
46+ err = tx .Rollback ()
47+ if err != nil {
48+ return ErrExecutingRollback
49+ }
3750 return ErrExecutingPreparedStmt
3851 }
3952
4053 err = tx .Commit ()
4154 if err != nil {
42- tx .Rollback ()
55+ err = tx .Rollback ()
56+ if err != nil {
57+ return ErrExecutingRollback
58+ }
4359 return err
4460 }
4561 return nil
0 commit comments