package cactusServer.resources; import java.util.ArrayList; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import cactusServer.entities.*; import cactusServer.models.Accounts; @Path("/accounts") public class AccountsRest { @PUT @Produces(MediaType.APPLICATION_JSON) public URIAddressedAccount loginAccount(@FormParam("userID") String userID, @FormParam("userPass") String userPass) { URIAddressedAccount session = Accounts.getInstance().loginAccount(userID, userPass); if (session != null) { return session; } else { throw new WebApplicationException(400); } } @POST @Path("/logout") @Produces(MediaType.APPLICATION_JSON) public Account logoutAccount(@FormParam("token") String token) { return Accounts.getInstance().logoutAccount(token); } @POST @Produces(MediaType.APPLICATION_JSON) public URIAddressedAccount createAccount(@FormParam("userID") String userID, @FormParam("userName") String userName, @FormParam("userPass") String userPass) { URIAddressedAccount editAccount = Accounts.getInstance().createAcount(userID, userName, userPass); if (editAccount != null) { return editAccount; } else { throw new WebApplicationException(409); } } @GET @Path("/{uniqueID}") @Produces(MediaType.APPLICATION_JSON) public Account getAccount(@PathParam("uniqueID") String uniqueID) { return Accounts.getInstance().getAccountByuniqueID(uniqueID); } @DELETE @Path("/{uniqueID}") @Produces(MediaType.APPLICATION_JSON) public Account deleteAccount(@PathParam("uniqueID") String uniqueID) { if (Accounts.getInstance().getAccountByuniqueID(uniqueID) != null) { return Accounts.getInstance().deleteAccount(uniqueID); } else { throw new WebApplicationException(400); } } @GET @Produces(MediaType.APPLICATION_JSON) public ArrayList<Account> getAccounts() { return Accounts.getInstance().getAccounts(); } }