@@ -126,17 +126,32 @@ func (api *api) postWorkspaceHistoryByUser(rw http.ResponseWriter, r *http.Reque
126
126
// This must happen in a transaction to ensure history can be inserted, and
127
127
// the prior history can update it's "after" column to point at the new.
128
128
err = api .Database .InTx (func (db database.Store ) error {
129
- // Generate the ID before-hand so the provisioner job is aware of it!
130
- workspaceHistoryID := uuid .New ()
129
+ provisionerJobID := uuid .New ()
130
+ workspaceHistory , err = db .InsertWorkspaceHistory (r .Context (), database.InsertWorkspaceHistoryParams {
131
+ ID : uuid .New (),
132
+ CreatedAt : database .Now (),
133
+ UpdatedAt : database .Now (),
134
+ WorkspaceID : workspace .ID ,
135
+ ProjectVersionID : projectVersion .ID ,
136
+ BeforeID : priorHistoryID ,
137
+ Name : namesgenerator .GetRandomName (1 ),
138
+ Initiator : user .ID ,
139
+ Transition : createBuild .Transition ,
140
+ ProvisionJobID : provisionerJobID ,
141
+ })
142
+ if err != nil {
143
+ return xerrors .Errorf ("insert workspace history: %w" , err )
144
+ }
145
+
131
146
input , err := json .Marshal (workspaceProvisionJob {
132
- WorkspaceHistoryID : workspaceHistoryID ,
147
+ WorkspaceHistoryID : workspaceHistory . ID ,
133
148
})
134
149
if err != nil {
135
150
return xerrors .Errorf ("marshal provision job: %w" , err )
136
151
}
137
152
138
153
provisionerJob , err = db .InsertProvisionerJob (r .Context (), database.InsertProvisionerJobParams {
139
- ID : uuid . New () ,
154
+ ID : provisionerJobID ,
140
155
CreatedAt : database .Now (),
141
156
UpdatedAt : database .Now (),
142
157
InitiatorID : user .ID ,
@@ -149,22 +164,6 @@ func (api *api) postWorkspaceHistoryByUser(rw http.ResponseWriter, r *http.Reque
149
164
return xerrors .Errorf ("insert provisioner job: %w" , err )
150
165
}
151
166
152
- workspaceHistory , err = db .InsertWorkspaceHistory (r .Context (), database.InsertWorkspaceHistoryParams {
153
- ID : workspaceHistoryID ,
154
- CreatedAt : database .Now (),
155
- UpdatedAt : database .Now (),
156
- WorkspaceID : workspace .ID ,
157
- ProjectVersionID : projectVersion .ID ,
158
- BeforeID : priorHistoryID ,
159
- Name : namesgenerator .GetRandomName (1 ),
160
- Initiator : user .ID ,
161
- Transition : createBuild .Transition ,
162
- ProvisionJobID : provisionerJob .ID ,
163
- })
164
- if err != nil {
165
- return xerrors .Errorf ("insert workspace history: %w" , err )
166
- }
167
-
168
167
if priorHistoryID .Valid {
169
168
// Update the prior history entries "after" column.
170
169
err = db .UpdateWorkspaceHistoryByID (r .Context (), database.UpdateWorkspaceHistoryByIDParams {
0 commit comments