diff --git a/settings.gradle b/settings.gradle index 096502d..e68a404 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -rootProject.name = 'server' +rootProject.name = 'amaryllis' diff --git a/src/main/java/org/ntlab/amaryllis/server/entities/SignUpJson.java b/src/main/java/org/ntlab/amaryllis/server/entities/SignUpJson.java new file mode 100644 index 0000000..9a63106 --- /dev/null +++ b/src/main/java/org/ntlab/amaryllis/server/entities/SignUpJson.java @@ -0,0 +1,22 @@ +package org.ntlab.amaryllis.server.entities; + +public class SignUpJson { + private String message; + private String uid; + + public String getMessage() { + return message; + } + + public String getUid() { + return uid; + } + + public void setMessage(String message) { + this.message = message; + } + + public void setUid(String uid) { + this.uid = uid; + } +} diff --git a/src/main/java/org/ntlab/amaryllis/server/models/Accounts.java b/src/main/java/org/ntlab/amaryllis/server/models/Accounts.java index 5637e21..3eb5348 100644 --- a/src/main/java/org/ntlab/amaryllis/server/models/Accounts.java +++ b/src/main/java/org/ntlab/amaryllis/server/models/Accounts.java @@ -4,10 +4,12 @@ import org.ntlab.amaryllis.server.entities.Account; import java.util.ArrayList; +import java.util.HashMap; public class Accounts { private static Accounts theInstance = null; private ArrayList accounts = new ArrayList(); + private HashMap accountHashMap=new HashMap<>(); public static Accounts getInstance() { if (theInstance == null) { @@ -27,9 +29,16 @@ } return null; } + public Account getAccountByName(String name){ + for (Account a : accounts) { + if (a.getName().equals(name)) return a; + } + return null; + + } public boolean isRegisteredName(String name) { - boolean response; + for (Account a : accounts) { if (a.getName().equals(name)) return true; } @@ -42,6 +51,8 @@ public void addAccount(Account account) { accounts.add(account); + + accountHashMap.put(account.getUid(),account); } public Account createAccount(String name, String password) { @@ -51,7 +62,12 @@ } public void removeAccount(String uid) { - + int index=0; + for(Account a:accounts){ + if(a.getUid().equals(uid))accounts.remove(index); + index++; + } + accountHashMap.remove(uid); } diff --git a/src/main/java/org/ntlab/amaryllis/server/resources/AccountsRest.java b/src/main/java/org/ntlab/amaryllis/server/resources/AccountsRest.java index 1b79454..baf59ce 100644 --- a/src/main/java/org/ntlab/amaryllis/server/resources/AccountsRest.java +++ b/src/main/java/org/ntlab/amaryllis/server/resources/AccountsRest.java @@ -48,16 +48,17 @@ @POST @Produces(MediaType.APPLICATION_JSON) - public HashMap createAccount(@FormParam("name") String name, @FormParam("password") String password) { + public SignUpJson createAccount(@FormParam("name") String name, @FormParam("password") String password) { if (accounts.isRegisteredName(name)) { throw new WebApplicationException(400); } else { Account newAccount = accounts.createAccount(name, password); - HashMap response=new HashMap<>(); - response.put("message","success"); - response.put("uid",newAccount.getUid()); + SignUpJson response=new SignUpJson(); + response.setMessage("success"); + response.setUid(newAccount.getUid()); + return response; // // return new AbstractJson() { @@ -76,6 +77,22 @@ } + @PUT + @Produces(MediaType.APPLICATION_JSON) + public LoginJson loginByName(@FormParam("name") String name, @FormParam("password") String password) { + Account account = accounts.getAccountByName(name); + + if (password.equals(account.getPassword())) { + + account.setToken(UUID.randomUUID().toString()); + LoginJson loginJson=new LoginJson("success"); + return loginJson; + + } else { + throw new WebApplicationException(400); + } + } + @Path("/{uid}/login") @PUT @Produces(MediaType.APPLICATION_JSON)