/src/eu/jlinkeditrdfconverter/dao/UserSessionDAO.java

https://gitlab.com/jlinkedit/jlinkservices · Java · 106 lines · 74 code · 20 blank · 12 comment · 3 complexity · 1061d1f87c45e0f1dc8c2cf78048c29a MD5 · raw file

  1. package eu.jlinkeditrdfconverter.dao;
  2. import java.util.List;
  3. import java.util.UUID;
  4. import org.bson.types.ObjectId;
  5. import org.json.simple.parser.ParseException;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.data.mongodb.core.MongoOperations;
  8. import org.springframework.data.mongodb.core.query.Criteria;
  9. import org.springframework.data.mongodb.core.query.Query;
  10. import org.springframework.stereotype.Repository;
  11. import eu.jlinkeditrdfconverter.entity.UserSessionEntity;
  12. @Repository
  13. public class UserSessionDAO {
  14. @Autowired
  15. private MongoOperations mongoOperations;
  16. public String insert(UserSessionEntity userSession) {
  17. mongoOperations.insert(userSession,UserSessionEntity.class.getSimpleName());
  18. Query query = new Query();
  19. query.addCriteria(Criteria.where("token").is(userSession.getToken()));
  20. UserSessionEntity userSessionResult = mongoOperations.findOne(query, UserSessionEntity.class,UserSessionEntity.class.getSimpleName());
  21. return userSessionResult.get_id().toString();
  22. }
  23. public List<UserSessionEntity> findAll() {
  24. return mongoOperations.findAll(UserSessionEntity.class,UserSessionEntity.class.getSimpleName());
  25. }
  26. public void remove(String token) {
  27. Query query = new Query();
  28. query.addCriteria(Criteria.where("token").is(token));
  29. mongoOperations.remove(query, UserSessionEntity.class,UserSessionEntity.class.getSimpleName());
  30. }
  31. public void remove(UserSessionEntity userSession) {
  32. Query query = new Query();
  33. query.addCriteria(Criteria.where("token").is(userSession.getToken()));
  34. mongoOperations.remove(query, UserSessionEntity.class,UserSessionEntity.class.getSimpleName());
  35. }
  36. public String update(UserSessionEntity userSession) throws ParseException {
  37. if(userSession==null || "".equals(userSession.getToken()) || userSession.get_id()==null){
  38. return null;
  39. }
  40. Query query = new Query();
  41. query.addCriteria(Criteria.where("token").is(userSession.getToken()));
  42. ObjectId id_ = userSession.get_id();
  43. String token = userSession.getToken();
  44. String graph = userSession.getGraphAsJsonStr();
  45. remove(userSession.getToken());
  46. UserSessionEntity newUserSession = new UserSessionEntity();
  47. newUserSession.set_id(id_);
  48. newUserSession.setToken(token);
  49. newUserSession.setGraphAsJsonStr(graph);
  50. insert(newUserSession);
  51. return id_.toString();
  52. }
  53. public UserSessionEntity find(String token){
  54. Query query = new Query();
  55. query.addCriteria(Criteria.where("token").is(token));
  56. UserSessionEntity userSessionResult = mongoOperations.findOne(query, UserSessionEntity.class,UserSessionEntity.class.getSimpleName());
  57. return userSessionResult;
  58. }
  59. public String askNewToken() {
  60. String tokenCandidate = UUID.randomUUID().toString();
  61. UserSessionEntity userSessionResult = null;
  62. while(userSessionResult!=null){
  63. userSessionResult = findUserByCandidateToken(tokenCandidate);
  64. tokenCandidate = UUID.randomUUID().toString();
  65. }
  66. return tokenCandidate;
  67. }
  68. private UserSessionEntity findUserByCandidateToken(String tokenCandidate){
  69. Query query = new Query();
  70. query.addCriteria(Criteria.where("token").is(tokenCandidate));
  71. UserSessionEntity userSessionResult = mongoOperations.findOne(query, UserSessionEntity.class,UserSessionEntity.class.getSimpleName());
  72. return userSessionResult;
  73. }
  74. // public static void main(String[] args) throws Exception {
  75. // ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:SifemCore-applicationContext.xml");
  76. // ISolverDAOService solverDAO = (SolverDAO) ctx.getBean("solverDAO");
  77. //
  78. // List<String> result = solverDAO.findMethodByName("PAK");
  79. // for(String solver:result){
  80. // System.out.println(solver);
  81. // }
  82. //
  83. // System.out.println("DONE");
  84. //
  85. // }
  86. }