package com.ejie.ad74a.util;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;

import javax.naming.NamingException;

import org.springframework.jdbc.core.JdbcTemplate;

import com.ejie.ad74a.util.comun.UtilSeguridad;

public abstract class Ad74aDataBaseAudit {

	/**
	 * terminarUsuarioAuditor
	 * 
	 * @param jdbcTemplate JdbcTemplate
	 * @throws SQLException    SQLException
	 * @throws NamingException NamingException
	 * @throws Exception       Exception
	 */
	public static void terminarUsuarioAuditor(JdbcTemplate jdbcTemplate)
			throws SQLException, NamingException, Exception {

		CallableStatement cs = null;
		Connection con = null;

		try {
			con = jdbcTemplate.getDataSource().getConnection();
			cs = con.prepareCall("{CALL SYSAUDITOR.TERMINA_USUARIO()}");
			cs.execute();
		} catch (Exception e) {
			throw e;
		} finally {
			cs.close();
			cs = null;
			con.close();
			con = null;
		}
	}

	/**
	 * identificarUsuarioAuditor
	 * 
	 * @param idUsuario    String
	 * @param jdbcTemplate JdbcTemplate
	 * @throws Exception Exception
	 */
	public static void identificarUsuarioAuditor(JdbcTemplate jdbcTemplate) throws Exception {

		String idUsuario = UtilSeguridad.getInstance().getAuditUserShort();
		CallableStatement cs = null;
		Connection con = null;

		try {
			con = jdbcTemplate.getDataSource().getConnection();
			cs = con.prepareCall("{CALL SYSAUDITOR.IDENTIFICA_USUARIO(?)}");
			cs.setObject(1, idUsuario);
			cs.execute();
		} catch (Exception e) {
			throw e;
		} finally {
			cs.close();
			cs = null;
			con.close();
			con = null;
		}
	}

}
