Beispiel #1
0
def album_new():
    """
        пример запроса
        http -f POST localhost:8090/albums year=2019 artist=Spleen genre=Rock album=NewAlbum
    """
    album_new_album = request.forms.get("album")
    # ищем, есть ли такой альбом в БД или нет
    album_find = album_proc.find_album(album_new_album)
    if album_find:
        message = "Альбом {} уже найден в БД".format(album_new_album)
        HTTPError(409, message)
    else:
        album_data = {
            "year": request.forms.get("year"),
            "artist": request.forms.get("artist"),
            "genre": request.forms.get("genre"),
            "album": album_new_album
        }
        # если получаем сообщение - это сообщение об ошибке, иначе - если получаем пусто - все хорошо
        message = album_proc.add_album(album_data)
        if message:
            HTTPError(409, message)
        else:
            message = 'Запись добавлена'

    return message
def new_album():
    album_data = {
        "year": request.forms.get("year"),
        "artist": request.forms.get("artist"),
        "genre": request.forms.get("genre"),
        "album": request.forms.get("album")
    }
    # Запросим список альбомов этого артиста
    album_list = album.find(album_data["artist"])
    # Получим список названий этих альбомов
    album_names = [album.album for album in album_list]
    # если такой альбом уже есть вернем ошибку
    if album_data["album"] in album_names:
        message = "такой альбом уже существует"
        response = HTTPError(409, message)
    else:  # проверяем данные  на валидность
        if not album.array_valid(album_data):
            message = "Данные введены не корректно"
            response = HTTPError(409, message)
        else:  # проверяем дату на валидность
            if not album.year_valid(album_data['year']):
                message = "Несуществующая дата"
                response = HTTPError(409, message)
            else:  # сохраняем новый альбом и уведомляем пользователя
                new_album = album.add_album(album_data)
                album.save_album(new_album)
                response = "Альбом сохранен в базе данных"
    return response
def new_album():
    """
    POST-запрос. Принимает данные об альбоме и проверяет их. Если такой альбом уже есть в базе данных, 
    то выводит ошибку, если нет, то сохраняет альбом в базу данных.
    """

    album_data = {
        "year": request.forms.get("year"),
        "artist": request.forms.get("artist"),
        "genre": request.forms.get("genre"),
        "album": request.forms.get("album")
    }

    for key, value in album_data.items():
        valid, message = validate_it(key, value)
        if not valid:
            return HTTPError(449, message)

    existing_album = album.find_album(album_data)
    if existing_album:
        return HTTPError(
            409,
            "Данный альбом уже существует в базе данных. Его id - {}.".format(
                existing_album.id))

    added_album = album.add_album(album_data)
    if added_album:
        print("Альбом сохранен в базу данных")
        return "Данные об альбоме успешно сохранены"
Beispiel #4
0
def new_album():
    album_data = {
        "year": request.forms.get("year"),
        "artist": request.forms.get("artist"),
        "genre": request.forms.get("genre"),
        "album": request.forms.get("album")
    }
    # Запросим список альбомов этого артиста
    album_list = album.find(album_data["artist"])
    # Получим список названий этих альбомов
    album_names = [album.album for album in album_list]
    # Если альбом, который хотим добавить, есть в списке, то вернем ошибку
    if album_data["album"] in album_names:
        message = "{} альбом {} уже существует".format(album_data["album"], album_data["artist"])
        result = HTTPError(409, message)
    else:
        if not album.data_valid(album_data):
            message = "Не все требуемые данные были введены."
            response = HTTPError(449, message)

        elif not album.year_valid(album_data["year"]):
            message = "Указанное значение не может быть годом."
            response = HTTPError(400, message)

        else:
            new_album = album.add_album(album_data)
            album.save_album(new_album)
            response = "Альбом успешно сохранен"

    return response
Beispiel #5
0
def add_new_album():
    input_encoding = 'utf8'
    try:
        YEAR_ = int(request.forms.get('year'))
    except:
        YEAR_ = None
    GENRE_ = str(request.forms.get('genre')).strip()
    ARTIST_ = str(request.forms.get('artist')).strip()
    ALBUM_ = str(request.forms.get('album')).strip()
    assert len(ALBUM_) > 0, 'Заполните поле <Название альбома>'
    assert len(ARTIST_) > 0, 'Заполните поле <Артист или группа>'
    assert album.if_not_exist(ARTIST_,
                              ALBUM_), 'Такой альбом группы уже есть в базе'
    DEVNULL_ = album.add_album(YEAR_, ARTIST_, GENRE_, ALBUM_)
    OUTPUT_ = '<P><A HREF="/">Вернуться на Home Page</A></P>'
    OUTPUT_ += 'Альбом <B>' + ARTIST_ + ' -- ' + ALBUM_ + '</B> добавлен в базу.'
    return OUTPUT_
def albums():
    album_data = {
        "year":request.forms.year,
        "artist":request.forms.artist,
        "genre":request.forms.genre,
        "album":request.forms.album
    }
    if not int(album_data["year"]) or int(album_data["year"]) > 2020:
        raise AlbumError("Некорректно указан год")
    elif not isinstance(album_data["artist"], str):
        raise AlbumError("Исполнитель указан некорректно (не является строковым)")
    elif not isinstance(album_data["genre"], str):
        raise AlbumError("Жанр указан некорректно (не является строковым)")
    elif not isinstance(album_data["album"], str):
        raise AlbumError("Альбом указан некорректно (не является строковым)")
    elif album.check_album(album_data):
        message = "Альбом {} исполнителя {} уже есть в базе".format(album_data["album"], album_data["artist"])
        result = HTTPError(409, message)
    else:
        result = album.add_album(album_data)
    return result
Beispiel #7
0
def new_album():
    album = {
        "year": request.forms.get("year"),
        "artist": request.forms.get("artist"),
        "genre": request.forms.get("genre"),
        "album": request.forms.get("album")
    }
    if album["album"] in db.find_albums(album["artist"]):
        message = "Альбом с таким названием уже имеется в базе."
        response = HTTPError(409, message)
    else:
        if not db.data_stack_valid(album):
            message = "Не все требуемые данные были введены."
            response = HTTPError(449, message)
        elif not db.year_valid(album["year"]):
            message = "Указанное значение не может быть годом."
            response = HTTPError(400, message)
        else:
            new_album = db.add_album(album)
            db.save_album(new_album)
            response = "Альбом успешно сохранен."

    return response