Routes

EverNode requries a web server and Python3.6. It assumes you already have Python3.6 installed.

routes.py

Each module needs a routes.py file. A basic routes.py file can look like:

from .controllers import MockController

routes = [
    {
        'url': '/hello-world',
        'name': 'hello-world',
        'methods': ['GET'],  # POST, PUT, PATCH, UPDATE
        'function': MockController.hello_world}]

Authorization on Routes

If you would like to lock a route to a logged in user. An Authorization: Bearer <token> HTTP header must be supplied.

Example:

# modules/<module-name>/routes.py
from .controllers import MockController
from evernode.middleware import SessionMiddleware # noqa

routes = [
    {
        'url': '/hello-world',
        'name': 'hello-world',
        'methods': ['GET'],
        'middleware': [SessionMiddleware],  # returns a 401 response if not authorized
        'function': MockController.protected}]
# -------------------------------------------------------
# modules/<module-name>/controllers/mock_controller.py
from flask import current_app # noqa
from evernode.classes import JsonResponse, Render, Security, Email, UserAuth, FormData, Translator # noqa
from evernode.decorators import middleware # noqa

class MockController:
    """ Mock Module, Mock Controller """

    @staticmethod
    @middleware  # this is required!
    def protected():
        """ Hello World Controller Protected """
        return JsonResponse(200, None, "Hello World, you're authorized!")