Example #1
0
class Crud:
    '''
    Classe que gerencia os dados da aplicação.
    - Adiciona
    - Altera
    - Consulta
    - Remove
    '''
    def __init__(self):
        '''
        Construtor da classe Crud. Quando instânciado, cria uma nova instância de Pessoa.
        '''
        self.p = Pessoa()

    def insert(self, nome, idade):
        '''
        Este método tem como finalidade, adicionar na lista contida dentro do Objeto Pessoa nomes e idades.
        '''
        if not nome and not idade:
            return f'Você deve informar o nome e a idade da pessoa para adicionar na lista.'

        self.p.add_pessoa_list(nome, idade)
        return f'Pessoa adicionada!\nNome: {self.p.nome}\t\tIdade: {self.p.idade}.\n'

    def get_by_name(self, nome):
        '''
        Este método tem como finalidade procurar dentro da lista contida no Objeto Pessoa
        as ocorrencias de um determinado nome e retorna os valores caso encontre.
        '''
        print(f'Procurando em memória o registro pelo \'Nome\' [{nome}]...\n')
        if not nome:
            return 'Você deve informar um nome.'

        for pessoa in self.p.list_pessoas:
            if pessoa['nome'] == nome:
                return f'Registro encontrado!\nNome: {pessoa["nome"]}\t\tIdade: {pessoa["idade"]}.'
            else:
                return 'O nome informado não consta no registro.'

    def get_all(self):
        '''
        Este método tem como finalidade listar todos os registros salvos dentro da lista contida no Objeto Pessoa.
        '''
        print(f'Pessoas registradas em memória:\n')
        content = ''
        for pessoa in self.p.list_pessoas:
            content += f'\t\tNome: {pessoa["nome"]}\t\tIdade: {pessoa["idade"]}\n'

        return content

    def delete(self, nome):
        '''
        Este método tem como finalidade remover a ocorrencia recebida por parâmetro.
        Utiliza como chave de busca para remoção o Nome.
        '''
        if not nome:
            return f'Você deve informar um nome para remover da lista de pessoas.'

        for pessoa in self.p.list_pessoas:

            if pessoa['nome'] == nome:
                list_size_before = len(self.p.list_pessoas)
                self.p.list_pessoas.remove(pessoa)

                if len(self.p.list_pessoas) < list_size_before:
                    return f'Removido o \'Nome\' [{nome}] da lista de pessoas com sucesso.'
                else:
                    return f'Não foi possível remover o \'Nome\' [{nome}] da lista de pessoas.'

    def put(self, nome, novo_nome, nova_idade):
        '''
        Este método tem como finalidade alterar um registro contido na lista contida no Objeto Pessoa.
        Utilizada como chave o Nome e recebe os novos valores de nome e idade.
        É obrigatório passar um valor de nome, para buscas. Um valor de novo_nome para alterar o nome
        buscado e um valor nova_idade para alterar a idade da pessoa buscada.
        '''
        if not nome:
            return f'Você deve informar o \'Nome\' para que seja efetuado a alteração da Pessoa.'
        if not novo_nome:
            return f'Você deve informar um \'Novo Nome\' para que o nome seja modificado.'
        if not nova_idade:
            return f'Você deve informar uma \'Nova Idade\' para que a idade seja modificada.'

        for pessoa in self.p.list_pessoas:
            if pessoa['nome'] == nome:
                print(
                    f'Registro encontrado...\n\t\tNome: {pessoa["nome"]}\t\tIdade: {pessoa["idade"]}'
                )
                pessoa['nome'] = novo_nome
                pessoa['idade'] = nova_idade
                return f'\nRegistro alterado com sucesso!\n\t\tNome: {pessoa["nome"]}\t\tIdade: {pessoa["idade"]}'