#include "PhoneBook.class.hpp" #include "Contact.class.hpp" PhoneBook::PhoneBook( void ) { this->contact_count = 0; return; } PhoneBook::~PhoneBook( void ) { return; } void PhoneBook::add_contact() { std::string str; int it; this->contact_count++; it = this->contact_count; if (it > 8) it = 1; it--; std::cout << B_CYAN "enter a first name pliz :" << std::endl; while (contact[it].get_first().length() == 0) { std::cout << B_BLUE "-> " RESET; std::getline(std::cin, str); this->contact[it].add_first(str); } std::cout << B_CYAN "enter a last name pliz :" << std::endl; while (contact[it].get_last().length() == 0) { std::cout << B_BLUE "-> " RESET; std::getline(std::cin, str); this->contact[it].add_last(str); } std::cout << B_CYAN "enter a nickname pliz :" << std::endl; while (contact[it].get_nick().length() == 0) { std::cout << B_BLUE "-> " RESET; std::getline(std::cin, str); this->contact[it].add_nick(str); } std::cout << B_CYAN "enter a number pliz :" << std::endl; while (contact[it].get_num().length() == 0) { std::cout << B_BLUE "-> " RESET; std::getline(std::cin, str); this->contact[it].add_num(str); } std::cout << B_CYAN "enter a secret of this contact pliz :" << std::endl; while (contact[it].get_secret().length() == 0) { std::cout << B_BLUE "-> " RESET; std::getline(std::cin, str); this->contact[it].add_secret(str); } } std::string truncate(std::string str, size_t len) { if (str.length() > len) return str.substr(0, len - 1) + "."; return str; } void PhoneBook::print_phonebook() { std::cout << std::endl; int it; it = this->contact_count; if (it > 8) it = 8; it--; std::cout << " ------------------------------------------- " << std::endl; std::cout << "|" << std::setw(10) << "index"; std::cout << "|" << std::setw(10) << "first name"; std::cout << "|" << std::setw(10) << "last name"; std::cout << "|" << std::setw(10) << "nickname"; std::cout << "|" << std::endl; std::cout << " ---------- ---------- ---------- ---------- " << std::endl; for (int i = 0; i <= it; i++) { std::cout << "|" << std::setw(10) << i; std::cout << "|" << std::setw(10) << truncate(contact[i].get_first(), 10); std::cout << "|" << std::setw(10) << truncate(contact[i].get_last(), 10); std::cout << "|" << std::setw(10) << truncate(contact[i].get_nick(), 10); std::cout << "|" << std::endl; } std::cout << " ------------------------------------------- " << std::endl; std::cout << std::endl; } void PhoneBook::print_contact( int id ) { std::cout << std::endl; std::cout << B_CYAN "FIRST NAME : " << RESET << this->contact[id].get_first() << std::endl; std::cout << B_CYAN " LAST NAME : " << RESET << this->contact[id].get_last() << std::endl; std::cout << B_CYAN " NICKNAME : " << RESET << this->contact[id].get_nick() << std::endl; std::cout << B_CYAN " NUMBER : " << RESET << this->contact[id].get_num() << std::endl; std::cout << B_CYAN " SECRET : " << RESET << this->contact[id].get_secret() << std::endl; } void PhoneBook::search_contact() { std::string str; std::stringstream convert; int id; this->print_phonebook(); id = -1; std::cout << std::endl << B_CYAN "choose an index :" << std::endl; while (id < 0 || id > this->contact_count - 1 || id > 7) { std::cout << B_BLUE "-> " RESET; std::getline(std::cin, str); convert << str; convert >> id; if (id < 0 || id > this->contact_count - 1 || id > 7) std::cout << B_RED "sorry, not a valid index" RESET << std::endl; } this->print_contact(id); }