Add missing classes

This commit is contained in:
Klaus-Uwe Mitterer 2017-11-02 13:43:46 +01:00
parent eb85dd1ec6
commit 2006927a4e
3 changed files with 62 additions and 0 deletions

7
classes/httpclient.py Normal file
View File

@ -0,0 +1,7 @@
import requests
class HTTPClient(requests.Session):
def __init__(self, *args, **kwargs):
requests.Session.__init__(self, *args, **kwargs)
self.headers = {"User-Agent": "oebb_py/git (+https://kumig.it/kumitterer/oebb_py)"}

50
classes/request.py Normal file
View File

@ -0,0 +1,50 @@
import cgi
class IllegalMethodException(BaseException):
pass
class InvalidArgumentException(BaseException):
pass
class Request:
def __init__(self, env):
if env["REQUEST_METHOD"] == "POST":
self.args = cgi.parse_qs(env['wsgi.input'].readline().decode(), True)
elif env["REQUEST_METHOD"] == "GET":
self.args = cgi.parse_qs(env['QUERY_STRING'], True)
else:
raise IllegalMethodException()
self.conn = False
self.val = False
self.cfrm = None
self.cto = None
self.json = "json" in self.args
split = env["PATH_INFO"].split("/")
split = [i.strip() for i in split]
while "" in split:
split.remove("")
if len(split) > 2:
output = "<h1>400 Bad Request</h1>\n"
output += "Only one (validate) or two (conn) arguments may be passed as path."
raise InvalidArgumentException(output)
if len(split) > 0:
if len(split) == 1:
self.val = True
else:
self.conn = True
self.cto = split[1].encode("latin-1").decode("utf-8")
self.cfrm = split[0].encode("latin-1").decode("utf-8")
try:
self.rtype = "conn" if self.conn else "val" if self.val else self.args["type"][0].lower()
except:
output = "<h1>400 Bad Request</h1>\n"
output += "A request type must be provided."
raise InvalidArgumentException(output)

5
classes/response.py Normal file
View File

@ -0,0 +1,5 @@
class Response:
def __init__(self, status, ctype, content):
self.status = status
self.ctype = ctype
self.content = content