setup session

This commit is contained in:
GME 2019-04-03 15:14:41 +02:00
parent 99a29d8a49
commit 3262d72ec0
6 changed files with 162 additions and 0 deletions

View file

@ -0,0 +1,55 @@
package database.session;
import com.j256.ormlite.field.DatabaseField;
public class Session {
@DatabaseField(generatedId = true)
private int session_id;
@DatabaseField(canBeNull = false)
private int user_id;
@DatabaseField(canBeNull = false)
private long start_session;
@DatabaseField(canBeNull = false)
private long end_session;
public Session(){}
public Session(int user_id, long start_session) {
this.user_id = user_id;
this.start_session = start_session;
}
public int getSession_id() {
return session_id;
}
public void setSession_id(int session_id) {
this.session_id = session_id;
}
public int getUser_id() {
return user_id;
}
public void setUser_id(int user_id) {
this.user_id = user_id;
}
public long getStart_session() {
return start_session;
}
public void setStart_session(long start_session) {
this.start_session = start_session;
}
public long getEnd_session() {
return end_session;
}
public void setEnd_session(long end_session) {
this.end_session = end_session;
}
}

View file

@ -0,0 +1,37 @@
package database.session;
import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.dao.DaoManager;
import com.j256.ormlite.stmt.UpdateBuilder;
import database.DatabaseHelper;
import java.sql.Timestamp;
public class SessionDao {
private DatabaseHelper dbh = new DatabaseHelper();
private Dao<Session, String> sessionDao;
private Dao createSessionDaoConnection(){
try {
return DaoManager.createDao(dbh.setupDatabaseConnection(),Session.class);
}catch (Exception e){
System.out.println(e.getMessage());
return null;
}
}
public int setStartSession(int userId) throws Exception {
sessionDao = createSessionDaoConnection();
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
return sessionDao.updateRaw("INSERT INTO T_SESSION (user_id,start_session) VALUES ("+userId+","+timestamp+") RETURNING session_id");
}
public void setEndSession(int session_id) throws Exception {
sessionDao = createSessionDaoConnection();
UpdateBuilder<Session,String> updateBuilder = sessionDao.updateBuilder();
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
updateBuilder.updateColumnValue("end_session",timestamp);
updateBuilder.where().eq("session_id",session_id);
updateBuilder.update();
}
}

View file

@ -113,6 +113,15 @@ public class UserDao {
return userDao.queryForFirst(preparedQuery); return userDao.queryForFirst(preparedQuery);
} }
public int getUserIdWithHashAndEmail(String userHash, String userEmail) throws Exception {
userDao = createUserDaoConnection();
QueryBuilder<User,String> queryBuilder = userDao.queryBuilder();
queryBuilder.where().eq("user_hash",userHash).and().eq("email",userEmail);
PreparedQuery<User> preparedQuery = queryBuilder.prepare();
User userResponse = userDao.queryForFirst(preparedQuery);
return userResponse.getUserId();
}
public void approveUser (String email) throws Exception { public void approveUser (String email) throws Exception {
userDao = createUserDaoConnection(); userDao = createUserDaoConnection();

View file

@ -0,0 +1,18 @@
package restImplementation;
import database.session.SessionDao;
public class SessionImplementation {
public int startSession(String userHash, String userEmail) throws Exception {
SessionDao sessionDao = new SessionDao();
UserImplementation userImplementation = new UserImplementation();
int userId = userImplementation.getUserId(userHash,userEmail);
return sessionDao.setStartSession(userId);
}
public void endSession(int userId) throws Exception {
SessionDao sessionDao = new SessionDao();
sessionDao.setEndSession(userId);
}
}

View file

@ -80,6 +80,11 @@ public class UserImplementation {
} }
} }
public int getUserId(String userHash, String userEmail) throws Exception{
UserDao userDao = new UserDao();
return userDao.getUserIdWithHashAndEmail(userHash,userEmail);
}
public Map<String,String> userLogger(User user) throws Exception { public Map<String,String> userLogger(User user) throws Exception {
UserDao userDao = new UserDao(); UserDao userDao = new UserDao();

View file

@ -0,0 +1,38 @@
package restService;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import restImplementation.SessionImplementation;
@RestController
@RequestMapping(value = "/api/rest/session")
public class SessionResource {
@RequestMapping(value = "/start", method = RequestMethod.GET, params = {"userHash","userEmail"}, produces = "application/json")
@ResponseStatus(HttpStatus.CREATED)
public ResponseEntity startSession(@RequestParam(value = "userHash") String userHash, @RequestParam(value = "userEmail") String userEmail){
SessionImplementation sessionImplementation = new SessionImplementation();
try {
int session_id = sessionImplementation.startSession(userHash,userEmail);
return ResponseEntity.status(HttpStatus.OK).body("{\"sessionId\":"+session_id+"}");
} catch (Exception e){
StringResponse responseS = new StringResponse(e.getMessage());
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(responseS);
}
}
@RequestMapping(value = "/end", method = RequestMethod.GET, params = {"userId"}, produces = "application/json")
@ResponseStatus(HttpStatus.OK)
public ResponseEntity endSession(@RequestParam(value = "userId") int userId){
SessionImplementation sessionImplementation = new SessionImplementation();
try {
sessionImplementation.endSession(userId);
return ResponseEntity.status(HttpStatus.OK).body("");
} catch (Exception e){
StringResponse responseS = new StringResponse(e.getMessage());
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(responseS);
}
}
}