# -*- codding: utf-8 -*- #!/usr/bin/env python3 from io import StringIO ## for Python 3 #from requests import requests as ReqServer from http.server import BaseHTTPRequestHandler import logging from .jwt import genaratorSecretsToken import json class Router(): def __init__(self): routes = self.setRoutes() super().__init__(self.setRoutes) def add(self, url, **opts): pass def find(self, url, handler): if url in self.routes: if "?" in url[-1]: params.url.split("?") return handler(params) else: return handler() else: return 1 def setRoutes(self): pass class RouterOld(BaseHTTPRequestHandler): # def __init__(self): # self.P_list = [] # self.Response = "" # self.Routes = [] # length = int(self.headers['content-length']) # Not work code # self.send_header['Access-Control-Allow-Origin', '*'] # self.send_header['Access-Control-Allow-Methods', 'GET'] # self.send_header['Access-Control-Allow-Headers', 'X-Requested-With,content-type'] # self.send_header['Access-Control-Allow-Credentials', true] # self.end_headers() # super().__init__(self.setRoutes) def _set_response(self): self.send_response(200) self.send_header['Access-Control-Allow-Origin', '*'] self.send_header['Access-Control-Allow-Methods', 'GET'] self.send_header['Access-Control-Allow-Headers', 'X-Requested-With,content-type'] #self.send_header['Access-Control-Allow-Credentials', true] self.end_headers() def do_REQUEST(self): print("do_REQUEST:\n") print(str(self.path), str(self.headers)) self.r_t = str(self.path), str(self.headers) return self.response() def _setRoutes(self, ListRoutes = []): self.Routes = ListRoutes def response(self): try: return self.wfile.write(BytesIO(self.r_t).getvalue()) except TypeError: #print("TypeError") return self.wfile.write(bytes(self.r_t, 'UTF-8')) def route(self, metod, url, params, handler): print(url) metod = metod.lower() if self.path in self.Routes.url: #if metod == 'GET' or metod == 'get': if metod == 'get': self.get(url = url, handler = handler) #return true elif metod == 'post': self.post(url = url, handler= handler) elif metod == 'head': self.head() else: self.r_404() else: return self.r_404() #return false def get(self, url, handler): #do_GET() return url def post(self, url, handler): #do_POST() return url def head(self): #do_HEAD() pass def __isAuth(selt, auth): pass def getToken(self, authResult): print(self.client_address) #if self.__isAuth() is True: genaratorSecretsToken() #else: # self.r_403() def parse_url(request): print("request.rfile:\t" + str(request.rfile.read())) #return json.loads(str(request.rfile.read())) def r_403(self): self.send_response(403) self.end_headers() print(self.client_address) def r_404(self): self.send_response(404) self.end_headers() print(self.client_address) def r_static(self): if os.path.exists('./views/' + self.path): self.send_response(200) self.end_headers() with open('./views/' + self.path, 'tr') as f: self.Response = f.read() else: self.send_response(404) self.end_headers() """ def do_GET(self): pass def do_POST(self): pass """