GoogleSessionService.java
package com.soen390.backend.service;
import com.soen390.backend.object.GoogleTokenSession;
import org.springframework.stereotype.Component;
import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
@Component
public class GoogleSessionService {
private final ConcurrentHashMap<String, GoogleTokenSession> sessions = new ConcurrentHashMap<>();
public void put(String sessionId, GoogleTokenSession session) {
sessions.put(sessionId, session);
}
public Optional<GoogleTokenSession> get(String sessionId) {
return Optional.ofNullable(sessions.get(sessionId));
}
public void remove(String sessionId) {
if (sessionId == null || sessionId.isBlank()) {
return;
}
sessions.remove(sessionId);
}
public GoogleTokenSession require(String sessionId) {
if (sessionId == null || sessionId.isBlank()) {
throw new IllegalArgumentException("Missing sessionId.");
}
GoogleTokenSession session = sessions.get(sessionId);
if (session == null) {
throw new IllegalStateException("Invalid sessionId (no stored Google session).");
}
return session;
}
}