Skip to content

Commit 574e377

Browse files
authored
Merge pull request #44 from vaibhavsijaria/main
bearer token in header for judge0 api call
2 parents 692d907 + fd6c4e4 commit 574e377

File tree

4 files changed

+30
-7
lines changed

4 files changed

+30
-7
lines changed

.env.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ REDIS_PORT=6379
1313
REDIS_PASSWORD=huehuehue
1414

1515
JUDGE0_URI=https://google.com
16+
JUDGE0_TOKEN=sk_live_huehuehue
1617

1718
JWT_KEY=secret
1819
CALLBACK_URL=https://google.com/callback

internal/controllers/runcode.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package controllers
22

33
import (
4-
"bytes"
54
"encoding/json"
65
"fmt"
76
"net/http"
@@ -49,15 +48,14 @@ func RunCode(w http.ResponseWriter, r *http.Request) {
4948
return
5049
}
5150

52-
judge0URL, err := url.Parse(JUDGE0_URI + "/submissions/")
51+
judge0URL, err := url.Parse(JUDGE0_URI + "/submissions")
5352
if err != nil {
5453
httphelpers.WriteError(w, http.StatusInternalServerError, fmt.Sprintf("Error parsing Judge0 URL: %v", err))
5554
return
5655
}
5756
params := url.Values{}
5857
params.Add("base64_encoded", "true")
5958
params.Add("wait", "true")
60-
judge0URL.RawQuery = params.Encode()
6159

6260
var payload submission.Submission
6361
response := resp{
@@ -86,7 +84,7 @@ func RunCode(w http.ResponseWriter, r *http.Request) {
8684
return
8785
}
8886

89-
result, err := http.Post(judge0URL.String(), "application/json", bytes.NewBuffer(payloadJSON))
87+
result, err := submission.SendToJudge0(judge0URL, params, payloadJSON)
9088
if err != nil {
9189
logger.Errof("Error sending request to Judge0: %v", err)
9290
httphelpers.WriteError(w, http.StatusInternalServerError, fmt.Sprintf("Error sending request to Judge0: %v", err))

internal/controllers/submission.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package controllers
22

33
import (
4-
"bytes"
54
"encoding/json"
65
"fmt"
76
"net/http"
@@ -75,8 +74,8 @@ func SubmitCode(w http.ResponseWriter, r *http.Request) {
7574

7675
params := url.Values{}
7776
params.Add("base64_encoded", "true")
78-
judge0URL.RawQuery = params.Encode()
79-
resp, err := http.Post(judge0URL.String(), "application/json", bytes.NewBuffer(payload))
77+
78+
resp, err := submission.SendToJudge0(judge0URL, params, payload)
8079
if err != nil {
8180
logger.Errof("Error sending request to Judge0: %v", err)
8281
httphelpers.WriteError(w, http.StatusInternalServerError, fmt.Sprintf("Error sending request to Judge0: %v", err))

internal/helpers/submission/common.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
package submission
22

33
import (
4+
"bytes"
45
"encoding/base64"
56
"encoding/json"
67
"fmt"
8+
"net/http"
9+
"net/url"
10+
"os"
711
)
812

13+
var bearer = os.Getenv("JUDGE0_TOKEN")
14+
915
type Submission struct {
1016
LanguageID int `json:"language_id"`
1117
SourceCode string `json:"source_code"`
@@ -60,3 +66,22 @@ func RuntimeMut(language_id int) (int, error) {
6066
}
6167
return runtime_mut, nil
6268
}
69+
70+
func SendToJudge0(judge0Url *url.URL, params url.Values, payload []byte) (*http.Response, error) {
71+
judge0Url.RawQuery = params.Encode()
72+
judgereq, err := http.NewRequest("POST", judge0Url.String(), bytes.NewReader(payload))
73+
if err != nil {
74+
return nil, fmt.Errorf("error creating request to Judge0: %v", err)
75+
}
76+
77+
judgereq.Header.Add("Content-Type", "application/json")
78+
judgereq.Header.Add("Accept", "application/json")
79+
judgereq.Header.Add("Authorization", fmt.Sprintf("Bearer %v", bearer))
80+
81+
resp, err := http.DefaultClient.Do(judgereq)
82+
if err != nil {
83+
return nil, fmt.Errorf("error sending request to Judge0: %v", err)
84+
}
85+
86+
return resp, nil
87+
}

0 commit comments

Comments
 (0)