Skip to content

Commit 912a604

Browse files
committed
site: get template version
1 parent 254fc8a commit 912a604

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

site/src/xServices/workspace/workspaceXService.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ export interface WorkspaceContext {
5959
eventSource?: EventSource
6060
workspace?: TypesGen.Workspace
6161
template?: TypesGen.Template
62+
templateVersion?: TypesGen.TemplateVersion
6263
build?: TypesGen.WorkspaceBuild
6364
getWorkspaceError?: AxiosError
6465
getTemplateWarning: Error | unknown
@@ -157,6 +158,9 @@ export const workspaceMachine = createMachine(
157158
getTemplate: {
158159
data: TypesGen.Template
159160
}
161+
getTemplateVersion: {
162+
data: TypesGen.TemplateVersion
163+
}
160164
getTemplateParameters: {
161165
data: TypesGen.TemplateVersionParameter[]
162166
}
@@ -221,6 +225,28 @@ export const workspaceMachine = createMachine(
221225
onDone: [
222226
{
223227
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"],
224250
target: "gettingPermissions",
225251
},
226252
],
@@ -557,6 +583,9 @@ export const workspaceMachine = createMachine(
557583
assignTemplate: assign({
558584
template: (_, event) => event.data,
559585
}),
586+
assignTemplateVersion: assign({
587+
templateVersion: (_, event) => event.data,
588+
}),
560589
assignPermissions: assign({
561590
// Setting event.data as Permissions to be more stricted. So we know
562591
// what permissions we asked for.
@@ -689,6 +718,13 @@ export const workspaceMachine = createMachine(
689718
throw Error("Cannot get template without workspace")
690719
}
691720
},
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+
},
692728
updateWorkspace:
693729
({ workspace }, { buildParameters }) =>
694730
async (send) => {

0 commit comments

Comments
 (0)