terom@108: import json terom@108: terom@108: class JSONMixin: terom@108: MIMETYPE = 'application/json' terom@108: terom@110: CORS_ORIGIN = None terom@110: CORS_METHODS = None terom@111: CORS_HEADERS = None terom@111: CORS_CREDENTIALS = None terom@110: terom@110: def headers (self): terom@110: if self.CORS_ORIGIN: terom@110: yield 'Access-Control-Allow-Origin', self.CORS_ORIGIN terom@110: terom@110: if self.CORS_METHODS: terom@110: yield 'Access-Control-Allow-Methods', ', '.join(self.CORS_METHODS) terom@110: terom@111: if self.CORS_HEADERS: terom@111: yield 'Access-Control-Allow-Headers', ', '.join(self.CORS_HEADERS) terom@111: terom@111: if self.CORS_CREDENTIALS: terom@111: yield 'Access-Control-Allow-Credentials', 'true' terom@111: terom@108: def render_json(self, **parms): terom@108: raise NotImplementedError() terom@108: terom@108: def render_response(self, **params): terom@108: data = self.render_json(**params) terom@108: terom@108: return json.dumps(data) terom@108: