82 lines
3.3 KiB
Java
82 lines
3.3 KiB
Java
package net.gepafin.tendermanagement.service.impl;
|
|
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import net.gepafin.tendermanagement.dao.NotificationDao;
|
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
|
import net.gepafin.tendermanagement.enums.NotificationEnum;
|
|
import net.gepafin.tendermanagement.model.request.GlobalFilters;
|
|
import net.gepafin.tendermanagement.model.request.NotificationReq;
|
|
import net.gepafin.tendermanagement.model.request.NotificationRequestBean;
|
|
import net.gepafin.tendermanagement.model.response.NotificationResponse;
|
|
import net.gepafin.tendermanagement.model.response.PageableResponseBean;
|
|
import net.gepafin.tendermanagement.service.NotificationService;
|
|
import net.gepafin.tendermanagement.util.Validator;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.data.domain.Page;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import java.util.List;
|
|
|
|
import static org.hibernate.internal.util.collections.CollectionHelper.listOf;
|
|
|
|
@Service
|
|
@Slf4j
|
|
public class NotificationServiceImpl implements NotificationService {
|
|
|
|
@Autowired
|
|
private NotificationDao notificationDao;
|
|
|
|
@Autowired
|
|
private Validator validator;
|
|
|
|
@Override
|
|
public NotificationResponse sendNotification(Long userId, NotificationReq notificationReq, Long companyId) {
|
|
|
|
log.info("Sending notification to user {} with content: {}", userId, notificationReq.getMessage());
|
|
notificationReq.setUserId(userId);
|
|
notificationReq.setCompanyIds(listOf(companyId));
|
|
return notificationDao.sendNotification(notificationReq);
|
|
}
|
|
|
|
@Override
|
|
public NotificationResponse getNotificationById(HttpServletRequest servletRequest, Long id) {
|
|
|
|
return notificationDao.getNotificationById(id);
|
|
}
|
|
|
|
@Override
|
|
public List<NotificationResponse> getNotificationByUserId(HttpServletRequest servletRequest, Long userId, Long companyId, List<NotificationEnum> statuses) {
|
|
|
|
return notificationDao.getNotificationByUserId(userId, companyId, statuses);
|
|
}
|
|
|
|
@Override
|
|
public NotificationResponse updateNotificationStatus(HttpServletRequest request, Long id, NotificationEnum status) {
|
|
|
|
return notificationDao.updateNotificationStatus(id, status);
|
|
}
|
|
|
|
@Override
|
|
public void deleteNotification(HttpServletRequest request, Long id) {
|
|
|
|
notificationDao.deleteNotification(id);
|
|
return;
|
|
}
|
|
|
|
@Override
|
|
public List<NotificationResponse> getNotificationsByCompanyIdAndUserId(Long userId, Long companyId, List<NotificationEnum> statuses) {
|
|
return notificationDao.getNotificationByCompanyIdAndUserId(userId, companyId, statuses);
|
|
}
|
|
|
|
@Override
|
|
public PageableResponseBean<List<NotificationResponse>> getAllNotification(HttpServletRequest request, Long userId, NotificationRequestBean notificationRequestBean) {
|
|
UserEntity userEntity = validator.validateUser(request);
|
|
return notificationDao.getAllNotification(userId,notificationRequestBean);
|
|
}
|
|
|
|
@Override
|
|
public PageableResponseBean<List<NotificationResponse>> getNotificationsByUserIdAndCompanyIdByPagination(HttpServletRequest request, Long userId, Long companyId, NotificationRequestBean notificationRequestBean) {
|
|
return notificationDao.getNotificationsByUserIdAndCompanyIdByPagination(userId,companyId,notificationRequestBean);
|
|
}
|
|
} |