Skip to content
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"minio": "^7.0.3",
"pg": "^7.4.3",
"pg-hstore": "^2.3.2",
"raven": "^2.6.4",
"sequelize": "^4.22.6",
"uuid": "^3.3.2"
},
Expand Down Expand Up @@ -52,8 +53,8 @@
},
"apidoc": {
"title": "judge-blocks API",
"url": "http://judge.cb.lk/api",
"sampleUrl": "http://judge.cb.lk/api"
"url": "https://judge2.codingblocks.com/api",
"sampleUrl": "https://judge2.codingblocks.com/api"
},
"nyc": {
"extension": [
Expand Down
8 changes: 5 additions & 3 deletions src/routes/api/run.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ const handleTimeoutForSubmission = function (submissionId: number) {
case 'callback':
axios.post(job.callback, errorResponse)
}

delete runPool[submissionId]
}

const handleSuccessForSubmission = function (result: RunResponse) {
Expand Down Expand Up @@ -79,6 +81,8 @@ const handleSuccessForSubmission = function (result: RunResponse) {
})()
break;
}

delete runPool[result.id]
}

/**
Expand Down Expand Up @@ -109,7 +113,7 @@ const getRunPoolElement = function (body: RunRequestBody, res: Response): RunPoo
*
* @apiParam {String(Base64)} source source code to run (encoded in base64)
* @apiParam {Enum} lang Language of code to execute
* @apiParam {String(Base64)} input [Optional] stdin input for the program (encoded in base64)
* @apiParam {String(Base64)} stdin [Optional] stdin input for the program (encoded in base64)
* @apiParam {Enum} mode [Optional] mode for request. Default = `sync`, see: https://github.com/coding-blocks/judge-api/issues/16
* @apiParam {String)} callback [Optional] callback url for request. Required for `mode = callback`
* @apiParam {String)} enc [Optional] Encoding type for stdin and source. Can be `url`|`base64`. Default = 'base64'
Expand Down Expand Up @@ -172,7 +176,6 @@ route.post('/', (req, res, next) => {
setTimeout(() => {
if (runPool[submission.id]) {
handleTimeoutForSubmission(submission.id)
delete runPool[submission.id]
}
}, config.RUN.TIMEOUT)

Expand All @@ -198,7 +201,6 @@ route.post('/', (req, res, next) => {
successListener.on('success', (result: RunResponse) => {
if (runPool[result.id]) {
handleSuccessForSubmission(result)
delete runPool[result.id]
}
Submissions.update(<any>{
end_time: new Date()
Expand Down
8 changes: 7 additions & 1 deletion src/server.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
import express = require('express')
import dbg = require('debug')
import path = require ('path')
import Raven = require('raven')
import apiRoute from './routes/api'

const DSN = process.env.DSN
const debug = dbg('server:main')

const app = express()

Raven.config(DSN).install()
app.use(Raven.requestHandler())
app.use(Raven.errorHandler())

app.use(express.json())
app.use(express.urlencoded({extended: true}))
app.use('/docs', express.static(path.join(__dirname, '../docs')))
Expand Down
4 changes: 2 additions & 2 deletions src/utils/s3.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import config = require('../../config')

const client = new Minio.Client({
endPoint: config.S3.endpoint,
port: config.S3.port,
useSSL: config.S3.ssl,
port: +config.S3.port,
useSSL: !!config.S3.ssl,
accessKey: config.S3.accessKey,
secretKey: config.S3.secretKey,
})
Expand Down
5 changes: 3 additions & 2 deletions src/validators/ApiKeyValidators.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ import {ApiKeyAttrs, ApiKeys} from '../db/models'

export function checkValidApiKey (req: Request): Promise<boolean> {
return new Promise((resolve, reject) => {
let apiKey = req.header('Authorization').split('Bearer ')[1]
let apiKey = req.header('Authorization')
apiKey = apiKey && apiKey.split('Bearer ')[1]
if (!apiKey) {
reject(new Error('No API Key in request'))
}
Expand Down Expand Up @@ -42,4 +43,4 @@ export function checkValidApiKey (req: Request): Promise<boolean> {



}
}
1 change: 1 addition & 0 deletions test.env
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ DB_HOST=postgres
DB_NAME=judgeapi-dev
DB_USER=judgeapi
DB_PASS=judgeapi
DSN=randomDSNString
JUDGEAPI_HOST=localhost
JUDGEAPI_PORT=3737
DEBUG=test:*
Loading