Skip to content

Commit 51de289

Browse files
authored
Merge pull request #2 from feliphebueno/BugCBResolver
Correção de bug monstruoso no CallbackResolverService(Router). - OK
2 parents 33e557b + fb480b6 commit 51de289

4 files changed

Lines changed: 27 additions & 9 deletions

File tree

rinzler/core/main_controller.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
"""
2+
Rinzler's default controller for welcome page
3+
"""
4+
5+
from django.views.generic import TemplateView
6+
7+
8+
class MainController(TemplateView):
9+
10+
@staticmethod
11+
def connect(app):
12+
return app

rinzler/core/route_mapping.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ class RouteMapping(object):
22

33
__routes = dict()
44

5+
def __init__(self):
6+
self.__routes = dict()
7+
58
def get(self, route: str(), callback: object()):
69
"""
710
Binds a GET route with the given callback

rinzler/core/router.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class Router(TemplateView):
3030
def __init__(self, route, controller):
3131
self.__route = route
3232
self.__callable = controller
33-
self.__app['router'] = RouteMapping()
33+
self.__app['router'] = object()
3434

3535
@csrf_exempt
3636
def route(self, request: HttpRequest):
@@ -42,6 +42,8 @@ def route(self, request: HttpRequest):
4242
self.__request = request
4343
self.__uri = request.path[1:]
4444
self.__method = request.method
45+
self.__app['router'] = RouteMapping()
46+
self.__bound_routes = dict()
4547

4648
routes = self.__callable().connect(self.__app)
4749

@@ -107,14 +109,15 @@ def request_matches_route(self, actual_route: str(), expected_route: str()):
107109
actual_params = self.get_url_params(actual_route)
108110
i = 0
109111

110-
for param in expected_params:
111-
if param[0] != "{":
112-
if (len(actual_params) - 1) >= i:
113-
if param != actual_params[i]:
112+
if len(expected_params) == len(actual_params):
113+
for param in actual_params:
114+
if expected_params[i][0] != "{":
115+
if param != expected_params[i]:
114116
return False
115-
else:
116-
return False
117-
i += 1
117+
i += 1
118+
else:
119+
return False
120+
118121
return True
119122

120123
def authenticate(self, bound_route, actual_params):

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
# Versions should comply with PEP440. For a discussion on single-sourcing
2424
# the version across setup.py and the project code, see
2525
# https://packaging.python.org/en/latest/single_source_version.html
26-
version='1.13.1',
26+
version='1.14.1',
2727

2828
description='Django-based REST API Framework',
2929
long_description=long_description,

0 commit comments

Comments
 (0)