From 70a566ee2d0280ddbe815057fd689713de07f0fd Mon Sep 17 00:00:00 2001 From: Malachy Byrne Date: Sat, 6 May 2023 22:09:39 +0100 Subject: [PATCH] Added endpoints for modules to request outside resources --- src/backend/cmd/main.go | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/backend/cmd/main.go b/src/backend/cmd/main.go index 7b96e50..67a5e50 100644 --- a/src/backend/cmd/main.go +++ b/src/backend/cmd/main.go @@ -131,6 +131,45 @@ func GetModules(db *sql.DB) echo.HandlerFunc { } } +func getFromModule(c echo.Context) error { + url := c.Param("url") + + requestURL := fmt.Sprintf("http://%s", url) + fmt.Println(requestURL) + resp, err := http.Get(requestURL) + if err != nil { + panic(err) + } + + defer resp.Body.Close() + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + panic(err) + } + + return c.JSONBlob(http.StatusOK, body) +} + +func postFromModule(c echo.Context) error { + url := c.Param("url") + + requestURL := fmt.Sprintf("http://%s", url) + resp, err := http.Post(requestURL, "application/json", c.Request().Body) + if err != nil { + log.Fatalf("Request to container failed: %v", err) + } + + defer resp.Body.Close() + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + log.Fatalf("Failed to print Body: %v", err) + } + + return c.JSONBlob(http.StatusOK, body) +} + func RegisterUser(db *sql.DB) echo.HandlerFunc { return func(c echo.Context) error { user := new(User) @@ -255,6 +294,8 @@ func main() { e.POST("/user/login", LoginUser(db, jwtSecret)) e.POST("/user/logout", LogoutUser()) e.POST("/create_module", CreateModule) + e.GET("/get/:url", getFromModule) + e.POST("/post/:url", postFromModule) e.Logger.Fatal(e.Start(":10000")) defer db.Close() }