| 77 | String[] apis = { "register user05 qwerty", "login user05 qwerty", "logout user05" }; |
| 78 | implementAPI(apis); |
| 79 | } public static void implementAPI(String[] logs) { |
| 80 | String[] res = new String[logs.length]; |
| 81 | HashMap<String, List<String>> userNamePwdMap = new HashMap<>(); |
| 82 | for (int i = 0; i < logs.length; i++) { |
| 83 | String[] userInfo = logs[i].split(" "); |
| 84 | if (userInfo[0].equalsIgnoreCase("register")) |
| 85 | { |
| 86 | if (userNamePwdMap.containsKey(userInfo[1])) { |
| 87 | res[i] = "Username already exists"; |
| 88 | } |
| 89 | else |
| 90 | { |
| 91 | List<String> list = new ArrayList<>(); |
| 92 | list.add(userInfo[2]); |
| 93 | list.add("logged_out"); |
| 94 | userNamePwdMap.put(userInfo[1], list); |
| 95 | res[i] = "Registered successfully"; |
| 96 | } |
| 97 | } |
| 98 | else |
| 99 | if (userInfo[0].equalsIgnoreCase("login")) |
| 100 | { |
| 101 | if (userNamePwdMap.containsKey(userInfo[1])) { |
| 102 | if (userNamePwdMap.get(userInfo[1]).get(0).equals(userInfo[2]) && |
| 103 | userNamePwdMap.get(userInfo[1]).get(1).equalsIgnoreCase("logged_out")) { |
| 104 | userNamePwdMap.get(userInfo[1]).set(1, "logged_in"); |
| 105 | res[i] = "Logged In Successfully"; |
| 106 | } |
| 107 | else |
| 108 | { |
| 109 | res[i] = "Already Logged In"; |
| 110 | } |
| 111 | } else |
| 112 | { |
| 113 | res[i] = "Login Unsuccessful"; |
| 114 | } |
| 115 | } |
| 116 | else |
| 117 | if (userInfo[0].equalsIgnoreCase("logout")) { |
| 118 | if (userNamePwdMap.containsKey(userInfo[1]) |
| 119 | && userNamePwdMap.get(userInfo[1]).get(1).equalsIgnoreCase("logged_in")) { |
| 120 | userNamePwdMap.get(userInfo[1]).set(1,"logged_out"); |
| 121 | res[i] = "Logged out Successfully"; |
| 122 | } |
| 123 | else |
| 124 | { |
| 125 | res[i] = "Logout Unsuccessful"; |
| 126 | } |
| 127 | } |
| 128 | } |
| 129 | for(int i=0;i< res.length;i++){ |
| 130 | System.out.print(res[i]+","); |
| 131 | } System.out.println(); |
| 132 | } |
| 133 | } |
| 134 | |