Showing 1 changed files with 18 additions and 35 deletions
+18 -35
templates/compare.html.ep
... ...
@@ -97,60 +97,43 @@
97 97
         else {
98 98
           my $now_tm = Time::Moment->now_utc;
99 99
           my $now_epoch = $now_tm->epoch;
100
-          my $user_row_id = app->dbi->model('user')->select(
101
-            'row_id',
102
-            where => {id => $base_user_id}
103
-          )->value;
104
-          
105
-          my $new_issue_row_id;
106 100
           my $session_user_row_id = $api->session_user_row_id;
101
+          my $new_issue_row_id;
107 102
           app->dbi->connector->txn(sub {
103
+            
108 104
             # New pull request
109
-            my $new_pull_request_params = {
105
+            my $new_pull_request = {
110 106
               base_project => $project_row_id,
111 107
               base_branch => $base_branch,
112 108
               target_project => $target_project->{row_id},
113 109
               target_branch => $target_branch,
110
+            };
111
+            
112
+            app->dbi->model('pull_request')->insert($new_pull_request);
113
+            my $new_pull_request_row_id = app->dbi->execute("select LAST_INSERT_ROWID()")->value;
114
+            
115
+            # New issue
116
+            my $new_issue = {
114 117
               title => $title,
115 118
               open => 1,
116 119
               open_time => $now_epoch,
117
-              open_user => $session_user_row_id
120
+              open_user => $session_user_row_id,
121
+              pull_request => $new_pull_request_row_id
118 122
             };
123
+            app->dbi->model('issue')->insert($new_issue);
124
+            $new_issue_row_id = app->dbi->execute("select LAST_INSERT_ROWID()")->value;
119 125
             
120
-            app->dbi->model('pull_request')->insert($new_pull_request_params);
121
-            
122
-            $new_issue_row_id = app->dbi->model('issue')->select(
123
-              'row_id',
124
-              where => {
125
-                '__pull_request.base_project' => $project_row_id,
126
-                '__pull_request.base_branch' => $base_branch,
127
-                '__pull_request.target_project' => $target_project->{row_id},
128
-                '__pull_request.target_branch' => $target_branch
129
-              }
130
-            )->value;
131
-            
132
-            # Get pull request message number
133
-            my $number = app->dbi->model('issue_message')->select(
134
-              'max(number)',
135
-              where => {issue => $new_issue_row_id},
136
-              append => 'group by number'
137
-            )->value;
138
-            
139
-            $number //= 0;
140
-            
141
-            my $new_number = $number + 1;
142
-            
143
-            # New pull request message
144
-            my $new_issue_message_params = {
126
+            # New issue message
127
+            my $new_issue_message = {
145 128
               issue => $new_issue_row_id,
146
-              number => $new_number,
129
+              number => 1,
147 130
               message => $message,
148 131
               create_time => $now_epoch,
149 132
               update_time => $now_epoch,
150 133
               user => $session_user_row_id
151 134
             };
152 135
             
153
-            app->dbi->model('issue_message')->insert($new_issue_message_params);
136
+            app->dbi->model('issue_message')->insert($new_issue_message);
154 137
           });
155 138
           
156 139
           $self->redirect_to("/$base_user_id/$base_project_id/pull/$new_issue_row_id");