Files
validator/OmCTF-2025/checkers/jform/jform_lib.py

55 lines
2.3 KiB
Python

import requests
import json
from checklib import *
PORT = 5003
class CheckMachine:
@property
def url(self):
return f"http://{self.c.host}:{self.port}"
def __init__(self, checker: BaseChecker):
self.port = PORT
self.c = checker
def register(self, session: requests.Session, username: str, password: str):
data = {"username": username, "password": password}
headers = {"Content-Type": "application/json"}
return session.post(f"{self.url}/api/account/signup", data=json.dumps(data), headers=headers)
def login(self, session: requests.Session, username: str, password: str):
data = {"username": username, "password": password}
headers = {"Content-Type": "application/json"}
return session.post(f"{self.url}/api/account/login", data=json.dumps(data), headers=headers)
def me(self, session: requests.Session):
return session.get(f"{self.url}/api/account/me")
def logout(self, session: requests.Session):
headers = {"Content-Type": "application/json"}
return session.post(f"{self.url}/api/account/logout", data=json.dumps({}), headers=headers)
def create_form(self, session: requests.Session, schema: dict):
data = {"schema": schema}
headers = {"Content-Type": "application/json"}
return session.post(f"{self.url}/api/form/new", data=json.dumps(data), headers=headers)
def get_form(self, session: requests.Session, form_id: str):
return session.get(f"{self.url}/api/form/{form_id}")
def update_form(self, session: requests.Session, form_id: str, schema: dict):
data = {"schema": schema}
headers = {"Content-Type": "application/json"}
return session.put(f"{self.url}/api/form/{form_id}/update", data=json.dumps(data), headers=headers)
def submit_form_response(self, session: requests.Session, form_id: str, payload: dict):
headers = {"Content-Type": "application/json"}
return session.post(f"{self.url}/api/form/{form_id}/submit", data=json.dumps(payload), headers=headers)
def get_my_forms(self, session: requests.Session):
return session.get(f"{self.url}/api/form/my-forms")
def get_form_results(self, session: requests.Session, form_id: str):
return session.get(f"{self.url}/api/form/{form_id}/results")