def post(self): username = None password = None app.logger.info(request.accept_mimetypes) if request_is_json(): app.logger.info('Attempting to login using JSON') data = request.get_json() app.logger.info(request.data) for key, value in data.iteritems(): print key + '-' + value if key == 'username': username = value if key == 'password': password = value elif request_is_form_urlencode(): app.logger.info('Attempting to login using x-www-form-urlencoded') requestData = json.loads(request.form['data']) username = requestData['email'] password = requestData['password'] else: return {"meta": buildMeta(), "error": "Unable to process " + request.accept_mimetypes} # validate username and password if (username is not None and password is not None): user = User.query.filter_by(username=username).first() if (user is not None and user.verify_password(password)): app.logger.info('Login Successful') login_user(user) session['username'] = username; return {"meta": buildMeta(), "data": None} elif (config.DEBUG == True and username == config.ADMIN_USERNAME and password == config.ADMIN_PASSWORD): app.logger.info('Attempting to login as Root User') user = User.query.filter_by(username=username).first() if (user is None): app.logger.info('No Admin User Found, Creating') newUser = User(username=config.ADMIN_USERNAME, password=config.ADMIN_PASSWORD, email=config.ADMIN_EMAIL, first_name='Admin', last_name='Admin') db_session.add(newUser) db_session.commit() login_user(newUser) session['username'] = username; else: login_user(user) session['username'] = username; else: app.logger.info('Username or password incorrect') return {"meta": buildMeta(), "error": "Username or password incorrect", "data": None} else: app.logger.info('Please provide a username and password') return {"meta": buildMeta(), "error": "Please provide a username and password", "data": None} return {"meta": buildMeta()}
def post(self, user_id=None): app.logger.info('Accessing User.post') username = '' password = '' confirm_password = '' email = '' first_name = '' last_name = '' role_id = '' if request_is_json(): app.logger.info('Creating new user based upon JSON Request') print json.dumps(request.get_json()) data = request.get_json() for key, value in data.iteritems(): print key + '-' + str(value) if key == 'password': password = value if key == 'confirm_password': confirm_password = value elif key == 'email': username = value email = value elif key == 'first_name': first_name = value elif key == 'last_name': last_name = value elif request_is_form_urlencode(): app.logger.info('Creating new user based upon other Request') requestData = json.loads(request.form['data']) username = requestData['email'] email = requestData['email'] last_name = requestData['last_name'] first_name = requestData['first_name'] confirm_password = requestData['confirm_password'] else: return {"meta": buildMeta(), "error": "Unable to process " + request.accept_mimetypes} # TODO: PASSWORD and CONFIRM_PASSWORD comparison if email is None or password is None: return {"meta": buildMeta(), "error": "Email and Password is required", "data": None} if User.query.filter_by(username=username).first() is not None: return {"meta": buildMeta(), "error": "Username already exists", "data": None} newUser = User(username=username, password=password, email=email, first_name=first_name, last_name=last_name) db_session.add(newUser) db_session.commit() return {"meta": buildMeta()}
def post(self, feedback_id=None): app.logger.info('Accessing Feedback.post') user = None user_id = None rating = None feedback = None if 'username' in session: user = User.query.filter_by(username=session['username']).first() if user is None: return {"meta": buildMeta(), "error": "No Session Found"} else: user_id = user.id; if request_is_json(): app.logger.info('Creating new feedback based upon JSON Request') print json.dumps(request.get_json()) data = request.get_json() if data is not None: for key, value in data.iteritems(): print key + '-' + str(value) if key == 'rating': rating = value if key == 'feedback': feedback = value elif request_is_form_urlencode(): app.logger.info('Creating new user based upon other Request') requestData = json.loads(request.form['data']) rating = requestData['rating'] feedback = requestData['feedback'] else: return {"meta": buildMeta(), "error": "Unable to process " + request.accept_mimetypes} if rating is not None and feedback is not None: newFeedback = Feedback(user_id=user_id, rating=int(rating), feedback=feedback) db_session.add(newFeedback) db_session.commit() html_message = "<p>Rating: " + str(rating) + "</p><p>Feedback: " + feedback + "</p>" text_message = "Rating: " + str(rating) + "\r\nFeedback: " + feedback send_email('New Feedback', ['"Robert Donovan" <*****@*****.**>', '"David Larrimore" <*****@*****.**'], text_message, html_message) return {"meta": buildMeta(), 'data': newFeedback.serialize}, 201 else: return {"meta": buildMeta(), 'error': 'No feedback was provided'}, 201
def createNewUser(self, **kwargs): password = kwargs.get('new_password') email = kwargs.get('email') next_pay_date = kwargs.get('next_pay_date') pay_recurrance_flag = kwargs.get('pay_recurrance_flag') confirmed_at = kwargs.get('confirmed_at') active = kwargs.get('active') if email is None: email = testUtils.random_email_generator() if password is None: password = testUtils.random_password_generator() if isinstance(next_pay_date, datetime): next_pay_date = next_pay_date elif next_pay_date is True: next_pay_date = self.get_default_test_date() elif next_pay_date is False: next_pay_date = None else: next_pay_date = self.get_default_test_date() if pay_recurrance_flag is None: pay_recurrance_flag = "B" if isinstance(confirmed_at, datetime): confirmed_at = confirmed_at elif confirmed_at is True: confirmed_at = self.get_default_test_date() elif confirmed_at is False: confirmed_at = None else: confirmed_at = None newUser = User(username=email, password=password, email=email, first_name=self.get_default_test_name(), last_name=self.get_default_test_name(), next_pay_date=next_pay_date, pay_recurrance_flag = pay_recurrance_flag, confirmed_at=confirmed_at, active=active) db_session.add(newUser) db_session.commit() return newUser
def post(self, bill_id=None): app.logger.info('Accessing Bill.post') user = None user_id = None payee_id = None name = None description = None due_date = None billing_period = None total_due = None paid_flag = None paid_date = None check_number = None payment_type = None if 'username' in session: user = User.query.filter_by(username=session['username']).first() if user is None: return {"meta": buildMeta(), "error": "No Session Found"} if request_is_json(): app.logger.info('Creating new user based upon JSON Request') print json.dumps(request.get_json()) data = request.get_json() for key, value in data.iteritems(): print key + '-' + str(value) if key == 'name': name = value if key == 'description': description = value elif key == 'due_date': due_date = value elif key == 'billing_period': billing_period = value elif key == 'total_due': total_due = value elif key == 'paid_flag': paid_flag = value elif key == 'paid_date': paid_date = value elif key == 'check_number': check_number = value elif key == 'payment_type': payment_type = value elif request_is_form_urlencode(): app.logger.info('Creating new user based upon other Request') requestData = json.loads(request.form['data']) name = requestData['name'] description = requestData['description'] due_date = requestData['due_date'] billing_period = requestData['billing_period'] total_due = requestData['total_due'] paid_flag = requestData['paid_flag'] paid_date = requestData['paid_date'] check_number = requestData['check_number'] payment_type = requestData['payment_type'] else: return {"meta": buildMeta(), "error": "Unable to process " + request.accept_mimetypes} if Bill.query.filter_by(name=name, user_id=user_id).first() is not None: return {"meta": buildMeta(), "error": "Bill already exists"} newBill = Bill(user_id=user.id, name=name, description=description, due_date=due_date, billing_period=billing_period, total_due=total_due, paid_flag=paid_flag, paid_date=paid_date, payment_type=payment_type, check_number=check_number) db_session.add(newBill) db_session.commit() return {"meta": buildMeta(), 'data': newBill.serialize}, 201