diff --git a/IdentityService/src/main/java/org/informatika/ojek/DAO.java b/IdentityService/src/main/java/org/informatika/ojek/DAO.java index 167c3293ead040536a477f35ea68ef44e642d555..f66866e56af1ef0c35d1b7bfe256d0fde097da44 100644 --- a/IdentityService/src/main/java/org/informatika/ojek/DAO.java +++ b/IdentityService/src/main/java/org/informatika/ojek/DAO.java @@ -264,35 +264,38 @@ public class DAO { return -1; } - public Account userInfo(int userId) throws SQLException { + public Account userInfo(int userId){ String sql = "SELECT * FROM account WHERE id = ?"; - connect(); - PreparedStatement statement = jdbcConnection.prepareStatement(sql); - statement.setInt(1, userId); - ResultSet resultSet = statement.executeQuery(); + try { + connect(); + PreparedStatement statement = jdbcConnection.prepareStatement(sql); + statement.setInt(1, userId); + ResultSet resultSet = statement.executeQuery(); - if (resultSet.next()) { - int id = resultSet.getInt("id"); - String name = resultSet.getString("name"); - String username = resultSet.getString("username"); - String email = resultSet.getString("email"); - String phone = resultSet.getString("phone"); - String photo = resultSet.getString("photo"); - Boolean isDriver = resultSet.getBoolean("is_driver"); + if (resultSet.next()) { + int id = resultSet.getInt("id"); + String name = resultSet.getString("name"); + String username = resultSet.getString("username"); + String email = resultSet.getString("email"); + String phone = resultSet.getString("phone"); + String photo = resultSet.getString("photo"); + Boolean isDriver = resultSet.getBoolean("is_driver"); + + statement.close(); + resultSet.close(); + disconnect(); + + return new Account(id, name, username, email, phone, photo, isDriver); + } statement.close(); resultSet.close(); disconnect(); - - Account account = new Account(id, name, username, email, phone, photo, isDriver); - return account; + } catch (SQLException e) { + e.printStackTrace(); } - statement.close(); - resultSet.close(); - disconnect(); - return null; } diff --git a/IdentityService/src/main/java/org/informatika/ojek/Main.java b/IdentityService/src/main/java/org/informatika/ojek/Main.java index 6989d3c9f6605168aef200e756fba81f4a312494..aaa61f727666bf4f8220c240d36361878514cd29 100644 --- a/IdentityService/src/main/java/org/informatika/ojek/Main.java +++ b/IdentityService/src/main/java/org/informatika/ojek/Main.java @@ -57,10 +57,9 @@ public class Main extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - PrintWriter out = response.getWriter(); Response data; - String dataResponse; + response.setStatus(500); String token = request.getParameter("token"); @@ -68,29 +67,24 @@ public class Main extends HttpServlet { if (token == null) { response.setStatus(500); data = new Response(Response.STATUS_ERROR, null, null, "Wrong parameter!"); - - dataResponse = gson.toJson(data); - out.print(dataResponse); + out.print(gson.toJson(data)); return; } - try { - int userId = DAO.validateToken(token); - Account account = DAO.userInfo(userId); - - data = new Response(Response.STATUS_ERROR, null, account, null); - - dataResponse = gson.toJson(data); - out.print(dataResponse); - } catch (SQLException e) { - e.printStackTrace(); - response.setStatus(500); - data = new Response(Response.STATUS_ERROR, null, null, e.getMessage()); - - dataResponse = gson.toJson(data); - out.print(dataResponse); + // Check if token valid + int userId = DAO.validateToken(token); + if (userId == -1) { + data = new Response(Response.STATUS_ERROR, null, null, "Token is expired!"); + out.print(gson.toJson(data)); + return; } + // Get user info + Account account = DAO.userInfo(userId); + + response.setStatus(200); + data = new Response(Response.STATUS_SUCCESS, null, account, null); + out.print(gson.toJson(data)); }