-
-
Notifications
You must be signed in to change notification settings - Fork 0
crud
Roland Schuller edited this page Apr 4, 2019
·
1 revision
Create, Read, Update, Delete
This is mostly done on Objects. Here is a Helper that makes it easier:
// Get User data (POJO Getter)
public class GetUser {
private final String name;
private final String login;
private final boolean active;
private final int level;
public GetUser(User user) {
this.name=user.getName();
this.login=user.getLogin();
this.active=user.isActive();
this.level=user.getLevel();
}
public String getName() {
return name;
}
public String getLogin() {
return login;
}
public boolean isActive() {
return active;
}
public int getLevel() {
return level;
}
}
// Update or Create a User
public class PutUser {
private String name;
private String login;
private String password;
private Boolean active;
private Integer level;
public void setName(String name) {
this.name = name;
}
public void setLogin(String login) {
this.login = login;
}
public void setPassword(String password) {
this.password = password;
}
public void setActive(Boolean active) {
this.active = active;
}
public void setLevel(Integer level) {
this.level = level;
}
public void toUser(User user)
{
if (name!=null) user.setName(name);
if (login!=null) user.setLogin(login);
if (password!=null) user.setPasswd(password);
if (active!=null) user.setActive(active);
if (level!=null) user.setLevel(level);
}
}
// The Helper (Simplified)
public class CRUDUser extends JsonCRUDHelper<PutUser> {
public CRUDUser(String entry, RestPath path) {
super(entry, path, PutUser.class);
Documentation(GetUser.class, PutUser.class, PutUser.class, "User");
}
@Override
public void addNewItem(Conversion conversion, Map<String, String> UrlParameter, PutUser data) {
User user = new User();
data.toUser(user);
Database.getDATABASE().getUserDao().createOrUpdate(user);
conversion.getResponse().setData(new GetUser(user));
conversion.getResponse().setStatus(HttpStatus.Created);
}
@Override
public void getSingeItem(Conversion conversion, Map<String, String> UrlParameter, String id) {
User user = null;
user = getUser(UrlParameter);
if (user == null) {
conversion.getResponse().setStatus(HttpStatus.NotFound);
} else {
conversion.getResponse().setData(new GetUser(user));
}
}
@Override
public void getAllItem(Conversion conversion, Map<String, String> UrlParameter) {
List<GetUser> gf = new ArrayList<>();
User user1=new User();
for (User user : Database.getDATABASE().getUserDao().queryForMatching(user1)) {
gf.add(new GetUser(user));
}
conversion.getResponse().setData(gf);
}
@Override
public void updateItem(Conversion conversion, Map<String, String> UrlParameter, PutUser data, String id) {
User user = getUser(UrlParameter);
data.toUser(user);
if (user != null) {
Database.getDATABASE().getUserDao().createOrUpdate(user);
conversion.getResponse().setData(new GetUser(user));
} else {
conversion.getResponse().setStatus(HttpStatus.NotFound);
}
}
@Override
public void deleteItem(Conversion conversion, Map<String, String> UrlParameter, String id) {
User user = getUser(UrlParameter);
if (user != null) {
Database.getDATABASE().getUserDao().delete(user);
conversion.getResponse().setData("OK");
} else {
conversion.getResponse().setStatus(HttpStatus.NotFound);
}
}
public static User getUser(Map<String, String> UrlParameter) throws SQLException {
User user = Database.getDATABASE().getUserDao().queryForId(Integer.parseInt(UrlParameter.get("id")));
return user;
}
}
// User the User CRUD helper
CRUDUser userHelper=new CRUDUser("user", server.getPath("/user"));
GET /user -> Get All
GET /user/1 -> Get User (id=1)
PUT or POST /user -> New
PUT or POST /user/1 -> Update User (id=1)
DELETE /user/1 -> Delete User (id=1)