@@ -27,8 +27,8 @@ func proxy() gin.HandlerFunc {
2727 defer c .Abort ()
2828
2929 env := query .Environment
30- environment , err := env .Where (env .ID .Eq (id )).First ()
3130
31+ environment , err := env .Where (env .ID .Eq (id )).First ()
3232 if err != nil {
3333 logger .Error (err )
3434 c .AbortWithStatusJSON (http .StatusServiceUnavailable , gin.H {
@@ -37,8 +37,7 @@ func proxy() gin.HandlerFunc {
3737 return
3838 }
3939
40- u , err := url .JoinPath (environment .URL , c .Request .RequestURI )
41-
40+ baseUrl , err := url .Parse (environment .URL )
4241 if err != nil {
4342 logger .Error (err )
4443 c .AbortWithStatusJSON (http .StatusInternalServerError , gin.H {
@@ -47,8 +46,7 @@ func proxy() gin.HandlerFunc {
4746 return
4847 }
4948
50- decodedUri , err := url .QueryUnescape (u )
51-
49+ proxyUrl , err := baseUrl .Parse (c .Request .RequestURI )
5250 if err != nil {
5351 logger .Error (err )
5452 c .AbortWithStatusJSON (http .StatusInternalServerError , gin.H {
@@ -57,18 +55,25 @@ func proxy() gin.HandlerFunc {
5755 return
5856 }
5957
60- logger .Debug ("Proxy request" , decodedUri )
58+ logger .Debug ("Proxy request" , proxyUrl . String () )
6159 client := http.Client {
6260 Transport : & http.Transport {
6361 TLSClientConfig : & tls.Config {InsecureSkipVerify : true },
6462 },
6563 }
6664
67- req , err := http .NewRequest (c .Request .Method , decodedUri , c .Request .Body )
65+ req , err := http .NewRequest (c .Request .Method , proxyUrl .String (), c .Request .Body )
66+ if err != nil {
67+ logger .Error (err )
68+ c .AbortWithStatusJSON (http .StatusInternalServerError , gin.H {
69+ "message" : err .Error (),
70+ })
71+ return
72+ }
73+
6874 req .Header .Set ("X-Node-Secret" , environment .Token )
6975
7076 resp , err := client .Do (req )
71-
7277 if err != nil {
7378 logger .Error (err )
7479 c .AbortWithStatusJSON (http .StatusInternalServerError , gin.H {
0 commit comments