Beispiel #1
0
def delete_post(post_id):
    """
    Удаляет в БД открытый на редактирование пост с номером post_id
    :param post_id:
    :return: Словарь {"code_error": "Deleted_post"}
    """
    conn = get_conn_db()
    cur = conn.cursor()
    cur.execute("DELETE FROM post WHERE id = %s", (post_id, ))
    cur.close()
    conn.commit()
    conn.close()

    return json_response(json.dumps({"code_error": "Deleted_post"}))
Beispiel #2
0
def get_author_id(author_id):
    """
    По запросу GET с author_id автора найти его в базе и вернуть словарь с данными
    :param author_id:
    :return: Dictionary author_dic
    """
    conn = get_conn_db()
    cur = conn.cursor()
    cur.execute("SELECT * FROM author WHERE id = %s", (author_id, ))
    auth_cur = cur.fetchone()
    if auth_cur is not None:
        author_dic = tp_to_dict(auth_cur, cur)
        return json_response(json.dumps(author_dic))
    cur.close()
    conn.close()
    return json_response(json.dumps({"author_id": "Not_Found"}))
Beispiel #3
0
def create_author():
    """
        Запросом POST принимаем параметры для нового пользователя
        из request.json и добавляем его в базу
    """
    req = request.json
    username = req["username"]
    password_hash = req["password_hash"]
    conn = get_conn_db()
    cur = conn.cursor()
    cur.execute(
        "INSERT INTO author (username, password) VALUES (%s, %s)",
        (username, password_hash),
    )
    cur.close()
    conn.commit()
    conn.close()

    return json_response(json.dumps({"code_error": "Created_new_author"}))
Beispiel #4
0
def update_post(post_id):
    """
    Записывает в БД измененный  пост с номером post_id
    :param post_id:
    :return:
    """

    req = request.get_json()
    title = req["title"]
    body = req["body"]

    conn = get_conn_db()
    cur = conn.cursor()
    cur.execute("UPDATE post SET title = %s, body = %s WHERE id = %s",
                (title, body, post_id))
    cur.close()
    conn.commit()
    conn.close()

    return json_response(json.dumps({"code_error": "Updated_post"}))
Beispiel #5
0
def get_post_id(post_id):
    """
    Возвращает пост на GET запрос к URL "/posts/<int:post_id>"
    :param post_id:
    :return: json с одной записью
    """
    conn = get_conn_db()
    cur = conn.cursor()
    cur.execute(
        "SELECT post.id, title, body, created, author_id, username"
        " FROM post  JOIN author ON post.author_id = author.id"
        " WHERE post.id = %s",
        (post_id, ),
    )
    cur_post = cur.fetchone()
    post = tp_to_dict(cur_post, cur)
    cur.close()
    conn.commit()
    conn.close()

    return json_response(json.dumps(post, default=convert_dt))
Beispiel #6
0
def get_posts():
    """
    Возвращает все записи базы на запром к УРЛу "/"
    в json.damp изменена выдача datetime на строчное представлние
    заменой default метода на свой в виде вызова строчного
    представлние объекта! Гениальное решение! Надеюсь
    :return: json со всеми записями.
    """
    conn = get_conn_db()
    cur = conn.cursor()

    cur.execute('''
            SELECT post.id, title, body, created, author_id, username
            FROM post JOIN author ON post.author_id = author.id
            ORDER BY created DESC;
            ''')

    post_cur = cur.fetchall()
    tp_bd = list_tp_to_list_dict(post_cur, cur)
    cur.close()
    conn.commit()
    conn.close()
    return json_response(json.dumps(tp_bd, default=convert_dt))
Beispiel #7
0
def create_post():
    """
    Добавляет новый пост в БД, с содержанием, полученным в теле запроса
        title
        body
        author_id
    :return: dictionary {"code_error": "Created_new_post"}
    """
    req = request.json
    title = req["title"]
    body = req["body"]
    author_id = req["author_id"]
    conn = get_conn_db()
    cur = conn.cursor()
    cur.execute(
        "INSERT INTO post (title, body, author_id)"
        " VALUES (%s, %s, %s)",
        (title, body, author_id),
    )
    cur.close()
    conn.commit()
    conn.close()

    return json_response(json.dumps({"code_error": "Created_new_post"}))