Added endpoints for modules to request outside resources

This commit is contained in:
Malachy Byrne 2023-05-06 22:09:39 +01:00
parent e86a515fcf
commit 70a566ee2d
Signed by: malmal200
GPG Key ID: EC21443030A655D9

View File

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