package net.gepafin.tendermanagement.service.impl; import jakarta.servlet.http.HttpServletRequest; import net.gepafin.tendermanagement.config.jwt.TokenProvider; import net.gepafin.tendermanagement.dao.CallDao; import net.gepafin.tendermanagement.entities.CallEntity; import net.gepafin.tendermanagement.entities.UserEntity; import net.gepafin.tendermanagement.enums.CallStatusEnum; import net.gepafin.tendermanagement.model.request.CreateCallRequestStep1; import net.gepafin.tendermanagement.model.request.CreateCallRequestStep2; import net.gepafin.tendermanagement.model.request.UpdateCallRequestStep1; import net.gepafin.tendermanagement.model.response.CallDetailsResponseBean; import net.gepafin.tendermanagement.model.response.CallResponse; import net.gepafin.tendermanagement.service.CallService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; @Service public class CallServiceImpl implements CallService { @Autowired private CallDao callDao; @Autowired private TokenProvider tokenProvider; @Override @Transactional(rollbackFor = Exception.class) public CallResponse createCallStep1(HttpServletRequest request, CreateCallRequestStep1 createCallRequest) { Map userInfo= tokenProvider.getUserInfoAndUserIdFromToken(request); return callDao.createCallStep1(createCallRequest, Long.parseLong(userInfo.get("userId").toString())); } @Override @Transactional(rollbackFor = Exception.class) public CallResponse createCallStep2(HttpServletRequest request, Long callId, CreateCallRequestStep2 createCallRequest) { Map userInfo= tokenProvider.getUserInfoAndUserIdFromToken(request); return callDao.createCallStep2(callId, createCallRequest, Long.parseLong(userInfo.get("userId").toString())); } @Override @Transactional(rollbackFor = Exception.class) public CallResponse updateCallStep1(HttpServletRequest request, Long callId, UpdateCallRequestStep1 updateCallRequest) { Map userInfo= tokenProvider.getUserInfoAndUserIdFromToken(request); return callDao.updateCallStep1(callId, updateCallRequest, Long.parseLong(userInfo.get("userId").toString())); } @Override @Transactional(readOnly = true) public CallResponse getCallById(Long callId) { return callDao.getCallById(callId); } @Override @Transactional(readOnly = true) public List getAllCalls(HttpServletRequest request) { Map userInfo= tokenProvider.getUserInfoAndUserIdFromToken(request); UserEntity user=tokenProvider.validateUser(userInfo); return callDao.getAllCalls(user); } @Override @Transactional(rollbackFor = Exception.class) public CallResponse validateCallData(Long callId) { return callDao.validateCallData(callDao.validateCall(callId)); } @Override public CallEntity getCallEntityById(Long id){ return callDao.getCallEntityById(id); } @Override @Transactional(rollbackFor = Exception.class) public CallResponse updateCallStatus(HttpServletRequest request, Long callId, CallStatusEnum statusReq) { return callDao.updateCallStatus(callId, statusReq); } @Override public CallEntity validateCall(Long callId) { return callDao.validateCall(callId); } }