Add missing classes
This commit is contained in:
parent
eb85dd1ec6
commit
2006927a4e
|
@ -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)"}
|
||||
|
|
@ -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)
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
class Response:
|
||||
def __init__(self, status, ctype, content):
|
||||
self.status = status
|
||||
self.ctype = ctype
|
||||
self.content = content
|
Loading…
Reference in New Issue