Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
run: mvn -B package --file pom.xml

- name: Upload WAR file as artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: MMU-API
path: target/mmuapi-v1.0.war
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.http.HttpEntity;
Expand All @@ -38,26 +39,37 @@
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import com.google.gson.Gson;
import com.iemr.mmu.utils.CookieUtil;

import jakarta.servlet.http.HttpServletRequest;

@Service
@PropertySource("classpath:application.properties")
public class CSCarestreamServiceImpl implements CSCarestreamService {
private final Logger logger = LoggerFactory.getLogger(this.getClass().getName());
@Value("${carestreamOrderCreateURL}")
private String carestreamOrderCreateURL;
@Autowired
private CookieUtil cookieUtil;

@Override
public int createMamographyRequest(ArrayList<Object[]> benDataForCareStream, long benRegID, long benVisitID,
String Authorization) {
int responseData = 0;
RestTemplate restTemplate = new RestTemplate();
HttpServletRequest requestHeader = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
.getRequest();
String jwtTokenFromCookie = cookieUtil.getJwtTokenFromCookie(requestHeader);
try {
// HttpHeaders headers = new HttpHeaders();
MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
headers.add("Content-Type", "application/json");
headers.add("AUTHORIZATION", Authorization);
headers.add("Cookie", "Jwttoken=" + jwtTokenFromCookie);
String requestOBJ = getOrderCreationRequestOBJ(benDataForCareStream, benRegID, benVisitID);

HttpEntity<Object> request = new HttpEntity<Object>(requestOBJ, headers);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import com.google.gson.Gson;
import com.google.gson.JsonElement;
Expand Down Expand Up @@ -69,10 +71,13 @@
import com.iemr.mmu.repo.quickConsultation.PrescriptionDetailRepo;
import com.iemr.mmu.service.benFlowStatus.CommonBenStatusFlowServiceImpl;
import com.iemr.mmu.service.snomedct.SnomedServiceImpl;
import com.iemr.mmu.utils.CookieUtil;
import com.iemr.mmu.utils.exception.IEMRException;
import com.iemr.mmu.utils.mapper.InputMapper;
import com.iemr.mmu.utils.mapper.OutputMapper;

import jakarta.servlet.http.HttpServletRequest;

/***
*
* @author NE298657
Expand Down Expand Up @@ -106,6 +111,8 @@ public class CommonDoctorServiceImpl {
private CommonBenStatusFlowServiceImpl commonBenStatusFlowServiceImpl;

private BeneficiaryFlowStatusRepo beneficiaryFlowStatusRepo;
@Autowired
private CookieUtil cookieUtil;

@Autowired
public void setSnomedServiceImpl(SnomedServiceImpl snomedServiceImpl) {
Expand Down Expand Up @@ -899,9 +906,13 @@ public int callTmForSpecialistSlotBook(TcSpecialistSlotBookingRequestOBJ tcSpeci
String requestOBJ = OutputMapper.gson().toJson(tcSpecialistSlotBookingRequestOBJ);

RestTemplate restTemplate = new RestTemplate();
HttpServletRequest requestHeader = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
.getRequest();
String jwtTokenFromCookie = cookieUtil.getJwtTokenFromCookie(requestHeader);
MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
headers.add("Content-Type", "application/json");
headers.add("AUTHORIZATION", Authorization);
headers.add("Cookie", "Jwttoken=" + jwtTokenFromCookie);
HttpEntity<Object> request = new HttpEntity<Object>(requestOBJ, headers);
ResponseEntity<String> response = restTemplate.exchange(tcSpecialistSlotBook, HttpMethod.POST, request,
String.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import com.google.gson.Gson;
import com.google.gson.JsonArray;
Expand All @@ -76,10 +78,13 @@
import com.iemr.mmu.service.ncdscreening.NCDScreeningServiceImpl;
import com.iemr.mmu.service.pnc.PNCServiceImpl;
import com.iemr.mmu.service.quickConsultation.QuickConsultationServiceImpl;
import com.iemr.mmu.utils.CookieUtil;
import com.iemr.mmu.utils.AESEncryption.AESEncryptionDecryption;
import com.iemr.mmu.utils.exception.IEMRException;
import com.iemr.mmu.utils.mapper.InputMapper;

import jakarta.servlet.http.HttpServletRequest;

@Service
@PropertySource("classpath:application.properties")
public class CommonServiceImpl implements CommonService {
Expand Down Expand Up @@ -124,6 +129,8 @@ public class CommonServiceImpl implements CommonService {

@Autowired
private EmployeeSignatureRepo employeeSignatureRepo;
@Autowired
private CookieUtil cookieUtil;

@Autowired
public void setNcdScreeningServiceImpl(NCDScreeningServiceImpl ncdScreeningServiceImpl) {
Expand Down Expand Up @@ -634,6 +641,12 @@ public ArrayList<String> getTmCaseSheet(BeneficiaryFlowStatus TmBenFlowOBJ, Bene
tmReqObj.put("beneficiaryRegID", String.valueOf(TmBenFlowOBJ.getBeneficiaryRegID()));

logger.info("TM print data request obj - " + new Gson().toJson(tmReqObj));
HttpServletRequest requestHeader = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
.getRequest();
String jwtTokenFromCookie = cookieUtil.getJwtTokenFromCookie(requestHeader);
MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();

headers.add("Cookie", "Jwttoken=" + jwtTokenFromCookie);

// get TM case sheet by passing TM details
ResponseEntity<String> response = restTemplatePost(tmCentralServer, Authorization, new Gson().toJson(tmReqObj));
Expand Down Expand Up @@ -699,6 +712,11 @@ public String getCaseSheetFromCentralServer(String mmuBenFlowReq, String authCen
String suspectedDisease = null;
int updated = 0;
int allDataUpdated = 0;
HttpServletRequest requestHeader = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
.getRequest();
String jwtTokenFromCookie = cookieUtil.getJwtTokenFromCookie(requestHeader);
MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
headers.add("Cookie", "Jwttoken=" + jwtTokenFromCookie);

ResponseEntity<String> response = restTemplatePost(mmuCentralServer, authCentralServer, mmuBenFlowReq);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,20 @@
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import com.google.gson.Gson;
import com.iemr.mmu.data.syncActivity_syncLayer.MasterDownloadDataDigester;
import com.iemr.mmu.data.syncActivity_syncLayer.SyncDownloadMaster;
import com.iemr.mmu.data.syncActivity_syncLayer.TempVan;
import com.iemr.mmu.repo.syncActivity_syncLayer.SyncDownloadMasterRepo;
import com.iemr.mmu.repo.syncActivity_syncLayer.TempVanRepo;
import com.iemr.mmu.utils.CookieUtil;
import com.iemr.mmu.utils.mapper.InputMapper;

import jakarta.servlet.http.HttpServletRequest;

@Service
@PropertySource("classpath:application.properties")
public class DownloadDataFromServerImpl implements DownloadDataFromServer {
Expand All @@ -65,6 +70,8 @@ public class DownloadDataFromServerImpl implements DownloadDataFromServer {
private DataSyncRepository dataSyncRepository;
@Autowired
private TempVanRepo tempVanRepo;
@Autowired
private CookieUtil cookieUtil;

// ben gen URL
@Value("${benGenUrlCentral}")
Expand Down Expand Up @@ -178,11 +185,15 @@ private int downloadDataFromServer(SyncDownloadMaster syncDownloadMaster, String

// initializing RestTemplate
RestTemplate restTemplate = new RestTemplate();
HttpServletRequest requestHeader = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
.getRequest();
String jwtTokenFromCookie = cookieUtil.getJwtTokenFromCookie(requestHeader);

// Multivalue map for headers with content-type and auth key
MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
headers.add("Content-Type", "application/json");
headers.add("AUTHORIZATION", ServerAuthorization);
headers.add("Cookie", "Jwttoken=" + jwtTokenFromCookie);
HttpEntity<Object> request = new HttpEntity<Object>(syncDownloadMaster, headers);

// Call rest-template to call API to download master data for given table
Expand Down Expand Up @@ -331,11 +342,15 @@ public int callCentralAPIToGenerateBenIDAndimportToLocal(String requestOBJ, Stri
int i = 0;
// Rest template
RestTemplate restTemplate = new RestTemplate();
HttpServletRequest requestHeader = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
.getRequest();
String jwtTokenFromCookie = cookieUtil.getJwtTokenFromCookie(requestHeader);

// Multivalue map for headers with content-type and auth key
MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
headers.add("Content-Type", "application/json");
headers.add("AUTHORIZATION", ServerAuthorization);
headers.add("Cookie", "Jwttoken=" + jwtTokenFromCookie);
HttpEntity<Object> request = new HttpEntity<Object>(requestOBJ, headers);

// Call rest-template to call central API to generate UNIQUE ID at central
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import com.iemr.mmu.data.syncActivity_syncLayer.Indent;
import com.iemr.mmu.data.syncActivity_syncLayer.IndentIssue;
Expand All @@ -49,8 +51,11 @@
import com.iemr.mmu.repo.syncActivity_syncLayer.IndentRepo;
import com.iemr.mmu.repo.syncActivity_syncLayer.ItemStockEntryRepo;
import com.iemr.mmu.repo.syncActivity_syncLayer.StockTransferRepo;
import com.iemr.mmu.utils.CookieUtil;
import com.iemr.mmu.utils.mapper.InputMapper;

import jakarta.servlet.http.HttpServletRequest;

@Service
@PropertySource("classpath:application.properties")
public class DownloadDataFromServerTransactionalImpl implements DownloadDataFromServerTransactional {
Expand All @@ -73,6 +78,8 @@ public class DownloadDataFromServerTransactionalImpl implements DownloadDataFrom
private StockTransferRepo stockTransferRepo;
@Autowired
private ItemStockEntryRepo itemStockEntryRepo;
@Autowired
private CookieUtil cookieUtil;

public int downloadTransactionalData(int vanID, String ServerAuthorization) throws Exception {
JSONObject obj;
Expand Down Expand Up @@ -233,13 +240,17 @@ private JSONObject downloadDataFromCentral(String schemaName, String tableName,
if (facilityID != null) {

RestTemplate restTemplate = new RestTemplate();
HttpServletRequest requestHeader = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
.getRequest();
String jwtTokenFromCookie = cookieUtil.getJwtTokenFromCookie(requestHeader);
SyncUploadDataDigester syncUploadDataDigester = new SyncUploadDataDigester(schemaName, tableName,
Comment on lines +243 to 246
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Missing error handling for RequestContextHolder.

The current implementation assumes RequestContextHolder.getRequestAttributes() will never return null, which could happen in non-HTTP contexts (background jobs, scheduled tasks, etc.).

Add null check to prevent NullPointerException:

- HttpServletRequest requestHeader = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
-         .getRequest();
- String jwtTokenFromCookie = cookieUtil.getJwtTokenFromCookie(requestHeader);
+ ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+ String jwtTokenFromCookie = null;
+ if (requestAttributes != null) {
+     HttpServletRequest requestHeader = requestAttributes.getRequest();
+     jwtTokenFromCookie = cookieUtil.getJwtTokenFromCookie(requestHeader);
+ }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
HttpServletRequest requestHeader = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
.getRequest();
String jwtTokenFromCookie = cookieUtil.getJwtTokenFromCookie(requestHeader);
SyncUploadDataDigester syncUploadDataDigester = new SyncUploadDataDigester(schemaName, tableName,
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
String jwtTokenFromCookie = null;
if (requestAttributes != null) {
HttpServletRequest requestHeader = requestAttributes.getRequest();
jwtTokenFromCookie = cookieUtil.getJwtTokenFromCookie(requestHeader);
}
SyncUploadDataDigester syncUploadDataDigester = new SyncUploadDataDigester(schemaName, tableName,

facilityID);

// Multivalue map for headers with content-type and auth key
MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
headers.add("Content-Type", "application/json");
headers.add("AUTHORIZATION", ServerAuthorization);
headers.add("Cookie", "Jwttoken=" + jwtTokenFromCookie);
HttpEntity<Object> request = new HttpEntity<Object>(syncUploadDataDigester, headers);

// Call rest-template to call API to download master data for given table
Expand All @@ -263,12 +274,16 @@ private int updateProcessedFlagToCentral(String schemaName, String tableName, Li

int result = 0;
RestTemplate restTemplate = new RestTemplate();
HttpServletRequest requestHeader = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
.getRequest();
String jwtTokenFromCookie = cookieUtil.getJwtTokenFromCookie(requestHeader);
SyncUploadDataDigester syncUploadDataDigester = new SyncUploadDataDigester(schemaName, tableName, ids);

// Multivalue map for headers with content-type and auth key
MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
headers.add("Content-Type", "application/json");
headers.add("AUTHORIZATION", ServerAuthorization);
headers.add("Cookie", "Jwttoken=" + jwtTokenFromCookie);
HttpEntity<Object> request = new HttpEntity<Object>(syncUploadDataDigester, headers);

// Call rest-template to call API to download master data for given table
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
Expand All @@ -49,6 +51,9 @@
import com.iemr.mmu.repo.login.MasterVanRepo;
import com.iemr.mmu.repo.syncActivity_syncLayer.DataSyncGroupsRepo;
import com.iemr.mmu.repo.syncActivity_syncLayer.SyncUtilityClassRepo;
import com.iemr.mmu.utils.CookieUtil;

import jakarta.servlet.http.HttpServletRequest;

/***
*
Expand Down Expand Up @@ -79,6 +84,8 @@ public class UploadDataToServerImpl implements UploadDataToServer {

@Autowired
private SyncUtilityClassRepo syncutilityClassRepo;
@Autowired
private CookieUtil cookieUtil;

// batch size for data upload
// private static final int BATCH_SIZE = 30;
Expand Down Expand Up @@ -342,6 +349,9 @@ public String syncDataToServer(int vanID, String schemaName, String tableName, S
vanID, schemaName, tableName, vanAutoIncColumnName, serverColumns, user);

RestTemplate restTemplate = new RestTemplate();
HttpServletRequest requestHeader = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
.getRequest();
String jwtTokenFromCookie = cookieUtil.getJwtTokenFromCookie(requestHeader);

Integer facilityID = masterVanRepo.getFacilityID(vanID);
logger.debug("Fetched facilityID for vanID {}: {}", vanID, facilityID);
Expand All @@ -367,6 +377,7 @@ public String syncDataToServer(int vanID, String schemaName, String tableName, S
MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
headers.add("Content-Type", "application/json");
headers.add("AUTHORIZATION", Authorization);
headers.add("Cookie", "Jwttoken=" + jwtTokenFromCookie);
HttpEntity<Object> request = new HttpEntity<Object>(requestOBJ, headers);
logger.info("Before Data sync upload Url" + dataSyncUploadUrl);
ResponseEntity<String> response = restTemplate.exchange(dataSyncUploadUrl, HttpMethod.POST, request,
Expand Down
Loading
Loading