diff --git a/homework/password-check/validation.cpp b/homework/password-check/validation.cpp index dfe8d797..4e8b4168 100644 --- a/homework/password-check/validation.cpp +++ b/homework/password-check/validation.cpp @@ -4,14 +4,6 @@ #include // TODO: Put implementations here -enum class ErrorCode{ - Ok, - PasswordNeedsAtLeastNineCharacters, - PasswordNeedsAtLeastOneNumber, - PasswordNeedsAtLeastOneSpecialCharacter, - PasswordNeedsAtLeastOneUppercaseLetter, - PasswordsDoNotMatch -}; bool doPasswordsMatch(std::string& pass1, std::string& pass2) { if (pass1 == pass2) { return true; @@ -39,7 +31,7 @@ ErrorCode checkPasswordRules(std::string pass) { } } -ErrorCode checkPassword(std::string pass, std::string repPass){ +ErrorCode checkPassword(std::string& pass, std::string& repPass){ if (doPasswordsMatch(pass, repPass)){ return checkPasswordRules(pass); } @@ -48,19 +40,21 @@ ErrorCode checkPassword(std::string pass, std::string repPass){ } } -std::string getErrorMessage(int errorNum){ - static const std::vector errorMessages = { - "Ok", - "Password needs to have at least nine characters", - "Password needs to have at least one number", - "Password needs to have at least one special character", - "Password needs to have at least one uppercase letter", - "Passwords do not match", - }; - if (errorNum >= 0 && errorNum <= static_cast(errorMessages.size())){ - return errorMessages[errorNum]; +std::string getErrorMessage(ErrorCode& errorNum){ + switch(errorNum){ + case ErrorCode::Ok: + return "Ok"; + case ErrorCode::PasswordNeedsAtLeastNineCharacters: + return "Password needs to have at least nine characters"; + case ErrorCode::PasswordNeedsAtLeastOneNumber: + return "Password needs to have at least one number"; + case ErrorCode::PasswordNeedsAtLeastOneSpecialCharacter: + return "Password needs to have at least one special character"; + case ErrorCode::PasswordNeedsAtLeastOneUppercaseLetter: + return "Password needs to have at least one uppercase letter"; + case ErrorCode::PasswordsDoNotMatch: + return "Passwords do not match"; + default: + return "Unknown error"; } - else{ - return "Unknown error"; - } -} \ No newline at end of file +} diff --git a/homework/password-check/validation.hpp b/homework/password-check/validation.hpp index 9577c7d8..ac6536c8 100644 --- a/homework/password-check/validation.hpp +++ b/homework/password-check/validation.hpp @@ -11,8 +11,8 @@ enum class ErrorCode{ PasswordNeedsAtLeastOneUppercaseLetter, PasswordsDoNotMatch }; -std::string getErrorMessage(int errorNum); +std::string getErrorMessage(ErrorCode& errorNum); bool doPasswordsMatch(std::string& pass1, std::string& pass2); ErrorCode checkPasswordRules(std::string pass); -ErrorCode checkPassword(std::string pass, std::string repPass); +ErrorCode checkPassword(std::string& pass, std::string& repPass); bool checkSpecialChar(std::string& pass); \ No newline at end of file