99 "net/http"
1010 "os"
1111
12+ sentryhttpclient "github.com/getsentry/sentry-go/httpclient"
13+
1214 "github.com/getsentry/gib-potato/internal/event"
1315 "github.com/getsentry/sentry-go"
1416)
@@ -17,10 +19,6 @@ func SendRequest(ctx context.Context, e event.PotalEvent) error {
1719 url := os .Getenv ("POTAL_URL" )
1820
1921 hub := sentry .GetHubFromContext (ctx )
20- txn := sentry .TransactionFromContext (ctx )
21-
22- span := txn .StartChild ("http.client" , sentry .WithDescription (fmt .Sprintf ("POST %s" , url )))
23- defer span .Finish ()
2422
2523 body , jsonErr := json .Marshal (e )
2624 if jsonErr != nil {
@@ -29,49 +27,32 @@ func SendRequest(ctx context.Context, e event.PotalEvent) error {
2927 return jsonErr
3028 }
3129
32- r , newReqErr := http .NewRequest ( "POST" , url , bytes .NewBuffer (body ))
30+ r , newReqErr := http .NewRequestWithContext ( ctx , "POST" , url , bytes .NewBuffer (body ))
3331 if newReqErr != nil {
3432 hub .CaptureException (newReqErr )
3533 log .Printf ("An Error Occured %v" , newReqErr )
3634 return newReqErr
3735 }
3836
3937 r .Header .Add ("Content-Type" , "application/json" )
40- r .Header .Add ("Sentry-Trace" , span .ToSentryTrace ())
41- r .Header .Add ("Baggage" , span .ToBaggage ())
4238 r .Header .Add ("Authorization" , os .Getenv ("POTAL_TOKEN" ))
4339
44- client := & http.Client {}
40+ client := & http.Client {
41+ Transport : sentryhttpclient .NewSentryRoundTripper (nil ),
42+ }
43+
4544 res , reqErr := client .Do (r )
4645 if reqErr != nil {
4746 hub .CaptureException (reqErr )
48- span .Status = sentry .SpanStatusInternalError
49-
5047 log .Printf ("An Error Occured %v" , reqErr )
5148 return reqErr
5249 }
5350 defer func () {
54- if err := res .Body .Close (); err != nil {
55- log .Printf ("Failed to close response body: %v" , err )
56- }
51+ _ = res .Body .Close ()
5752 }()
5853
59- span .Data = map [string ]interface {}{
60- "http.response.status_code" : res .StatusCode ,
61- }
62-
63- switch res .StatusCode {
64- case http .StatusOK :
65- span .Status = sentry .SpanStatusOK
54+ if res .StatusCode == http .StatusOK {
6655 return nil
67- case http .StatusUnauthorized :
68- fallthrough
69- case http .StatusForbidden :
70- span .Status = sentry .SpanStatusPermissionDenied
71- case http .StatusNotFound :
72- span .Status = sentry .SpanStatusNotFound
73- case http .StatusInternalServerError :
74- span .Status = sentry .SpanStatusInternalError
7556 }
7657
7758 msg := fmt .Sprintf ("GibPotato API: Got %s response" , res .Status )
0 commit comments