Skip to content

Commit

Permalink
Merge bf948a3 into fa3d82a
Browse files Browse the repository at this point in the history
  • Loading branch information
josephmancuso committed Jun 29, 2018
2 parents fa3d82a + bf948a3 commit eaf0878
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 4 deletions.
4 changes: 3 additions & 1 deletion masonite/providers/HelpersProvider.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,13 @@ def boot(self, View, ViewClass, Request):
builtins.container = self.app.helper
builtins.env = os.getenv
builtins.resolve = self.app.resolve
builtins.route = Request.route

ViewClass.share(
{
'request': Request.helper,
'auth': Request.user,
'request_method': set_request_method
'request_method': set_request_method,
'route': Request.route,
}
)
20 changes: 17 additions & 3 deletions masonite/request.py
Original file line number Diff line number Diff line change
Expand Up @@ -309,11 +309,25 @@ def redirect_to(self, route_name, params={}):
"""
web_routes = self.container.make('WebRoutes')

for route in web_routes:
if route.named_route == route_name:
self.redirect_url = self.compile_route_to_url(route.route_url, params)
self.redirect_url = self._get_named_route(route_name, params)

return self

def _get_named_route(self, name, params):
web_routes = self.container.make('WebRoutes')

for route in web_routes:
if route.named_route == name:
return self.compile_route_to_url(route.route_url, params)

return None

def route(self, name, params = {}):
web_routes = self.container.make('WebRoutes')

return self._get_named_route(name, params)

return None

def reset_redirections(self):
self.redirect_url = False
Expand Down
11 changes: 11 additions & 0 deletions tests/test_requests.py
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,18 @@ def test_redirect_compiles_url_with_1_slash(self):
route = '/'

assert request.compile_route_to_url(route) == '/'

def test_request_route_returns_url(self):
app = App()
app.bind('Request', self.request)
app.bind('WebRoutes', [
get('/test/url', None).name('test.url'),
get('/test/url/@id', None).name('test.id')
])
request = app.make('Request').load_app(app)

assert request.route('test.url') == '/test/url'
assert request.route('test.id', {'id': 1}) == '/test/url/1'

def test_redirect_compiles_url_with_multiple_slashes(self):
app = App()
Expand Down

0 comments on commit eaf0878

Please sign in to comment.