brunneis's picture
Update api/resources/root.py
c8c3ee1 verified
raw
history blame
1.09 kB
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import falcon
from engine import evaluate_solution
import logging
class RootResource:
def on_get(self, request, response):
response.text = 'HumanEval for Solidity Server'
def on_post(self, request, response):
payload = request.media
if 'task_id' not in payload or 'solution' not in payload:
response.status = falcon.HTTP_400
response.media = {
'error': 'task_id or solution are missing',
}
return
task_id = payload['task_id']
solution = payload['solution']
try:
passed, output = evaluate_solution(task_id, solution)
response.media = {
'passed': passed,
'output': output,
}
except FileNotFoundError:
response.status = falcon.HTTP_404
response.media = {'error': 'Task not found'}
except Exception:
response.status = falcon.HTTP_500
response.media = {'error': 'Internal server error'}