Skip to content
Snippets Groups Projects
Commit 2c2e7a91 authored by Paul-Christian Volkmer's avatar Paul-Christian Volkmer
Browse files

Task #3842: Check if session key is allready present in CouchDB

This method uses transaction level READ_COMMITTED.
parent a887d311
Branches
Tags
No related merge requests found
......@@ -27,5 +27,6 @@ public interface ISessionService {
public Session getSession(String keyword);
public Feedback getFeedback(String keyword);
public boolean postFeedback(String keyword, int value);
public boolean sessionKeyAvailable(String keyword);
}
\ No newline at end of file
......@@ -31,6 +31,8 @@ import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.User;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import com.fourspaces.couchdb.Database;
import com.fourspaces.couchdb.Document;
......@@ -160,6 +162,15 @@ public class SessionService implements ISessionService {
return true;
}
@Override
@Transactional(isolation=Isolation.READ_COMMITTED)
public boolean sessionKeyAvailable(String keyword) {
View view = new View("session/by_keyword");
ViewResults results = database.view(view);
return ! results.containsKey(keyword);
}
private String getSessionId(String keyword) {
View view = new View("session/by_keyword");
view.setKey(URLEncoder.encode("\"" + keyword + "\""));
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment