Exemple #1
0
def insert_to_database_question(cursor: RealDictCursor, new_question):
    if new_question.get('image') is not None:
        query = """
            INSERT INTO question (submission_time, view_number, vote_number, title, message, image)
            VALUES (%(submission_time)s, %(view_number)s, %(vote_number)s, %(title)s, %(message)s, %(image)s )
            RETURNING id;
            """
        cursor.execute(
            query, {
                'submission_time': new_question['submission_time'],
                'view_number': new_question['view_number'],
                'vote_number': new_question['vote_number'],
                'title': new_question['title'],
                'message': new_question.get('message'),
                'image': new_question.get('image')
            })
        return cursor.fetchone().get('id')
    else:
        query = """
                    INSERT INTO question (submission_time, view_number, vote_number, title, message)
                    VALUES (%(submission_time)s, %(view_number)s, %(vote_number)s, %(title)s, %(message)s)
                    RETURNING id;
                    """
        cursor.execute(
            query, {
                'submission_time': new_question['submission_time'],
                'view_number': new_question['view_number'],
                'vote_number': new_question['vote_number'],
                'title': new_question['title'],
                'message': new_question.get('message')
            })
        return cursor.fetchone().get('id')
Exemple #2
0
def get_length_of_questions(cursor: RealDictCursor):
    query = """
            SELECT COUNT(*)
            FROM question
                """
    cursor.execute(query)
    return cursor.fetchone()
def get_user_id_by_activity(cursor: RealDictCursor, table, item_id: int):
    query = f"""
        SELECT user_id
        FROM {table}
        WHERE id = {item_id}"""
    cursor.execute(query)
    return cursor.fetchone()['user_id']
def get_question_id_by_tag_id(cursor: RealDictCursor, tag_id: int):
    query = f"""
        SELECT question_id 
        FROM question_tag
        WHERE tag_id = {tag_id}"""
    cursor.execute(query)
    return cursor.fetchone()["question_id"]
def get_question_id_by_answer_id(cursor: RealDictCursor, answer_id: int):
    query = f"""
        SELECT question_id 
        FROM answer
        WHERE id = {answer_id}"""
    cursor.execute(query)
    return cursor.fetchone()["question_id"]
def get_answer_id_for_comment(cursor: RealDictCursor, data_id: str):
    query = "SELECT answer_id FROM comment WHERE id = {0}".format(data_id)
    cursor.execute(query)
    try:
        return cursor.fetchone()['answer_id']
    except TypeError:
        return None
Exemple #7
0
def get_data_by_email(cursor: RealDictCursor, email) -> list:
    query = """
            SELECT *
            FROM users
            WHERE email = %s"""
    cursor.execute(query, (email,))
    return cursor.fetchone()
Exemple #8
0
def add_new_entry(cursor: RealDictCursor, table_name: str, form_data=None, request_files=None, question_id=None, user_id=None):

    complete_dict_data = init_complete_dict_entry(table_name, form_data, request_files, question_id)

    columns_sql_str = ", ".join([str(key) for key in complete_dict_data.keys()])
    values_sql_str = ", ".join(f'%({key})s' for key in complete_dict_data.keys())

    comment = f"""
        INSERT INTO 
        {table_name} ({columns_sql_str})
        VALUES ({values_sql_str})
        RETURNING id
    """

    cursor.execute(comment, complete_dict_data)
    entry_id = str(cursor.fetchone()['id'])

    if table_name == 'answer':
        add_user_answer_activity(user_id, entry_id)
    else:
        add_user_question_activity(user_id, entry_id)

    if request_files['image'].filename:
        data_handler.save_image(request_files['image'], table_name+'s', entry_id)

    return entry_id
Exemple #9
0
def create_board(cursor: RealDictCursor, title):
    cursor.execute("""
        INSERT INTO boards(title)
        VALUES (%(title)s)
        RETURNING id; 
    """, {'title': title})
    return cursor.fetchone().get('id')
Exemple #10
0
def get_user_by_id(cursor: RealDictCursor, user_name):
    cursor.execute("""
    SELECT *
    FROM users
    WHERE username = %(user_name)s
    """, {'user_name': user_name})
    return cursor.fetchone()
def check_username_exists(cursor: RealDictCursor, username: str):
    query = """
        SELECT * FROM users
        WHERE username = %(username)s;
         """
    cursor.execute(query, {'username': username})
    return cursor.fetchone()
def get_display_question(cursor: RealDictCursor, question_id) -> list:
    cursor.execute(f"""
    SELECT *
    FROM question
    WHERE id = {question_id}
    """)
    return cursor.fetchone()
def get_question_id_by_answer_id(cursor: RealDictCursor, answer_id) -> list:
    cursor.execute(f"""
    SELECT question_id
    FROM answer
    WHERE id = {answer_id}
    """)
    return cursor.fetchone()
Exemple #14
0
def create_new_user(cursor: RealDictCursor, login, password):
    registration_time = get_datetime_now()

    command = f"""
        INSERT INTO users
        (login, password, registration_date)
        VALUES (%(login)s, %(password)s, %(registration_time)s)
        RETURNING id

    """

    cursor.execute(
        command, {
            'login': login,
            'registration_time': registration_time,
            'password': str(password)[2:-1]
        })
    new_user_id = cursor.fetchone()['id']

    query = f"""
        INSERT INTO users_statistics
        (user_id, question_count, answer_count, comment_count, reputation_value)
        VALUES (%(new_user_id)s, 1, 1, 1, 1)
    """
    cursor.execute(query, {'new_user_id': new_user_id})
Exemple #15
0
def get_last_board_id(cursor: RealDictCursor) -> list:
    query = """
            SELECT MAX(id)
            FROM boards
    """
    cursor.execute(query)
    return cursor.fetchone()
Exemple #16
0
def get_comment_by_id(cursor: RealDictCursor, comment_id: int):
    query = """
    SELECT * FROM comment
    WHERE id = %(comment_id)s
    """
    cursor.execute(query, {'comment_id': comment_id})
    return cursor.fetchone()
def has_question_comment(cursor: RealDictCursor, question_id: int):
    query = f"""
        SELECT id
        FROM comment 
        WHERE question_id = {question_id}"""
    cursor.execute(query)
    return cursor.fetchone()
Exemple #18
0
def get_login(cursor: RealDictCursor, email, password):
    print(email)
    print(password)
    user = "******".format(email, password)
    cursor.execute(user)

    return cursor.fetchone()
def has_answer_comment(cursor: RealDictCursor, answer_id: int):
    query = f"""
        SELECT id
        FROM comment 
        WHERE answer_id = {answer_id}"""
    cursor.execute(query)
    return cursor.fetchone()
Exemple #20
0
def get_votes_by_planet_name_and_user_id(cursor: RealDictCursor, planet_name, user_id) -> list:
    query = """
            SELECT planet_name
            FROM planet_votes
            WHERE planet_name = %s and user_id = %s"""
    cursor.execute(query, (planet_name, user_id,))
    return cursor.fetchone()
Exemple #21
0
def get_questions_by_id(cursor: RealDictCursor, id):
    query = """
            SELECT *
            FROM question
            WHERE id=%(id)s"""
    cursor.execute(query, {'id': id})
    return cursor.fetchone()
Exemple #22
0
def get_user(cursor: RealDictCursor, username):
    cursor.execute(
        """
        SELECT * FROM "user" 
        WHERE username like %(username)s
        """, {'username': username})
    return cursor.fetchone()
Exemple #23
0
def create_board(cursor: RealDictCursor, title) -> list:
    query = """
                INSERT INTO boards (title) values (%s) RETURNING *
                """
    cursor.execute(query, (title, ))
    result = cursor.fetchone()
    return result
Exemple #24
0
def get_user(cursor: RealDictCursor, username):
    query = """
        SELECT * FROM "user"
            WHERE username = %(username)s
        """
    cursor.execute(query, {'username': username})
    return cursor.fetchone()
def add_player_and_scores(cursor: RealDictCursor, player_name: dict):
    query = f"""
        INSERT INTO players ("name", scores)
        VALUES ((%(name)s), 0)
        RETURNING id
        """
    cursor.execute(query, player_name)
    return cursor.fetchone()
Exemple #26
0
def count_answers_for_question(cursor: RealDictCursor, question_id: int):
    cursor.execute(
        """
                        SELECT COUNT(*)
                        FROM answer
                        WHERE question_id = %(q_id)s;
                        """, {'q_id': question_id})
    return cursor.fetchone()
Exemple #27
0
def get_question_owner(cursor: RealDictCursor, question_id: int):
    query = """
    SELECT user_id
    FROM question 
    WHERE id = %(question_id)s
    """
    cursor.execute(query, {'question_id': question_id})
    return cursor.fetchone()
Exemple #28
0
def get_question_owner_based_on_answer(cursor: RealDictCursor, answer_id: int):
    query = """
    SELECT question.user_id
    FROM question JOIN answer ON question.id = answer.question_id
    WHERE answer.id = %(answer_id)s
    """
    cursor.execute(query, {'answer_id': answer_id})
    return cursor.fetchone()
Exemple #29
0
def get_user_by_id(cursor: RealDictCursor, user_id: int):
    query = """
    SELECT u.id, u.email, u.registration_time, u.reputation, COUNT(DISTINCT q.*) AS questions_number, COUNT(DISTINCT a.*) AS answers_number, COUNT(DISTINCT c.*) AS comments_number
    FROM users u LEFT JOIN question q ON u.id = q.user_id LEFT JOIN answer a ON q.user_id = a.user_id LEFT JOIN comment c ON u.id = c.user_id
    WHERE u.id = %(user_id)s GROUP BY u.id ORDER BY u.id;
    """
    cursor.execute(query, {"user_id": user_id})
    return cursor.fetchone()
Exemple #30
0
def get_user_data(cursor: RealDictCursor, email: str):
    cursor.execute(
        f"""
                        SELECT *
                        FROM users
                        WHERE email = (%(email)s);
                   """, {'email': email})
    return cursor.fetchone()