Skip to content

Commit a05a532

Browse files
committed
feat(terraform): use intreface for terraform controller
1 parent cbd3d5b commit a05a532

File tree

4 files changed

+80
-55
lines changed

4 files changed

+80
-55
lines changed

api/projects/terraform_inventory.go

Lines changed: 0 additions & 44 deletions
This file was deleted.

api/router.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@ import (
1212
"time"
1313

1414
proApi "github.com/semaphoreui/semaphore/pro/api"
15+
proProjects "github.com/semaphoreui/semaphore/pro/api/projects"
1516
proFeatures "github.com/semaphoreui/semaphore/pro/pkg/features"
1617
"github.com/semaphoreui/semaphore/services/server"
17-
task2 "github.com/semaphoreui/semaphore/services/tasks"
18+
taskServices "github.com/semaphoreui/semaphore/services/tasks"
1819

1920
"github.com/semaphoreui/semaphore/api/debug"
2021
"github.com/semaphoreui/semaphore/pkg/tz"
@@ -83,7 +84,7 @@ func DelayMiddleware(delay time.Duration) func(http.Handler) http.Handler {
8384
func Route(
8485
store db.Store,
8586
terraformStore db.TerraformStore,
86-
taskPool *task2.TaskPool,
87+
taskPool *taskServices.TaskPool,
8788
projectService server.ProjectService,
8889
integrationService server.IntegrationService,
8990
encryptionService server.AccessKeyEncryptionService,
@@ -103,6 +104,7 @@ func Route(
103104
keyController := projects.NewKeyController(accessKeyService)
104105
projectsController := projects.NewProjectsController(accessKeyService)
105106
terraformController := proApi.NewTerraformController(encryptionService, terraformStore)
107+
terraformInventoryController := proProjects.NewTerraformInventoryController(terraformStore)
106108
userController := NewUserController(subscriptionService)
107109
usersController := NewUsersController(subscriptionService)
108110
subscriptionController := proApi.NewSubscriptionController()
@@ -387,16 +389,16 @@ func Route(
387389
projectInventoryManagement.HandleFunc("/{inventory_id}", projects.UpdateInventory).Methods("PUT")
388390
projectInventoryManagement.HandleFunc("/{inventory_id}", projects.RemoveInventory).Methods("DELETE")
389391

390-
projectInventoryManagement.HandleFunc("/{inventory_id}/terraform/aliases", projects.GetTerraformInventoryAliases).Methods("GET", "HEAD")
391-
projectInventoryManagement.HandleFunc("/{inventory_id}/terraform/aliases", projects.AddTerraformInventoryAlias).Methods("POST")
392-
projectInventoryManagement.HandleFunc("/{inventory_id}/terraform/aliases/{alias_id}", projects.GetTerraformInventoryAlias).Methods("GET")
393-
projectInventoryManagement.HandleFunc("/{inventory_id}/terraform/aliases/{alias_id}", projects.DeleteTerraformInventoryAlias).Methods("DELETE")
394-
projectInventoryManagement.HandleFunc("/{inventory_id}/terraform/aliases/{alias_id}", projects.SetTerraformInventoryAliasAccessKey).Methods("PUT")
392+
projectInventoryManagement.HandleFunc("/{inventory_id}/terraform/aliases", terraformInventoryController.GetTerraformInventoryAliases).Methods("GET", "HEAD")
393+
projectInventoryManagement.HandleFunc("/{inventory_id}/terraform/aliases", terraformInventoryController.AddTerraformInventoryAlias).Methods("POST")
394+
projectInventoryManagement.HandleFunc("/{inventory_id}/terraform/aliases/{alias_id}", terraformInventoryController.GetTerraformInventoryAlias).Methods("GET")
395+
projectInventoryManagement.HandleFunc("/{inventory_id}/terraform/aliases/{alias_id}", terraformInventoryController.DeleteTerraformInventoryAlias).Methods("DELETE")
396+
projectInventoryManagement.HandleFunc("/{inventory_id}/terraform/aliases/{alias_id}", terraformInventoryController.SetTerraformInventoryAliasAccessKey).Methods("PUT")
395397

396-
projectInventoryManagement.HandleFunc("/{inventory_id}/terraform/states", projects.GetTerraformInventoryStates).Methods("GET", "HEAD")
397-
projectInventoryManagement.HandleFunc("/{inventory_id}/terraform/states/latest", projects.GetTerraformInventoryLatestState).Methods("GET", "HEAD")
398-
projectInventoryManagement.HandleFunc("/{inventory_id}/terraform/states/{state_id}", projects.GetTerraformInventoryState).Methods("GET")
399-
projectInventoryManagement.HandleFunc("/{inventory_id}/terraform/states/{state_id}", projects.DeleteTerraformInventoryState).Methods("DELETE")
398+
projectInventoryManagement.HandleFunc("/{inventory_id}/terraform/states", terraformInventoryController.GetTerraformInventoryStates).Methods("GET", "HEAD")
399+
projectInventoryManagement.HandleFunc("/{inventory_id}/terraform/states/latest", terraformInventoryController.GetTerraformInventoryLatestState).Methods("GET", "HEAD")
400+
projectInventoryManagement.HandleFunc("/{inventory_id}/terraform/states/{state_id}", terraformInventoryController.GetTerraformInventoryState).Methods("GET")
401+
projectInventoryManagement.HandleFunc("/{inventory_id}/terraform/states/{state_id}", terraformInventoryController.DeleteTerraformInventoryState).Methods("DELETE")
400402

401403
projectEnvManagement := projectUserAPI.PathPrefix("/environment").Subrouter()
402404
projectEnvManagement.Use(environmentController.EnvironmentMiddleware)
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package projects
2+
3+
import (
4+
"github.com/semaphoreui/semaphore/api/helpers"
5+
"github.com/semaphoreui/semaphore/db"
6+
"github.com/semaphoreui/semaphore/pro_interfaces"
7+
"net/http"
8+
)
9+
10+
type terraformInventoryController struct{}
11+
12+
func NewTerraformInventoryController(terraformRepo db.TerraformStore) pro_interfaces.TerraformInventoryController {
13+
return &terraformInventoryController{}
14+
}
15+
16+
func (c *terraformInventoryController) GetTerraformInventoryAliases(w http.ResponseWriter, r *http.Request) {
17+
helpers.WriteJSON(w, http.StatusOK, []string{})
18+
}
19+
20+
func (c *terraformInventoryController) AddTerraformInventoryAlias(w http.ResponseWriter, r *http.Request) {
21+
w.WriteHeader(http.StatusNotFound)
22+
}
23+
24+
func (c *terraformInventoryController) GetTerraformInventoryAlias(w http.ResponseWriter, r *http.Request) {
25+
w.WriteHeader(http.StatusNotFound)
26+
}
27+
28+
func (c *terraformInventoryController) DeleteTerraformInventoryAlias(w http.ResponseWriter, r *http.Request) {
29+
w.WriteHeader(http.StatusNotFound)
30+
}
31+
32+
func (c *terraformInventoryController) SetTerraformInventoryAliasAccessKey(w http.ResponseWriter, r *http.Request) {
33+
w.WriteHeader(http.StatusNotFound)
34+
}
35+
36+
func (c *terraformInventoryController) GetTerraformInventoryStates(w http.ResponseWriter, r *http.Request) {
37+
helpers.WriteJSON(w, http.StatusOK, []string{})
38+
}
39+
40+
func (c *terraformInventoryController) GetTerraformInventoryLatestState(w http.ResponseWriter, r *http.Request) {
41+
helpers.WriteErrorStatus(w, "No state found", http.StatusNotFound)
42+
}
43+
44+
func (c *terraformInventoryController) GetTerraformInventoryState(w http.ResponseWriter, r *http.Request) {
45+
w.WriteHeader(http.StatusNotFound)
46+
}
47+
48+
func (c *terraformInventoryController) DeleteTerraformInventoryState(w http.ResponseWriter, r *http.Request) {
49+
w.WriteHeader(http.StatusNotFound)
50+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package pro_interfaces
2+
3+
import (
4+
"net/http"
5+
)
6+
7+
type TerraformInventoryController interface {
8+
GetTerraformInventoryAliases(w http.ResponseWriter, r *http.Request)
9+
AddTerraformInventoryAlias(w http.ResponseWriter, r *http.Request)
10+
GetTerraformInventoryAlias(w http.ResponseWriter, r *http.Request)
11+
DeleteTerraformInventoryAlias(w http.ResponseWriter, r *http.Request)
12+
SetTerraformInventoryAliasAccessKey(w http.ResponseWriter, r *http.Request)
13+
GetTerraformInventoryStates(w http.ResponseWriter, r *http.Request)
14+
GetTerraformInventoryLatestState(w http.ResponseWriter, r *http.Request)
15+
GetTerraformInventoryState(w http.ResponseWriter, r *http.Request)
16+
DeleteTerraformInventoryState(w http.ResponseWriter, r *http.Request)
17+
}

0 commit comments

Comments
 (0)