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;
}
}