示例#1
0
def process_feedback(
        feedback,
        send_email_handler,
        session
):
    if feedback.processed:
        return

    target = get_user_by_id(feedback.target_user, session)
    manager = get_user_by_id(feedback.reports_to_user, session)
    author = get_user_by_id(feedback.author_user, session)
    sender = "{} {} <{}>".format(author.first_name,
                                 author.last_name,
                                 author.email)

    send_email_handler(
        to=manager.email,
        subject='Feedback for {}'.format(target.first_name),
        text=feedback.text,
        sender=sender,
        cc=target.email
    )

    feedback.processed = True
    session.flush()
示例#2
0
def get_request_user():
    user_id = session.get('user_id')

    if not user_id:
        raise ValueError('No user is logged in this session')

    user = get_user_by_id(user_id, db.session)

    if not user:
        raise ValueError('Could not find user from user id {}'.format(user_id))

    return user
示例#3
0
def submit_feedback():
    submitter = get_request_user()
    data = request.get_json()
    feedback_type = data['feedback_type']
    text = data['text']
    recipient_user_id = data['recipient_user_id']
    recipient = get_user_by_id(recipient_user_id, db.session)

    feedback = create_feedback(
        target_user=recipient,
        author_user=submitter,
        text=text,
        type=feedback_type,
        session=db.session
    )

    process_feedback(
        feedback=feedback,
        send_email_handler=send_email,
        session=db.session
    )

    return 'ok', 201