A self hosted chat application with end-to-end encrypted messaging.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package org.ros.chatto.service;
import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException;
import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.transaction.Transactional;
import org.hibernate.Session; import org.ros.chatto.config.DBInitializerConfig; import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j;
@Service @Slf4j @RequiredArgsConstructor public class DBInitializerService {
private final DBInitializerConfig dbInitializerConfig;
@PersistenceContext private EntityManager entityManager;
@EventListener(ApplicationReadyEvent.class) @Transactional public void doSomethingAfterStartup() throws SQLException, IOException { log.info("Application Started - running initializer service");
final Session session = entityManager.unwrap(Session.class);
session.doWork(connection -> { log.info("Clearing tokens"); clearAllTokens(connection); });
session.doWork(connection -> { log.info("Resetting all user sessions"); resetAllUserSessions(connection); }); }
private void resetAllUserSessions(final Connection connection) throws SQLException { final PreparedStatement preparedStatement = connection .prepareStatement(dbInitializerConfig.getResetSessionsQuery()); preparedStatement.executeUpdate(); }
private void clearAllTokens(final Connection connection) throws SQLException { final PreparedStatement preparedStatement = connection .prepareStatement(dbInitializerConfig.getClearTokensQuery()); preparedStatement.executeUpdate(); }
}
|