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")