def login(): from members.models import Profile if 'app-key' not in request.headers: response = jsonify({'code': 401, 'message': 'App-Key header is required.'}) response.status_code = 401 return response application = Application.find_by_key(request.headers['app-key']) if not application: response = jsonify({'code': 401, 'message': 'Invalid App-key.'}) response.status_code = 401 return response g.application = application form = AuthenticationForm(request.form) if not form.validate(): return form.errors_as_json() profile = Profile.find_by_email(form.email.data) if not profile: form.errors['email'] = ['Invalid password or account does not exists.'] return form.errors_as_json() if not profile.check_passwd(form.password.data): form.errors['email'] = ['Invalid password or account does not exists.'] return form.errors_as_json() session = Session(profile.id) session.save() return jsonify(session.to_json()), 200
def create(): if 'app-key' not in request.headers: response = jsonify({'code': 401, 'message': 'App-Key header is required.'}) response.status_code = 401 return response application = Application.find_by_key(request.headers['app-key']) if not application: response = jsonify({'code': 401, 'message': 'Invalid App-key.'}) response.status_code = 401 return response g.application = application form = OrganizationCreateForm(request.form) if not form.validate(): return form.errors_as_json() plan = ApplicationPlan.find_by_id(form.application_plan_id.data) if not plan: form.errors['application_plan_id'] = ['No application plan found..'] return form.errors_as_json() check = Organization.query.filter(Organization.name == form.name.data).first() if check: form.errors['name'] = ['Name is already taken.'] return form.errors_as_json() organization = Organization(**{ 'name': form.name.data, 'display': form.display.data, 'description': form.description.data, 'website': form.description.data, 'removed': form.removed.data, 'currency': form.currency.data.upper(), 'application_plan_id': form.application_plan_id.data, 'application_id': g.application.id }) organization.save() member = Member(**{ 'display': Member.display_from_email(form.member_email.data), 'email': form.member_email.data, 'password': bcrypt.hashpw(form.member_password.data, bcrypt.gensalt()), 'organization_id': organization.id, 'status': 'MEMBER', 'admin': True }) member.save() return jsonify(organization.to_json()), 201