@@ -59,6 +59,7 @@ export interface WorkspaceContext {
59
59
eventSource ?: EventSource
60
60
workspace ?: TypesGen . Workspace
61
61
template ?: TypesGen . Template
62
+ templateVersion ?: TypesGen . TemplateVersion
62
63
build ?: TypesGen . WorkspaceBuild
63
64
getWorkspaceError ?: AxiosError
64
65
getTemplateWarning : Error | unknown
@@ -157,6 +158,9 @@ export const workspaceMachine = createMachine(
157
158
getTemplate : {
158
159
data : TypesGen . Template
159
160
}
161
+ getTemplateVersion : {
162
+ data : TypesGen . TemplateVersion
163
+ }
160
164
getTemplateParameters : {
161
165
data : TypesGen . TemplateVersionParameter [ ]
162
166
}
@@ -221,6 +225,28 @@ export const workspaceMachine = createMachine(
221
225
onDone : [
222
226
{
223
227
actions : [ "assignTemplate" , "clearGetTemplateWarning" ] ,
228
+ target : "gettingTemplateVersion" ,
229
+ } ,
230
+ ] ,
231
+ onError : [
232
+ {
233
+ actions : [
234
+ "assignGetTemplateWarning" ,
235
+ "displayGetTemplateWarning" ,
236
+ ] ,
237
+ target : "error" ,
238
+ } ,
239
+ ] ,
240
+ } ,
241
+ tags : "loading" ,
242
+ } ,
243
+ gettingTemplateVersion : {
244
+ invoke : {
245
+ src : "getTemplateVersion" ,
246
+ id : "getTemplateVersion" ,
247
+ onDone : [
248
+ {
249
+ actions : [ "assignTemplateVersion" , "clearGetTemplateWarning" ] ,
224
250
target : "gettingPermissions" ,
225
251
} ,
226
252
] ,
@@ -557,6 +583,9 @@ export const workspaceMachine = createMachine(
557
583
assignTemplate : assign ( {
558
584
template : ( _ , event ) => event . data ,
559
585
} ) ,
586
+ assignTemplateVersion : assign ( {
587
+ templateVersion : ( _ , event ) => event . data ,
588
+ } ) ,
560
589
assignPermissions : assign ( {
561
590
// Setting event.data as Permissions to be more stricted. So we know
562
591
// what permissions we asked for.
@@ -689,6 +718,13 @@ export const workspaceMachine = createMachine(
689
718
throw Error ( "Cannot get template without workspace" )
690
719
}
691
720
} ,
721
+ getTemplateVersion : async ( context ) => {
722
+ if ( context . template ) {
723
+ return await API . getTemplateVersion ( context . template . active_version_id )
724
+ } else {
725
+ throw Error ( "Cannot get template version without template" )
726
+ }
727
+ } ,
692
728
updateWorkspace :
693
729
( { workspace } , { buildParameters } ) =>
694
730
async ( send ) => {
0 commit comments