diff --git a/src/main/java/cactusServer/entities/Account.java b/src/main/java/cactusServer/entities/Account.java index b1468ea..f27f98c 100644 --- a/src/main/java/cactusServer/entities/Account.java +++ b/src/main/java/cactusServer/entities/Account.java @@ -2,6 +2,7 @@ public class Account { private String name, pass; + private boolean login = false; public Account(String userName, String userPass) { setName(userName); @@ -23,4 +24,12 @@ public void setPass(String pass) { this.pass = pass; } + + public boolean isLogin() { + return login; + } + + public void setLogin(boolean login) { + this.login = login; + } } diff --git a/src/main/java/cactusServer/models/Accounts.java b/src/main/java/cactusServer/models/Accounts.java index b15060c..092d95b 100644 --- a/src/main/java/cactusServer/models/Accounts.java +++ b/src/main/java/cactusServer/models/Accounts.java @@ -5,11 +5,13 @@ import cactusServer.entities.Account; import java.util.HashMap; +import java.util.HashSet; @Singleton public class Accounts { private static Accounts theInstance = null; private HashMap accounts = new HashMap<>(); + private HashSet idList = new HashSet(); private Accounts() { @@ -24,10 +26,11 @@ public Account createAcount(String userID, String userName, String userPass) { System.out.println(userName); - + if(!idList.add(userID)) { + return null; + } Account newAccount = new Account(userName, userPass); accounts.put(userID, newAccount); - System.out.println(userID); return newAccount; @@ -38,6 +41,15 @@ return editAccount; } + public Account loginAccount(String userID,String userPass) { + return Accounts.getInstance().getAccount(userID); + } + + public String logoutAccount(String userID) { + Accounts.getInstance().getAccount(userID).setLogin(false); + return "success"; + } + public String deleteAccount(String userID) { accounts.remove(userID); return "complated remove account"; diff --git a/src/main/java/cactusServer/resources/AccountsRest.java b/src/main/java/cactusServer/resources/AccountsRest.java index a94dc42..03b283a 100644 --- a/src/main/java/cactusServer/resources/AccountsRest.java +++ b/src/main/java/cactusServer/resources/AccountsRest.java @@ -1,5 +1,7 @@ package cactusServer.resources; +import java.net.URI; + import javax.ws.rs.*; import javax.ws.rs.core.MediaType; @@ -11,15 +13,19 @@ @POST @Path("/login") @Produces(MediaType.APPLICATION_JSON) - public String loginAccount(@QueryParam("userID") String userID, @QueryParam("userPass") String userPass) { - return ""; + public URI loginAccount(@QueryParam("userID") String userID, @QueryParam("userPass") String userPass) { + if(Accounts.getInstance().getAccount(userID).getPass().equals(userPass)) { + return URI.create(userID); + }else { + return URI.create("failed login attempt"); + } } - + @POST @Path("/logout") @Produces(MediaType.APPLICATION_JSON) public String logoutAccount(@QueryParam("userID") String userID) { - return ""; + return Accounts.getInstance().logoutAccount(userID); } @POST