def main(event, context): """Process input arguments, get user config settings, create User/Instance class instances, and get the commit history for the user. """ # Get input arguments, create api instance (checks for secrets info) print("%s: Lambda executing main:") print("Event: %s" % (event)) print("Context: %s" % (context)) input_arguments = parse_input_commands() auth_instance = git_models.Instance() queried_user = input_arguments['username'] # Create User instance and pass in CLI user, followed by an auth instance user = git_models.User(queried_user, auth_instance) user.get_user_repositories() if user.user_repos: commits = user.get_user_commit_history() commit_length = len(commits) message = format_sms_message(commit_length) send_sms(message) else: return "No results returned from API."
def response_submitted(alert_id): """ Action performed when a response is provided. Text the creator of the alert: - email, phone, and things able to help with of the responding user. """ if request.method == 'POST': submitted_message = request.form['message'] responding_user = current_user try: alert = Alert.query.get(int(alert_id)) except Exception as e: return 'Error {}'.format(e), 404 user_to_message = alert.user response_message = "%s" % responding_user.email if responding_user.phone_number: response_message += ", %s" % responding_user.phone_number response_message += " is availble for: " availble = { "shelter": responding_user.shelter, "clothes": responding_user.clothes, "food": responding_user.food, "other": responding_user.other, } response_message += "%s" % ", ".join(k for k, v in availble.items() if v) response_message += " Message: " + submitted_message if user_to_message.phone_number: send_sms( user_to_message.phone_number, response_message ) send_email( to=user_to_message.email, subject="Alert Response", body=response_message, ) Response(user=current_user, alert=alert, message=submitted_message).save() flash('Your response has been sent to the advocate, thank you!', 'success') return redirect(url_for('dashboard')) else: try: alert = Alert.query.get(int(alert_id)) except Exception as e: return 'Error {}'.format(e), 404 return render_template('respond_to.html', alert=alert, user=current_user, form=ResponseForm())
def _webhook(): if request.method == "GET": msg = request.args.get("msg") num = request.args.get("num") send_sms(num,msg) return '1' if request.method == "POST": data = request.get_json() msg = data['msg'] message = urllib.quote(msg, safe='') num = data['num'] call_num(num,message)
def dashboard(): """Dashboard.""" if current_user.role == 'admin': # Admin user, show register form form = RegisterForm() form_error = False deleted_user = session.pop('deleted_user', False) if request.method == 'POST' and form.validate_on_submit(): user = User( email=form.email.data, password=form.password.data, phone_number=form.phone_number.data, other=form.other.data, shelter=form.shelter.data, food=form.food.data, clothes=form.clothes.data, role=form.role.data ) user.save() verify_email(user.email) flash('User registered succesfully', 'success') return redirect(url_for('dashboard')) elif request.method == 'POST' and not form.validate_on_submit(): form_error = True return render_template('dashboard/admin.html', form=form, form_error=form_error, users=User.get_users(), alerts=Alert.get_alerts(), delete_user_form=DeleteUserForm(), deleted_user=deleted_user) elif current_user.role == 'advocate': # Advocate user, show alert form form = AlertForm() if request.method == 'POST' and form.validate_on_submit(): alert = Alert( description=form.description.data, other=form.other.data, shelter=form.shelter.data, food=form.food.data, clothes=form.clothes.data, gender=form.gender.data, age=form.age.data, user=current_user ) alert.save() users_to_notify = User.get_provider(alert.food, alert.clothes, alert.shelter, alert.other) for user in users_to_notify: print("found user to notify {}".format(user)) body = "There is a new 15th night alert. Go to " + \ HOST_NAME + \ "/respond_to/" + \ str(alert.id) + " to respond." send_sms(to_number=user.phone_number, body=body) send_email(user.email, '15th Night Alert', body) flash('Alert sent successfully', 'success') return redirect(url_for('dashboard')) return render_template('dashboard/advocate.html', form=form) else: # Provider user, show alerts return render_template( 'dashboard/provider.html', user=current_user, alerts=Alert.get_active_alerts_for_provider(current_user) )