Add basic API view for user feedback

This commit is contained in:
Lance Edgar 2019-08-29 18:30:13 -05:00
parent d97f95fb92
commit 19c734683b
3 changed files with 137 additions and 29 deletions

View file

@ -35,45 +35,17 @@ from rattail.mail import send_email
from rattail.util import OrderedDict
from rattail.files import resource_path
import colander
from pyramid import httpexceptions
from pyramid.response import Response
import tailbone
from tailbone import forms
from tailbone.forms.common import Feedback
from tailbone.db import Session
from tailbone.views import View
from tailbone.util import set_app_theme
@colander.deferred
def validate_user(node, kw):
session = kw['session']
def validate(node, value):
user = session.query(model.User).get(value)
if not user:
raise colander.Invalid(node, "User not found")
return user.uuid
return validate
class Feedback(colander.Schema):
"""
Form schema for user feedback.
"""
referrer = colander.SchemaNode(colander.String())
user = colander.SchemaNode(colander.String(),
missing=colander.null,
validator=validate_user)
user_name = colander.SchemaNode(colander.String(),
missing=colander.null)
message = colander.SchemaNode(colander.String())
class CommonView(View):
"""
Base class for common views; override as needed.