Skip to content

Commit bf18f36

Browse files
committed
If proxying of the query fails - return 500.
1 parent 3c0f9f4 commit bf18f36

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

proxy.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"crypto/tls"
5+
"fmt"
56
"time"
67

78
fiber "github.com/gofiber/fiber/v2"
@@ -47,6 +48,11 @@ func proxyTheRequest(c *fiber.Ctx) error {
4748
}
4849
cfg.Logger.Debug("Received proxied response", map[string]interface{}{"path": c.Path(), "response_body": string(c.Response().Body()), "response_code": c.Response().StatusCode()})
4950

51+
if c.Response().StatusCode() != 200 {
52+
cfg.Monitoring.Increment(libpack_monitoring.MetricsFailed, nil)
53+
return fmt.Errorf("Received non-200 response from the GraphQL server: %d", c.Response().StatusCode())
54+
}
55+
5056
c.Response().Header.Del(fiber.HeaderServer)
5157
return nil
5258
}

server.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,13 @@ func processGraphQLRequest(c *fiber.Ctx) error {
127127

128128
// Additional helper function to avoid code repetition
129129
func proxyAndCacheTheRequest(c *fiber.Ctx, queryCacheHash string, cache_time int) {
130-
proxyTheRequest(c)
130+
err := proxyTheRequest(c)
131+
if err != nil {
132+
cfg.Logger.Error("Can't proxy the request", map[string]interface{}{"error": err.Error()})
133+
cfg.Monitoring.Increment(libpack_monitoring.MetricsFailed, nil)
134+
c.Status(500).SendString("Can't proxy the request - try again later")
135+
return
136+
}
131137
cfg.Cache.CacheClient.Set(queryCacheHash, c.Response().Body(), time.Duration(cache_time)*time.Second)
132138
c.Send(c.Response().Body())
133139
}

0 commit comments

Comments
 (0)