Esempio n. 1
0
def new_album():
    #проверяем являестя ли введенный год числом
    test_year = album.is_number(request.forms.get("year"))
    if test_year is not False:
        album_data = {
            "year": int(test_year),
            "artist": request.forms.get("artist"),
            "genre": request.forms.get("genre"),
            "album": request.forms.get("album")
        }
        ### проверяем есть ли такой альбом в базе
        if album.find_album(album_data["artist"], album_data["album"]):
            message = "Альбом {} {} найден в базе".format(album_data["artist"], album_data["album"])
            result = HTTPError(409, message)
        else:
            if 0 <= album_data["year"] >= 2100:
                message = "Введены неверные данные поле год допускает значение от 0 до 2100"
                result = HTTPError(409, message)
            elif album_data["artist"].replace(" ", "") == "" or album_data["genre"].replace(" ", "") == "" or album_data["album"].replace(" ", "") == "":
                message = "Введены неверные данные поля артист, жанр или альбом не могут быть пустыми"
                result = HTTPError(409, message)
            else:
                album.album_add(album_data["year"], album_data["artist"], album_data["genre"], album_data["album"])
                result = "Альбом {} {} добавлен в базу".format(album_data["artist"], album_data["album"])
    else:
        message = "Введены неверные данные поле год содержит не числовые значения"
        result = HTTPError(409, message)
    return result
Esempio n. 2
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():
    """
    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 "Данные об альбоме успешно сохранены"
Esempio n. 4
0
def check_album(album_data):
    if not album.find_genre(album_data["genre"]):
        print("Ошибка при вводе жанра")
        print(
            "попробуйте Psychedelic rock, Jazz, Rock and roll, Rhythm and blues, Art rock, Progressive rock"
        )
        return False
    elif album.find_album(album_data["album"]) and album.find(
            album_data["artist"]):
        print("Такой альбом уже есть в базе")
        return False
    elif album.find_album(album_data["album"]) and album.find(
            album_data["artist"]):
        print("Такой альбом уже есть в базе")
        return False
    elif not check_year(album_data["year"]):
        print("Ошибка при вводе года")
        return False
    return True
Esempio n. 5
0
def albums(album_item):
    album_list = album_proc.find_album(album_item)
    result = ''
    if not album_list:
        message = "Альбом {} не найден".format(album_item)
        result = HTTPError(404, message)
    else:
        for album in album_list:
            result += "Информация по альбому {}<br>".format(album.album)
            result += '<br>'
            result += "Год выпуска {}<br>".format(album.year)
            result += "Исполнитель {}<br>".format(album.artist)
            result += "Жанр {}<br>".format(album.genre)
    return result
Esempio n. 6
0
def albums():
    album_data = {
        "year": request.forms.get("year"),
        "artist": request.forms.get("artist"),
        "genre": request.forms.get("genre"),
        "album": request.forms.get("album")
    }
    # ищем альбом с пользовательскими параметрами
    f_album = album.find_album(album_data)
    if f_album:  # вызывается магичесский метод __bool__ класса Album
        message = "Альбом с названием {} {} года выпуска существует".format(
            f_album.album, f_album.year)
        result = HTTPError(409, message)
    else:
        result = save_album(album_data)

    return result
Esempio n. 7
0
def add_album():
    year = request.forms.get("year")

    try:
        year_validation.year_validation(
            year)  #проверяет валидность значения для года

    except Exception:
        return HTTPError(400, 'Некорректное значение для года!')

    else:
        new_album = album.Album(year=year,
                                artist=request.forms.get("artist"),
                                genre=request.forms.get("genre"),
                                album=request.forms.get("album"))

    if not (album.find_album(new_album)):
        album.save(new_album)
    else:
        raise HTTPError(409, f'Альбом {new_album.album} существует')