def routes(self, routes=[], only=False): if only: self.container.bind('WebRoutes', flatten_routes(only)) return self.container.bind( 'WebRoutes', flatten_routes(self.container.make('WebRoutes') + routes))
def test_flatten_flattens_multiple_lists(self): routes = [ Get().route('/test/1', 'TestController@show').name('create'), RouteGroup([ Get().route('/test/1', 'TestController@show').name('create'), Get().route('/test/2', 'TestController@show').name('edit'), RouteGroup([ Get().route('/test/1', 'TestController@show').name('update'), Get().route('/test/2', 'TestController@show').name('delete'), RouteGroup([ Get().route('/test/3', 'TestController@show').name('update'), Get().route('/test/4', 'TestController@show').name('delete'), ], middleware=('auth')), ], name='post.') ], prefix='/dashboard') ] routes = flatten_routes(routes) assert routes[3].route_url == '/dashboard/test/1' assert routes[3].named_route == 'post.update'
def __new__(cls, routes=[], middleware=[], domain=[], prefix='', name='', add_methods=[]): """Call when this class is first called. This is to give the ability to return a value in the constructor. Keyword Arguments: routes {list} -- List of routes. (default: {[]}) middleware {list} -- List of middleware. (default: {[]}) domain {list} -- String or list of domains to attach to all the routes. (default: {[]}) prefix {str} -- Prefix to attach to all the route URI's. (default: {''}) name {str} -- Base name to attach to all the routes. (default: {''}) Returns: list -- Returns a list of routes. """ from masonite.helpers.routes import flatten_routes cls.routes = flatten_routes(routes) if middleware: cls._middleware(cls, *middleware) if add_methods: cls._add_methods(cls, *add_methods) if domain: cls._domain(cls, domain) if prefix: cls._prefix(cls, prefix) if name: cls._name(cls, name) return cls.routes
def load_routes(self): from routes.web import ROUTES self.routes = {} for route in flatten_routes(ROUTES): if route.named_route: self.routes.update({route.named_route: route.route_url})
def register(self): self.app.bind('HookHandler', Hook(self.app)) self.app.bind('WebRoutes', flatten_routes(web.ROUTES)) self.app.bind('Response', None) self.app.bind('Storage', storage) self.app.bind('Route', Route()) self.app.bind('Request', Request()) self.app.bind('Container', self.app) self.app.bind('ExceptionHandler', ExceptionHandler(self.app)) # Insert Commands self.app.bind('MasoniteAuthCommand', AuthCommand()) self.app.bind('MasoniteCommandCommand', CommandCommand()) self.app.bind('MasoniteControllerCommand', ControllerCommand()) self.app.bind('MasoniteInstallCommand', InstallCommand()) self.app.bind('MasoniteJobCommand', JobCommand()) self.app.bind('MasoniteKeyCommand', KeyCommand()) self.app.bind('MasoniteMakeMigrationCommand', MakeMigrationCommand()) self.app.bind('MasoniteMigrateCommand', MigrateCommand()) self.app.bind('MasoniteMigrateRefreshCommand', MigrateRefreshCommand()) self.app.bind('MasoniteMigrateResetCommand', MigrateResetCommand()) self.app.bind('MasoniteMigrateRollbackCommand', MigrateRollbackCommand()) self.app.bind('MasoniteModelCommand', ModelCommand()) self.app.bind('MasoniteProviderCommand', ProviderCommand()) self.app.bind('MasoniteViewCommand', ViewCommand()) self.app.bind('MasoniteRoutesCommand', RoutesCommand()) self.app.bind('MasoniteServeCommand', ServeCommand()) self.app.bind('MasoniteSeedCommand', SeedCommand()) self.app.bind('MasoniteSeedRunCommand', SeedRunCommand()) self.app.bind('MasoniteTinkerCommand', TinkerCommand()) self._autoload(application.AUTOLOAD)
def register(self): self.app.bind('HookHandler', Hook(self.app)) self.app.bind('WebRoutes', flatten_routes(web.ROUTES)) self.app.bind('Storage', storage) self.app.bind('Route', Route()) self.app.bind('Request', Request()) self.app.simple(Response(self.app)) self.app.bind('Container', self.app) self.app.bind('ExceptionHandler', ExceptionHandler(self.app)) self.app.bind('ExceptionDumpExceptionHandler', DumpHandler) self.app.bind('RouteMiddleware', middleware.ROUTE_MIDDLEWARE) self.app.bind('HttpMiddleware', middleware.HTTP_MIDDLEWARE) # Insert Commands self._load_commands() self._autoload(application.AUTOLOAD)
def register(self): from routes import web self.app.bind('HookHandler', Hook(self.app)) self.app.bind('WebRoutes', flatten_routes(web.ROUTES)) self.app.bind('Storage', config('storage')) self.app.bind('Route', Route()) self.app.bind('Request', Request()) self.app.simple(Response(self.app)) self.app.bind('Container', self.app) self.app.bind('ExceptionHandler', ExceptionHandler(self.app)) self.app.bind('ExceptionDumpExceptionHandler', DumpHandler) self.app.bind('AuthCookieDriver', AuthCookieDriver) self.app.bind('AuthJwtDriver', AuthJwtDriver) self.app.bind('AuthManager', AuthManager(self.app).driver('cookie')) self.app.bind('RouteMiddleware', config('middleware.route_middleware')) self.app.bind('HttpMiddleware', config('middleware.http_middleware')) self.app.bind('Auth', Auth) # Insert Commands self._load_commands() self._autoload(config('application.autoload'))
from config import application, providers from pydoc import locate from app.http.test_controllers.TestController import TestController from cgi import MiniFieldStorage from masonite.request import Request from masonite.app import App from masonite.routes import Get, Route from masonite.helpers.routes import flatten_routes, get, group from masonite.helpers.time import cookie_expire_time from masonite.testsuite.TestSuite import generate_wsgi, TestSuite WEB_ROUTES = flatten_routes([ get('/test', 'Controller@show').name('test'), group('/a', [ get('/account', 'Controller@show').name('a_account'), ]) ]) wsgi_request = generate_wsgi() class TestRequest: def setup_method(self): self.request = Request(wsgi_request).key( 'NCTpkICMlTXie5te9nJniMj9aVbPM6lsjeq5iDZ0dqY=') def test_request_is_callable(self): """ Request should be callable """ if callable(self.request): assert True
from masonite.app import App from masonite.exceptions import InvalidHTTPStatusCode, RouteException from masonite.helpers.routes import flatten_routes from masonite.helpers.time import cookie_expire_time from masonite.request import Request from masonite.response import Response from masonite.routes import Get, RouteGroup from masonite.testsuite.TestSuite import generate_wsgi from app.http.test_controllers.TestController import TestController from config import application, providers WEB_ROUTES = flatten_routes([ Get('/test', 'Controller@show').name('test'), RouteGroup([ Get('/account', 'Controller@show').name('a_account'), ], prefix='/a') ]) wsgi_request = generate_wsgi() class TestRequest(unittest.TestCase): def setUp(self): self.app = App() self.request = Request(wsgi_request).key( 'NCTpkICMlTXie5te9nJniMj9aVbPM6lsjeq5iDZ0dqY=').load_app(self.app) self.app.bind('Request', self.request) self.response = Response(self.app) self.app.simple(Response)
def routes(self, routes): self.container.bind( 'WebRoutes', flatten_routes(self.container.make('WebRoutes') + routes))