spejsiot-api/spejsiot/rendering.py

26 lines
692 B
Python

from flask import Markup, render_template
class EndpointRenderer(object):
@classmethod
def render(cls, device, endpoint):
return ''
class DefaultRenderer(EndpointRenderer):
@classmethod
def render(cls, device, endpoint):
return Markup(render_template(
'endpoints/%s.html' % endpoint.get('$type'),
endpoint=endpoint, device=device))
endpoint_renderers = {
None: DefaultRenderer
}
def render_endpoint(device, endpoint):
t = endpoint.get('$type', None)
if t in endpoint_renderers:
return endpoint_renderers[t].render(device, endpoint)
else:
return endpoint_renderers[None].render(device, endpoint)