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