Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

/*
* LogServiceImpl.java
* Copyright (c) 2017 Veterans Affairs.
*/
package gov.va.oneconsult.seoc.api.service.impl;

import java.util.ArrayList;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import gov.va.oneconsult.seoc.api.model.ChangeLog;
import gov.va.oneconsult.seoc.api.model.Event;
import gov.va.oneconsult.seoc.api.repository.ChangeLogRepository;
import gov.va.oneconsult.seoc.api.repository.EventRepository;
import gov.va.oneconsult.seoc.api.service.LogService;
import gov.va.oneconsult.seoc.api.service.UserService;
import gov.va.oneconsult.seoc.api.threadlocal.Context;
import gov.va.oneconsult.seoc.api.threadlocal.SeocThreadLocal;
import gov.va.oneconsult.seoc.api.util.ApiUtil;
import gov.va.oneconsult.seoc.api.util.Constants;

/**
* @author AbleVets
*/
@Component
public class LogServiceImpl implements LogService
{
/**
* Logger
*/
public static final Logger logger = LoggerFactory.getLogger(LogServiceImpl.class);

@Autowired
private ChangeLogRepository changeLogRepository;

@Autowired
private EventRepository eventRepository;

@Autowired
private UserService userService;

/**
* {@inheritDoc}
*/
@Override
public Event getEventByAction(String action)
{
return eventRepository.findByAction(action);
}

/**
* {@inheritDoc}
*/
@Override
public ChangeLog saveChangeLog(ChangeLog changeLog)
{
return changeLogRepository.save(changeLog);
}

/**
* {@inheritDoc}
*/
@Override
public void logSeocChanges(int seocId, int seocKey, String action, String comments)
{

logger.info("Logging seoc changes for event " + action);
if (action != null && !action.isEmpty())
{

Event event = getEventByAction(action);

ChangeLog changeLog = new ChangeLog();
if (comments != null && !comments.isEmpty())
{
changeLog.setComments(comments);
} else
{
changeLog.setComments(Constants.EVENT_DEFAULT_COMMENTS);
}
changeLog.setEvent(event);
changeLog.setSeocId(seocId);
changeLog.setSeocKey(seocKey);
changeLog.setUser(userService.getUserByVaNetworkId(getUserIdFromContext()));
changeLog.setEventDate(ApiUtil.today_UTC());

ChangeLog savedLog = saveChangeLog(changeLog);
logger.info("ChangeLog Saved :: " + savedLog.getId() + " SeocId " + savedLog.getSeocId()
+ " SeocKey " + savedLog.getSeocKey() + " User " + savedLog.getUser().toString()
+ " Event:Action " + savedLog.getEvent().getAction() + " Event:Description "
+ savedLog.getEvent().getDescription() + " EventDate " + savedLog.getEventDate()
+ " Comments " + savedLog.getComments());

}
}

/**
* {@inheritDoc}
*/
@Override
public List<ChangeLog> getAllChangeLogs()
{
return (List<ChangeLog>) changeLogRepository.findAll();
}

/**
* {@inheritDoc}
*/
@Override
public List<ChangeLog> getChangeLogBySeocId(int seocId, String eventType)
{
if (seocId > 0)
{
return (List<ChangeLog>) changeLogRepository.findBySeocId(seocId, eventType);
} else
{
return new ArrayList<ChangeLog>();
}
}

/**
* Description: Retrieve user id from the context
*
* @return
*/
private String getUserIdFromContext()
{
Context context = SeocThreadLocal.getContext();

String userId = context.getUserId();

return userId;
}
}