From 1c86f707fa0f8d04bbd2d6c7621d61e69e7ed2a5 Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Wed, 11 Nov 2015 00:49:12 +0100 Subject: [PATCH] Implement fetchdddata view --- debianmemberportfolio/forms.py | 4 ++++ debianmemberportfolio/views.py | 22 +++++++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/debianmemberportfolio/forms.py b/debianmemberportfolio/forms.py index 9f988a5..0155656 100644 --- a/debianmemberportfolio/forms.py +++ b/debianmemberportfolio/forms.py @@ -33,3 +33,7 @@ class DeveloperData(Form): forumsid = IntegerField('forumsid', default=None, validators=[Optional()]) wikihomepage = StringField('wikihomepage', default=None, validators=[ Optional()]) + + +class DeveloperDataRequest(Form): + email = StringField('email', validators=[DataRequired(), Email()]) diff --git a/debianmemberportfolio/views.py b/debianmemberportfolio/views.py index 233800d..a8fa654 100644 --- a/debianmemberportfolio/views.py +++ b/debianmemberportfolio/views.py @@ -1,7 +1,13 @@ +import json +import logging + from debianmemberportfolio import app, babel -from flask import g, make_response, request, render_template +from flask import g, make_response, request, render_template, abort from config import LANGUAGES -from .forms import DeveloperData +from .forms import DeveloperData, DeveloperDataRequest +from .model import dddatabuilder + +log = logging.getLogger(__name__) @babel.localeselector @@ -39,4 +45,14 @@ def formhelper_js(): @app.route('/showformscripts/fetchdddata/') def fetchdddata(): - return 'dddata' + form = DeveloperDataRequest(request.values) + if form.validate(): + fields = dddatabuilder.build_data(form.data['email']) + log.debug(fields) + response = make_response(json.dumps(fields)) + response.headers['Content-Type'] = 'application/json' + return response + abort( + 400, + "\n".join(["%s: %s" % (key, form.errors[key]) for key in form.errors]) + )