Skip to content

Commit 1b85880

Browse files
committed
refactor(runners): move runners to pro
1 parent fef89e3 commit 1b85880

File tree

4 files changed

+94
-72
lines changed

4 files changed

+94
-72
lines changed

api/projects/runners.go

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

api/router.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ func Route(
108108
userController := NewUserController(subscriptionService)
109109
usersController := NewUsersController(subscriptionService)
110110
subscriptionController := proApi.NewSubscriptionController()
111+
projectRunnerController := proProjects.NewProjectRunnerController()
111112

112113
r := mux.NewRouter()
113114
r.NotFoundHandler = http.HandlerFunc(servePublic)
@@ -314,17 +315,17 @@ func Route(
314315
projectUserAPI.Path("/integrations").HandlerFunc(projects.AddIntegration).Methods("POST")
315316
projectUserAPI.Path("/backup").HandlerFunc(projects.GetBackup).Methods("GET", "HEAD")
316317

317-
projectUserAPI.Path("/runners").HandlerFunc(projects.GetRunners).Methods("GET", "HEAD")
318-
projectUserAPI.Path("/runners").HandlerFunc(projects.AddRunner).Methods("POST")
319-
projectUserAPI.Path("/runner_tags").HandlerFunc(projects.GetRunnerTags).Methods("GET", "HEAD")
318+
projectUserAPI.Path("/runners").HandlerFunc(projectRunnerController.GetRunners).Methods("GET", "HEAD")
319+
projectUserAPI.Path("/runners").HandlerFunc(projectRunnerController.AddRunner).Methods("POST")
320+
projectUserAPI.Path("/runner_tags").HandlerFunc(projectRunnerController.GetRunnerTags).Methods("GET", "HEAD")
320321

321322
projectRunnersAPI := projectUserAPI.PathPrefix("/runners").Subrouter()
322-
projectRunnersAPI.Use(projects.RunnerMiddleware)
323-
projectRunnersAPI.Path("/{runner_id}").HandlerFunc(projects.GetRunner).Methods("GET", "HEAD")
324-
projectRunnersAPI.Path("/{runner_id}").HandlerFunc(projects.UpdateRunner).Methods("PUT", "POST")
325-
projectRunnersAPI.Path("/{runner_id}/active").HandlerFunc(projects.SetRunnerActive).Methods("POST")
326-
projectRunnersAPI.Path("/{runner_id}").HandlerFunc(projects.DeleteRunner).Methods("DELETE")
327-
projectRunnersAPI.Path("/{runner_id}/cache").HandlerFunc(projects.ClearRunnerCache).Methods("DELETE")
323+
projectRunnersAPI.Use(projectRunnerController.RunnerMiddleware)
324+
projectRunnersAPI.Path("/{runner_id}").HandlerFunc(projectRunnerController.GetRunner).Methods("GET", "HEAD")
325+
projectRunnersAPI.Path("/{runner_id}").HandlerFunc(projectRunnerController.UpdateRunner).Methods("PUT", "POST")
326+
projectRunnersAPI.Path("/{runner_id}/active").HandlerFunc(projectRunnerController.SetRunnerActive).Methods("POST")
327+
projectRunnersAPI.Path("/{runner_id}").HandlerFunc(projectRunnerController.DeleteRunner).Methods("DELETE")
328+
projectRunnersAPI.Path("/{runner_id}/cache").HandlerFunc(projectRunnerController.ClearRunnerCache).Methods("DELETE")
328329

329330
//
330331
// Updating and deleting project

pro/api/projects/runners.go

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
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+
// NewProjectRunnerController creates a new ProjectRunnerController instance.
11+
func NewProjectRunnerController() pro_interfaces.ProjectRunnerController {
12+
return &ProjectRunnerControllerImpl{}
13+
}
14+
15+
type ProjectRunnerControllerImpl struct {
16+
}
17+
18+
func (c *ProjectRunnerControllerImpl) GetRunners(w http.ResponseWriter, r *http.Request) {
19+
project := helpers.GetFromContext(r, "project").(db.Project)
20+
runners, err := helpers.Store(r).GetRunners(project.ID, false, nil)
21+
22+
if err != nil {
23+
panic(err)
24+
}
25+
26+
helpers.WriteJSON(w, http.StatusOK, runners)
27+
}
28+
29+
func (c *ProjectRunnerControllerImpl) AddRunner(w http.ResponseWriter, r *http.Request) {
30+
w.WriteHeader(http.StatusNotFound)
31+
}
32+
33+
func (c *ProjectRunnerControllerImpl) RunnerMiddleware(next http.Handler) http.Handler {
34+
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
35+
next.ServeHTTP(w, r)
36+
})
37+
}
38+
39+
func (c *ProjectRunnerControllerImpl) GetRunner(w http.ResponseWriter, r *http.Request) {
40+
w.WriteHeader(http.StatusNotFound)
41+
}
42+
43+
func (c *ProjectRunnerControllerImpl) UpdateRunner(w http.ResponseWriter, r *http.Request) {
44+
w.WriteHeader(http.StatusNotFound)
45+
}
46+
47+
func (c *ProjectRunnerControllerImpl) DeleteRunner(w http.ResponseWriter, r *http.Request) {
48+
w.WriteHeader(http.StatusNotFound)
49+
}
50+
51+
func (c *ProjectRunnerControllerImpl) SetRunnerActive(w http.ResponseWriter, r *http.Request) {
52+
w.WriteHeader(http.StatusNotFound)
53+
}
54+
55+
func (c *ProjectRunnerControllerImpl) ClearRunnerCache(w http.ResponseWriter, r *http.Request) {
56+
w.WriteHeader(http.StatusNotFound)
57+
}
58+
59+
func (c *ProjectRunnerControllerImpl) GetRunnerTags(w http.ResponseWriter, r *http.Request) {
60+
project := helpers.GetFromContext(r, "project").(db.Project)
61+
tags, err := helpers.Store(r).GetRunnerTags(project.ID)
62+
63+
if err != nil {
64+
w.WriteHeader(http.StatusInternalServerError)
65+
return
66+
}
67+
68+
helpers.WriteJSON(w, http.StatusOK, tags)
69+
}

pro_interfaces/project_runner_ctl.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package pro_interfaces
2+
3+
import "net/http"
4+
5+
type ProjectRunnerController interface {
6+
GetRunners(w http.ResponseWriter, r *http.Request)
7+
AddRunner(w http.ResponseWriter, r *http.Request)
8+
RunnerMiddleware(next http.Handler) http.Handler
9+
GetRunner(w http.ResponseWriter, r *http.Request)
10+
UpdateRunner(w http.ResponseWriter, r *http.Request)
11+
DeleteRunner(w http.ResponseWriter, r *http.Request)
12+
SetRunnerActive(w http.ResponseWriter, r *http.Request)
13+
ClearRunnerCache(w http.ResponseWriter, r *http.Request)
14+
GetRunnerTags(w http.ResponseWriter, r *http.Request)
15+
}

0 commit comments

Comments
 (0)