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() }