Rules Provider

Rules provider is a convenient plugin API which allows you to register pluggable business rule class for your model following the pattern we have for registering other pluggable providers.

If you wish to have a particular portion of your model processing logic to be overrideable by downstream projects, you may use rules provider to provide the processing logic.

Using Rules Provider

import typing
import morpfw
from .app import App
from .model import PageModel


class PageRulesProvider(morpfw.RulesProvider):

    def calculate_value_offset(self):
        return self.context['value'] + 1


@App.rulesprovider(model=PageModel)
def get_rulesprovider(context):
    return PageRulesProvider(context)


@App.json(model=PageModel, name='get-value-offset')
def get_value_offset(context, request):
    return context.rulesprovider().calculate_value_offset()