skillbox/server/spellcheck/client.py

52 lines
1.8 KiB
Python

import re
import requests
# from spellcheck.client import TaskbaseClient
# client = TaskbaseClient('info@iterativ.ch', 'myverysafepassword1234', 'https://dev-iterativ.taskbase.com')
# client.spellcheck('aOciP9H7tNu7pLsR4ohllk', 'Dies ist ein Sats mit filen Felern')
class TaskbaseClient:
# def __init__(self, resource_url):
# # resource url should be in the form https://username:password@baseurl
# pattern = re.compile(r'(\w+)://(\w+):(\w+)@([a-zA-Z0-9.]+)')
# scheme, username, password, url = pattern.match(resource_url).groups()
# self.username = username
# self.password = password
# self.token = None
# self.base_url = '{}://{}'.format(scheme, url)
def __init__(self, username, password, base_url):
self.username = username
self.password = password
self.base_url = base_url
self.token = None
def login(self):
payload = {
'username': self.username,
'password': self.password
}
response = requests.post('{}/api/login'.format(self.base_url), json=payload)
data = response.json()
self.token = data['accessToken']
def spellcheck(self, task, text):
if self.token is None:
self.login()
payload = {
"taskId": task,
"input": {
"text": text,
"type": "SPELL_CHECK"
}
}
headers = {'Authorization': 'Bearer {}'.format(self.token), 'Content-Type': 'application/json'}
response = requests.post('{}/api/grade'.format(self.base_url), json=payload, headers=headers)
if response.status_code == 200:
return response.content
else:
raise Exception('Something went wrong')