refactor: changed to swarmBountyId Based
This commit is contained in:
@ -10,7 +10,7 @@ class Submission(SQLModel, table=True):
|
|||||||
"""Task submission model."""
|
"""Task submission model."""
|
||||||
|
|
||||||
task_id: str
|
task_id: str
|
||||||
round_number: int = Field(primary_key=True)
|
swarmBountyId: int = Field(primary_key=True)
|
||||||
status: str = "pending"
|
status: str = "pending"
|
||||||
pr_url: Optional[str] = None
|
pr_url: Optional[str] = None
|
||||||
username: Optional[str] = None
|
username: Optional[str] = None
|
||||||
|
@ -9,14 +9,14 @@ logger = logging.getLogger(__name__)
|
|||||||
bp = Blueprint("submission", __name__)
|
bp = Blueprint("submission", __name__)
|
||||||
|
|
||||||
|
|
||||||
@bp.get("/submission/<roundNumber>")
|
@bp.get("/submission/<swarmBountyId>")
|
||||||
def fetch_submission(roundNumber):
|
def fetch_submission(swarmBountyId):
|
||||||
logger.info(f"Fetching submission for round: {roundNumber}")
|
logger.info(f"Fetching submission for swarmBountyId: {swarmBountyId}")
|
||||||
db = get_db()
|
db = get_db()
|
||||||
submission = (
|
submission = (
|
||||||
db.query(Submission)
|
db.query(Submission)
|
||||||
.filter(
|
.filter(
|
||||||
Submission.round_number == int(roundNumber),
|
Submission.swarmBountyId == int(swarmBountyId),
|
||||||
)
|
)
|
||||||
.first()
|
.first()
|
||||||
)
|
)
|
||||||
@ -28,7 +28,7 @@ def fetch_submission(roundNumber):
|
|||||||
return jsonify(
|
return jsonify(
|
||||||
{
|
{
|
||||||
"taskId": submission.task_id,
|
"taskId": submission.task_id,
|
||||||
"roundNumber": submission.round_number,
|
"swarmBountyId": submission.swarmBountyId,
|
||||||
"status": submission.status,
|
"status": submission.status,
|
||||||
"prUrl": submission.pr_url,
|
"prUrl": submission.pr_url,
|
||||||
"githubUsername": github_username,
|
"githubUsername": github_username,
|
||||||
|
@ -10,7 +10,7 @@ bp = Blueprint("task", __name__)
|
|||||||
executor = ThreadPoolExecutor(max_workers=2)
|
executor = ThreadPoolExecutor(max_workers=2)
|
||||||
|
|
||||||
|
|
||||||
def post_pr_url(agent_result, task_id, signature, round_number):
|
def post_pr_url(agent_result, task_id, signature, swarmBountyId):
|
||||||
try:
|
try:
|
||||||
result = agent_result.result() # Get the result from the future
|
result = agent_result.result() # Get the result from the future
|
||||||
logger.info(f"Result: {result}")
|
logger.info(f"Result: {result}")
|
||||||
@ -22,7 +22,7 @@ def post_pr_url(agent_result, task_id, signature, round_number):
|
|||||||
json={
|
json={
|
||||||
"prUrl": result_data.get("data", {}).get("pr_url"),
|
"prUrl": result_data.get("data", {}).get("pr_url"),
|
||||||
"signature": signature,
|
"signature": signature,
|
||||||
"roundNumber": round_number,
|
"swarmBountyId": swarmBountyId,
|
||||||
"success": result.get("success", False),
|
"success": result.get("success", False),
|
||||||
"message": result_data.get("error", ""),
|
"message": result_data.get("error", ""),
|
||||||
},
|
},
|
||||||
@ -38,17 +38,18 @@ def post_pr_url(agent_result, task_id, signature, round_number):
|
|||||||
logger.error(f"Traceback: {''.join(traceback.format_tb(e.__traceback__))}")
|
logger.error(f"Traceback: {''.join(traceback.format_tb(e.__traceback__))}")
|
||||||
|
|
||||||
|
|
||||||
@bp.post("/worker-task/<round_number>")
|
@bp.post("/worker-task")
|
||||||
def start_task(round_number):
|
def start_task():
|
||||||
logger = repo_summary_service.logger
|
logger = repo_summary_service.logger
|
||||||
logger.info(f"Task started for round: {round_number}")
|
# logger.info(f"Task started for bounty: {swarmBountyId}")
|
||||||
|
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
task_id = data["task_id"]
|
task_id = data["task_id"]
|
||||||
podcall_signature = data["podcall_signature"]
|
podcall_signature = data["podcall_signature"]
|
||||||
repo_url = data["repo_url"]
|
repo_url = data["repo_url"]
|
||||||
|
swarmBountyId = data["swarmBountyId"]
|
||||||
logger.info(f"Task data: {data}")
|
logger.info(f"Task data: {data}")
|
||||||
required_fields = ["task_id", "round_number", "repo_url", "podcall_signature"]
|
required_fields = ["task_id", "swarmBountyId", "repo_url", "podcall_signature"]
|
||||||
if any(data.get(field) is None for field in required_fields):
|
if any(data.get(field) is None for field in required_fields):
|
||||||
return jsonify({"error": "Missing data"}), 401
|
return jsonify({"error": "Missing data"}), 401
|
||||||
|
|
||||||
@ -58,7 +59,7 @@ def start_task(round_number):
|
|||||||
if os.getenv("TEST_MODE") == "true":
|
if os.getenv("TEST_MODE") == "true":
|
||||||
result = repo_summary_service.handle_task_creation(
|
result = repo_summary_service.handle_task_creation(
|
||||||
task_id=task_id,
|
task_id=task_id,
|
||||||
round_number=int(round_number),
|
swarmBountyId=swarmBountyId,
|
||||||
repo_url=repo_url,
|
repo_url=repo_url,
|
||||||
db=db, # Pass db instance
|
db=db, # Pass db instance
|
||||||
)
|
)
|
||||||
@ -67,12 +68,12 @@ def start_task(round_number):
|
|||||||
agent_result = executor.submit(
|
agent_result = executor.submit(
|
||||||
repo_summary_service.handle_task_creation,
|
repo_summary_service.handle_task_creation,
|
||||||
task_id=task_id,
|
task_id=task_id,
|
||||||
round_number=round_number,
|
swarmBountyId=swarmBountyId,
|
||||||
repo_url=repo_url,
|
repo_url=repo_url,
|
||||||
db=db, # Pass db instance
|
db=db, # Pass db instance
|
||||||
)
|
)
|
||||||
agent_result.add_done_callback(
|
agent_result.add_done_callback(
|
||||||
lambda future: post_pr_url(future, task_id, podcall_signature, round_number)
|
lambda future: post_pr_url(future, task_id, podcall_signature, swarmBountyId)
|
||||||
)
|
)
|
||||||
return jsonify({"status": "Task is being processed"}), 200
|
return jsonify({"status": "Task is being processed"}), 200
|
||||||
|
|
||||||
@ -87,14 +88,14 @@ if __name__ == "__main__":
|
|||||||
# Test data
|
# Test data
|
||||||
test_data = {
|
test_data = {
|
||||||
"taskId": "fake",
|
"taskId": "fake",
|
||||||
"round_number": "1",
|
"swarmBountyId": "1",
|
||||||
"repo_url": "https://github.com/koii-network/docs",
|
"repo_url": "https://github.com/koii-network/docs",
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set up test context
|
# Set up test context
|
||||||
with app.test_client() as client:
|
with app.test_client() as client:
|
||||||
# Make a POST request to the endpoint
|
# Make a POST request to the endpoint
|
||||||
response = client.post("/repo_summary/1", json=test_data)
|
response = client.post("/worker-task", json=test_data)
|
||||||
|
|
||||||
# Print the response
|
# Print the response
|
||||||
print(f"Status Code: {response.status_code}")
|
print(f"Status Code: {response.status_code}")
|
||||||
|
@ -11,7 +11,7 @@ from src.database.models import Submission
|
|||||||
load_dotenv()
|
load_dotenv()
|
||||||
|
|
||||||
|
|
||||||
def handle_task_creation(task_id, round_number, repo_url, db=None):
|
def handle_task_creation(task_id, swarmBountyId, repo_url, db=None):
|
||||||
"""Handle task creation request."""
|
"""Handle task creation request."""
|
||||||
try:
|
try:
|
||||||
if db is None:
|
if db is None:
|
||||||
@ -28,7 +28,7 @@ def handle_task_creation(task_id, round_number, repo_url, db=None):
|
|||||||
if result.get("success"):
|
if result.get("success"):
|
||||||
submission = Submission(
|
submission = Submission(
|
||||||
task_id=task_id,
|
task_id=task_id,
|
||||||
round_number=round_number,
|
swarmBountyId=swarmBountyId,
|
||||||
status="summarized",
|
status="summarized",
|
||||||
repo_url=repo_url,
|
repo_url=repo_url,
|
||||||
pr_url=result["data"]["pr_url"],
|
pr_url=result["data"]["pr_url"],
|
||||||
@ -50,7 +50,7 @@ if __name__ == "__main__":
|
|||||||
with app.app_context():
|
with app.app_context():
|
||||||
result = handle_task_creation(
|
result = handle_task_creation(
|
||||||
task_id="1",
|
task_id="1",
|
||||||
round_number=6,
|
swarmBountyId=1,
|
||||||
repo_url="https://github.com/koii-network/builder-test",
|
repo_url="https://github.com/koii-network/builder-test",
|
||||||
)
|
)
|
||||||
print(result)
|
print(result)
|
||||||
|
Reference in New Issue
Block a user