package cactusServer.models;
import javax.inject.Singleton;
import cactusServer.entities.Account;
import java.util.HashMap;
import java.util.HashSet;
@Singleton
public class Accounts {
private static Accounts theInstance = null;
private HashMap<String, Account> accounts = new HashMap<>();
private HashSet<String> idSet = new HashSet<String>();
private Accounts() {
}
public static Accounts getInstance() {
if (theInstance == null) {
theInstance = new Accounts();
}
return theInstance;
}
public Account createAcount(String userID, String userName, String userPass) {
System.out.println(userName);
if(!idSet.add(userID)) {
return null;
}
Account newAccount = new Account(userName, userPass);
accounts.put(userID, newAccount);
System.out.println(userID);
return newAccount;
}
public Account getAccount(String userID) {
if(idSet.contains(userID)) {
Account editAccount = accounts.get(userID);
return editAccount;
}else {
return null;
}
}
public Account loginAccount(String userID,String userPass) {
if(idSet.contains(userID) && getAccount(userID).getPass().equals(userPass)) {
Accounts.getInstance().getAccount(userID).setLogin(true);
return getAccount(userID);
}else {
return null;
}
}
public String logoutAccount(String userID) {
if(idSet.contains(userID)) {
Accounts.getInstance().getAccount(userID).setLogin(false);
return "success";
}else {
return "null";
}
}
public String deleteAccount(String userID) {
if(idSet.contains(userID)) {
accounts.remove(userID);
idSet.remove(userID);
return "complated remove account";
}else {
return "not exist";
}
}
}