@@ -596,6 +596,48 @@ func (api *API) templateVersionByName(rw http.ResponseWriter, r *http.Request) {
596
596
httpapi .Write (ctx , rw , http .StatusOK , convertTemplateVersion (templateVersion , convertProvisionerJob (job ), user ))
597
597
}
598
598
599
+ func (api * API ) templateVersionByOrganizationAndName (rw http.ResponseWriter , r * http.Request ) {
600
+ ctx := r .Context ()
601
+ organization := httpmw .OrganizationParam (r )
602
+ templateVersionName := chi .URLParam (r , "templateversionname" )
603
+ templateVersion , err := api .Database .GetTemplateVersionByOrganizationAndName (ctx , database.GetTemplateVersionByOrganizationAndNameParams {
604
+ OrganizationID : organization .ID ,
605
+ Name : templateVersionName ,
606
+ })
607
+ if errors .Is (err , sql .ErrNoRows ) {
608
+ httpapi .Write (ctx , rw , http .StatusNotFound , codersdk.Response {
609
+ Message : fmt .Sprintf ("No template version found by name %q." , templateVersionName ),
610
+ })
611
+ return
612
+ }
613
+ if err != nil {
614
+ httpapi .Write (ctx , rw , http .StatusInternalServerError , codersdk.Response {
615
+ Message : "Internal error fetching template version." ,
616
+ Detail : err .Error (),
617
+ })
618
+ return
619
+ }
620
+ job , err := api .Database .GetProvisionerJobByID (ctx , templateVersion .JobID )
621
+ if err != nil {
622
+ httpapi .Write (ctx , rw , http .StatusInternalServerError , codersdk.Response {
623
+ Message : "Internal error fetching provisioner job." ,
624
+ Detail : err .Error (),
625
+ })
626
+ return
627
+ }
628
+
629
+ user , err := api .Database .GetUserByID (ctx , templateVersion .CreatedBy )
630
+ if err != nil {
631
+ httpapi .Write (ctx , rw , http .StatusInternalServerError , codersdk.Response {
632
+ Message : "Internal error on fetching user." ,
633
+ Detail : err .Error (),
634
+ })
635
+ return
636
+ }
637
+
638
+ httpapi .Write (ctx , rw , http .StatusOK , convertTemplateVersion (templateVersion , convertProvisionerJob (job ), user ))
639
+ }
640
+
599
641
func (api * API ) patchActiveTemplateVersion (rw http.ResponseWriter , r * http.Request ) {
600
642
var (
601
643
ctx = r .Context ()
0 commit comments