Merge branch 'feature/info'

This commit is contained in:
Martin Zimmermann 2013-11-21 11:17:24 +01:00
commit c9c0df229a
2 changed files with 34 additions and 2 deletions

View File

@ -60,7 +60,7 @@ from werkzeug.contrib.fixers import ProxyFix
local = Local() local = Local()
local_manager = LocalManager([local]) local_manager = LocalManager([local])
from isso import db, migrate, wsgi, ext from isso import db, migrate, wsgi, ext, views
from isso.core import ThreadedMixin, uWSGIMixin, Config from isso.core import ThreadedMixin, uWSGIMixin, Config
from isso.utils import parse, http, JSONRequest, origin from isso.utils import parse, http, JSONRequest, origin
from isso.views import comments from isso.views import comments
@ -96,7 +96,9 @@ class Isso(object):
self.signal = ext.Signal(*subscribers) self.signal = ext.Signal(*subscribers)
self.urls = Map() self.urls = Map()
self.api = comments.API(self)
views.Info(self)
comments.API(self)
def sign(self, obj): def sign(self, obj):
return self.signer.dumps(obj) return self.signer.dumps(obj)

View File

@ -1,7 +1,19 @@
# -*- encoding: utf-8 -*- # -*- encoding: utf-8 -*-
from __future__ import unicode_literals
import pkg_resources
dist = pkg_resources.get_distribution("isso")
import json
from werkzeug.wrappers import Response
from werkzeug.routing import Rule
from werkzeug.exceptions import BadRequest from werkzeug.exceptions import BadRequest
from isso import local
from isso.compat import text_type as str
class requires: class requires:
"""Verify that the request URL contains and can parse the parameter. """Verify that the request URL contains and can parse the parameter.
@ -33,3 +45,21 @@ class requires:
return func(cls, env, req, *args, **kwargs) return func(cls, env, req, *args, **kwargs)
return dec return dec
class Info(object):
def __init__(self, isso):
self.moderation = isso.conf.getboolean("moderation", "enabled")
isso.urls.add(Rule('/info', endpoint=self.show))
def show(self, environ, request):
rv = {
"version": dist.version,
"host": str(local("host")),
"origin": str(local("origin")),
"moderation": self.moderation,
}
return Response(json.dumps(rv), 200, content_type="application/json")