Exemple #1
0
def pontos_turisticos_por_nome_logica(ponto, email_usuario,
                                      presenter) -> SearchPointResponse:
    repository = PontoTuristicoRepository()
    ponto = repository.get_ponto_turistico_by_name(ponto)
    if not ponto:
        return presenter(False)
    else:
        return presenter(True, ponto)
Exemple #2
0
def upvote_ponto_logica(nome_ponto, email_usuario,
                        presenter) -> UpvotePointResponse:

    repository = PontoTuristicoRepository()
    point_exists = repository.check_existence_of_the_point(nome_ponto)
    if point_exists:
        new_upvote = repository.register_upvote(nome_ponto)
        return presenter(True, *new_upvote.values())
    else:
        return presenter(False)
Exemple #3
0
def create_new_category_if_not_exist(nome_categoria,
                                     presenter) -> CategoryCreationResponse:
    nome_categoria = nome_categoria.lower().capitalize()
    repository = PontoTuristicoRepository()
    category_exist = repository.check_existence_of_category(nome_categoria)

    if category_exist:
        return presenter(False)
    else:
        new_category = repository.create_category(nome_categoria)
        return presenter(True, *new_category.values())
Exemple #4
0
def comentar_ponto_turistico_logica(nome_ponto, descricao_comentario,
                                    email_usuario,
                                    presenter) -> CommentCreationResponse:
    repository = PontoTuristicoRepository()
    point_exists = repository.check_existence_of_the_point(nome_ponto)
    if point_exists:
        comment = repository.create_comment_about_point(
            email_usuario, nome_ponto, descricao_comentario)
        return presenter(True, *comment.values())
    else:
        return presenter(False)
Exemple #5
0
def pontos_turisticos_5km_logica(latitude_usuario, longitude_usuario,
                                 email_user, presenter) -> Points5kmResponse:
    repository = PontoTuristicoRepository()
    resultado = repository.search_points()
    dado = list()
    for ponto in resultado:
        distancia_km = haversine(
            float(longitude_usuario), float(latitude_usuario),
            float(ponto['longitude']), float(ponto['latitude'])
        )  # aplico a latitude e longitude dos dois pontos na formula de haversine para obter a distancia em km
        if (distancia_km <= 5):
            ponto['distancia em Km'] = round(distancia_km, 2)
            dado.append(ponto)
    if not dado:
        return presenter(False)
    else:
        return presenter(True, dado)
Exemple #6
0
def ver_comentario_ponto_turistico_logica(
        nome_ponto, presenter) -> CommentVisualizationResponse:

    repository = PontoTuristicoRepository()
    point_exist = repository.check_existence_of_the_point(nome_ponto)

    if point_exist:
        comments = repository.search_comments(nome_ponto)
        if not comments:
            return presenter(False, point_exist)
        else:
            list_comments = list(
            )  #os comentários serão inseridos na lista para que retorne com um formato adequado.
            for comment in comments:
                list_comments.append(comment['descricao'])
            return presenter(True, point_exist, list_comments)
    else:
        return presenter(False, point_exist)
Exemple #7
0
def registrar_ponto_turistico_logica(nome_ponto, latitude_ponto,
                                     longitude_ponto, categoria_ponto,
                                     email_usuario,
                                     presenter) -> PointCreationResponse:
    repository = PontoTuristicoRepository()
    point_exists = repository.check_existence_of_the_point(nome_ponto)
    if not point_exists:
        categoria_ponto = categoria_ponto.lower().capitalize()
        category_exist = repository.check_existence_of_category(
            categoria_ponto)
        if category_exist:
            extract_cod_category = int(category_exist['cod'])
            point_created = repository.create_tourist_point_and_upvote(
                nome_ponto, extract_cod_category, latitude_ponto,
                longitude_ponto, email_usuario)
            return presenter(True, category_exist, *point_created.values())
        else:
            return presenter(False, category_exist)
    else:
        return presenter(False, True)
Exemple #8
0
def remover_ponto_favoritado_logica(nome_ponto, email_usuario,
                                    presenter) -> RemoveFavoredResponse:
    repository = PontoTuristicoRepository()
    user_favored_this_point = repository.check_who_favored_point(
        email_usuario, nome_ponto)
    if user_favored_this_point:
        repository = UserRepostory()
        repository.remove_favorited_tourist_spot(email_usuario, nome_ponto)
        return presenter(True)
    else:
        return presenter(False)
Exemple #9
0
def favoritar_ponto_turistico_logica(nome_ponto, email_usuario,
                                     presenter) -> FavoredSpotResponse:
    repository = PontoTuristicoRepository()
    point_exists = repository.check_existence_of_the_point(nome_ponto)
    if point_exists:
        repository = UserRepostory()
        points = repository.search_favorited_spots(email_usuario)
        for ponto in points:
            if ponto['nome'] == nome_ponto:
                return presenter(False, point_exists)

        result = repository.favorite_tourist_spot(email_usuario, nome_ponto)
        if result:
            return presenter(True, point_exists, *result.values())
    else:
        return presenter(False, point_exists)
Exemple #10
0
def ver_todos_pontos_logica(presenter) -> AllPointsResponse:
    repository = PontoTuristicoRepository()
    all_points = repository.search_points()
    return presenter(True, all_points)