Skip to content
Closed
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: 2 additions & 0 deletions src/main/environment/common_ci.properties
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,5 @@ logging.file.name=@env.MMU_API_LOGGING_FILE_NAME@

springdoc.api-docs.enabled=@env.SWAGGER_DOC_ENABLED@
springdoc.swagger-ui.enabled=@env.SWAGGER_DOC_ENABLED@
cors.allowed-origins=@CORS_ALLOWED_ORIGINS@

3 changes: 2 additions & 1 deletion src/main/environment/common_example.properties
Original file line number Diff line number Diff line change
Expand Up @@ -99,4 +99,5 @@ getServerCredentialURL=http://10.208.122.34:1040/mmuapi-v1.0/fileSyncController/
spring.redis.host=localhost
jwt.secret=my-32-character-ultra-secure-and-ultra-long-secret
logging.path=logs/
logging.file.name=logs/mmu-api.log
logging.file.name=logs/mmu-api.log
cors.allowed-origins=http://localhost:*
26 changes: 26 additions & 0 deletions src/main/java/com/iemr/mmu/config/CorsConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.iemr.mmu.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class CorsConfig implements WebMvcConfigurer {

@Value("${cors.allowed-origins}")
private String allowedOrigins;

@Override
public void addCorsMappings(CorsRegistry registry) {
System.out.print(allowedOrigins);
registry.addMapping("/**")
.allowedOriginPatterns(allowedOrigins.split(","))
Comment on lines +17 to +18
Copy link

Choose a reason for hiding this comment

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

πŸ› οΈ Refactor suggestion

Add validation and improve origin parsing.

The current implementation lacks null checking and proper handling of whitespace in the comma-separated origins list.

-        registry.addMapping("/**")
-				.allowedOriginPatterns(allowedOrigins.split(","))
+        if (allowedOrigins != null && !allowedOrigins.trim().isEmpty()) {
+            String[] origins = allowedOrigins.split(",");
+            for (int i = 0; i < origins.length; i++) {
+                origins[i] = origins[i].trim();
+            }
+            registry.addMapping("/**")
+                    .allowedOriginPatterns(origins)

Continue with the rest of the configuration after this validation.

Committable suggestion skipped: line range outside the PR's diff.

πŸ€– Prompt for AI Agents
In src/main/java/com/iemr/mmu/config/CorsConfig.java around lines 17 to 18, add
validation to check if allowedOrigins is null or empty before splitting. Trim
whitespace from each origin after splitting the comma-separated string to ensure
clean origin patterns. Then pass the cleaned list to allowedOriginPatterns.
Continue with the rest of the CORS configuration as before.

.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
.allowedHeaders("*")
.exposedHeaders("Authorization", "Jwttoken") // Explicitly expose headers if needed
.allowCredentials(true)
.maxAge(3600)
;
}
}
30 changes: 6 additions & 24 deletions src/main/java/com/iemr/mmu/controller/anc/ANCController.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.repository.query.Param;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
Expand All @@ -42,28 +41,22 @@

import io.swagger.v3.oas.annotations.Operation;


/**
* @Objective Saving ANC data for Nurse and Doctor.
*/

@CrossOrigin
@RestController
@RequestMapping(value = "/ANC", headers = "Authorization", consumes = "application/json", produces = "application/json")
public class ANCController {
private Logger logger = LoggerFactory.getLogger(this.getClass().getSimpleName());
@Autowired
private ANCService ancService;



/**
* @Objective Save ANC data for nurse.
* @param JSON requestObj
* @return success or failure response
*/

@CrossOrigin
@Operation(summary = "Save ANC nurse data")
@PostMapping(value = { "/save/nurseData" })
public String saveBenANCNurseData(@RequestBody String requestObj) {
Expand Down Expand Up @@ -96,7 +89,6 @@ public String saveBenANCNurseData(@RequestBody String requestObj) {
* @param JSON requestObj
* @return success or failure response
*/
@CrossOrigin
@Operation(summary = "Save ANC doctor data")
@PostMapping(value = { "/save/doctorData" })
public String saveBenANCDoctorData(@RequestBody String requestObj,
Expand All @@ -122,7 +114,6 @@ public String saveBenANCDoctorData(@RequestBody String requestObj,
return response.toString();
}

@CrossOrigin()
@Operation(summary = "Get beneficiary visit details from nurse ANC")
@PostMapping(value = { "/getBenVisitDetailsFrmNurseANC" })
@Transactional(rollbackFor = Exception.class)
Expand Down Expand Up @@ -153,7 +144,6 @@ public String getBenVisitDetailsFrmNurseANC(
* @param benRegID and benVisitID
* @return anc care details in JSON format
*/
@CrossOrigin()
@Operation(summary = "Get beneficiary ANC care details from nurse ANC")
@PostMapping(value = { "/getBenANCDetailsFrmNurseANC" })
@Transactional(rollbackFor = Exception.class)
Expand Down Expand Up @@ -186,10 +176,8 @@ public String getBenANCDetailsFrmNurseANC(
* @param benRegID and benVisitID
* @return history details in JSON format
*/
@CrossOrigin()
@Operation(summary = "Get beneficiary ANC history details from nurse to doctor ")
@PostMapping(value = { "/getBenANCHistoryDetails" })

public String getBenANCHistoryDetails(
@Param(value = "{\"benRegID\":\"Long\", \"visitCode\":\"Long\"}") @RequestBody String comingRequest) {
OutputResponse response = new OutputResponse();
Expand Down Expand Up @@ -218,7 +206,6 @@ public String getBenANCHistoryDetails(
* @param benRegID and benVisitID
* @return vital details in JSON format
*/
@CrossOrigin()
@Operation(summary = "Get beneficiary ANC vital details from nurse ANC")
@PostMapping(value = { "/getBenANCVitalDetailsFrmNurseANC" })
public String getBenANCVitalDetailsFrmNurseANC(
Expand Down Expand Up @@ -250,7 +237,6 @@ public String getBenANCVitalDetailsFrmNurseANC(
* @param benRegID and benVisitID
* @return examination details in JSON format
*/
@CrossOrigin()
@Operation(summary = "Get beneficiary ANC examination details from nurse to doctor ")
@PostMapping(value = { "/getBenExaminationDetailsANC" })

Expand Down Expand Up @@ -282,7 +268,7 @@ public String getBenExaminationDetailsANC(
* @param benRegID and benVisitID
* @return doctor entered details in JSON format
*/
@CrossOrigin()

@Operation(summary = "Get beneficiary doctor entered details")
@PostMapping(value = { "/getBenCaseRecordFromDoctorANC" })
@Transactional(rollbackFor = Exception.class)
Expand All @@ -309,7 +295,6 @@ public String getBenCaseRecordFromDoctorANC(
return response.toString();
}

@CrossOrigin()
@Operation(summary = "Check high risk pregnancy status for ANC beneficiary")
@PostMapping(value = { "/getHRPStatus" })
@Transactional(rollbackFor = Exception.class)
Expand Down Expand Up @@ -339,7 +324,6 @@ public String getHRPStatus(
return response.toString();
}

@CrossOrigin
@Operation(summary = "Update ANC care data in doctor screen")
@PostMapping(value = { "/update/ANCScreen" })
public String updateANCCareNurse(@RequestBody String requestObj) {
Expand Down Expand Up @@ -371,7 +355,6 @@ public String updateANCCareNurse(@RequestBody String requestObj) {
* by Doctor
*/

@CrossOrigin
@Operation(summary = "Update ANC history data in doctor screen")
@PostMapping(value = { "/update/historyScreen" })
public String updateANCHistoryNurse(@RequestBody String requestObj) {
Expand Down Expand Up @@ -402,7 +385,6 @@ public String updateANCHistoryNurse(@RequestBody String requestObj) {
* by Doctor
*/

@CrossOrigin
@Operation(summary = "Update ANC vital data in doctor screen")
@PostMapping(value = { "/update/vitalScreen" })
public String updateANCVitalNurse(@RequestBody String requestObj) {
Expand Down Expand Up @@ -434,7 +416,6 @@ public String updateANCVitalNurse(@RequestBody String requestObj) {
* by Doctor
*/

@CrossOrigin
@Operation(summary = "Update ANC examination data in doctor screen")
@PostMapping(value = { "/update/examinationScreen" })
public String updateANCExaminationNurse(@RequestBody String requestObj) {
Expand Down Expand Up @@ -465,7 +446,7 @@ public String updateANCExaminationNurse(@RequestBody String requestObj) {
* @objective Replace ANC doctor data for the doctor next visit
*
*/
@CrossOrigin

@Operation(summary = "Update ANC doctor data")
@PostMapping(value = { "/update/doctorData" })
public String updateANCDoctorData(@RequestBody String requestObj,
Expand All @@ -489,8 +470,9 @@ public String updateANCDoctorData(@RequestBody String requestObj,

return response.toString();
}

private JsonObject parseJsonRequest(String requestObj) {
JsonElement jsonElement = JsonParser.parseString(requestObj);
return jsonElement.getAsJsonObject();
}
JsonElement jsonElement = JsonParser.parseString(requestObj);
return jsonElement.getAsJsonObject();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
Expand All @@ -46,11 +45,10 @@
import io.swagger.annotations.ApiParam;
import io.swagger.v3.oas.annotations.Operation;


/**
* @Objective Saving Cancer screening data for Nurse and Doctor both.
*/
@CrossOrigin

@RestController
@RequestMapping(value = "/CS-cancerScreening", headers = "Authorization", consumes = "application/json", produces = "application/json")
public class CancerScreeningController {
Expand All @@ -68,7 +66,6 @@ public void setCancerScreeningServiceImpl(CSServiceImpl cSServiceImpl) {
* @return success or failure response
*/

@CrossOrigin
@Operation(summary = "Save cancer screening nurse data")
@PostMapping(value = { "/save/nurseData" })
public String saveBenCancerScreeningNurseData(@RequestBody String requestObj,
Expand Down Expand Up @@ -109,7 +106,6 @@ else if (nurseDataSaveSuccessFlag == 2)
* @return success or failure response
*/

@CrossOrigin
@Operation(summary = "Save cancer screening doctor data")
@PostMapping(value = { "/save/doctorData" })
public String saveBenCancerScreeningDoctorData(@RequestBody String requestObj,
Expand All @@ -136,7 +132,6 @@ public String saveBenCancerScreeningDoctorData(@RequestBody String requestObj,
return response.toString();
}

@CrossOrigin()
@Operation(summary = "Get beneficiary visit details from nurse screen")
@PostMapping(value = { "/getBenDataFrmNurseToDocVisitDetailsScreen" })
public String getBenDataFrmNurseScrnToDocScrnVisitDetails(
Expand Down Expand Up @@ -167,7 +162,6 @@ public String getBenDataFrmNurseScrnToDocScrnVisitDetails(
* @return history details in JSON format
*/

@CrossOrigin()
@Operation(summary = "Get beneficiary cancer history details from nurse screen")
@PostMapping(value = { "/getBenDataFrmNurseToDocHistoryScreen" })
public String getBenDataFrmNurseScrnToDocScrnHistory(
Expand Down Expand Up @@ -197,7 +191,6 @@ public String getBenDataFrmNurseScrnToDocScrnHistory(
* @return vital details in JSON format
*/

@CrossOrigin()
@Operation(summary = "Get beneficiary vital details from nurse screen")
@PostMapping(value = { "/getBenDataFrmNurseToDocVitalScreen" })
public String getBenDataFrmNurseScrnToDocScrnVital(
Expand Down Expand Up @@ -228,7 +221,6 @@ public String getBenDataFrmNurseScrnToDocScrnVital(
* @return examination details in JSON format
*/

@CrossOrigin()
@Operation(summary = "Get beneficiary examination details from nurse screen")
@PostMapping(value = { "/getBenDataFrmNurseToDocExaminationScreen" })
public String getBenDataFrmNurseScrnToDocScrnExamination(
Expand Down Expand Up @@ -259,7 +251,6 @@ public String getBenDataFrmNurseScrnToDocScrnExamination(
* @return previous family history details in JSON format
*/

@CrossOrigin()
@Operation(summary = "Get beneficiary cancer family history")
@PostMapping(value = { "/getBenCancerFamilyHistory" })
public String getBenCancerFamilyHistory(
Expand Down Expand Up @@ -292,7 +283,6 @@ public String getBenCancerFamilyHistory(
* @return previous personal history details in JSON format
*/

@CrossOrigin()
@Operation(summary = "Get beneficiary cancer personal history")
@PostMapping(value = { "/getBenCancerPersonalHistory" })
public String getBenCancerPersonalHistory(
Expand Down Expand Up @@ -325,7 +315,6 @@ public String getBenCancerPersonalHistory(
* @return previous personal history details in JSON format
*/

@CrossOrigin()
@Operation(summary = "Get beneficiary cancer personal diet history")
@PostMapping(value = { "/getBenCancerPersonalDietHistory" })
public String getBenCancerPersonalDietHistory(
Expand Down Expand Up @@ -358,7 +347,6 @@ public String getBenCancerPersonalDietHistory(
* @return previous obstetric history details in JSON format
*/

@CrossOrigin()
@Operation(summary = "Get beneficiary cancer obstetric history")
@PostMapping(value = { "/getBenCancerObstetricHistory" })
public String getBenCancerObstetricHistory(
Expand Down Expand Up @@ -390,7 +378,6 @@ public String getBenCancerObstetricHistory(
* @return doctor details in JSON format
*/

@CrossOrigin()
@Operation(summary = "Get beneficiary doctor entered details")
@PostMapping(value = { "/getBenCaseRecordFromDoctorCS" })
@Transactional(rollbackFor = Exception.class)
Expand All @@ -417,7 +404,6 @@ public String getBenCaseRecordFromDoctorCS(
return response.toString();
}

@CrossOrigin
@Operation(summary = "Update cancer screening history nurse data in doctor screen")
@PostMapping(value = { "/update/historyScreen" })
public String updateCSHistoryNurse(
Expand Down Expand Up @@ -463,7 +449,6 @@ public String updateCSHistoryNurse(
* details entered by Doctor
*/

@CrossOrigin
@Operation(summary = "Update beneficiary vital detail")
@PostMapping(value = { "/update/vitalScreen" })
public String upodateBenVitalDetail(
Expand Down Expand Up @@ -501,7 +486,6 @@ public String upodateBenVitalDetail(
* the details entered by Doctor
*/

@CrossOrigin
@Operation(summary = "Update beneficiary examination detail")
@PostMapping(value = { "/update/examinationScreen" })
public String upodateBenExaminationDetail(@RequestBody String requestObj) {
Expand Down Expand Up @@ -532,7 +516,6 @@ public String upodateBenExaminationDetail(@RequestBody String requestObj) {
*
*/

@CrossOrigin
@Operation(summary = "Update cancer diagnosis details by oncologist")
@PostMapping(value = { "/update/examinationScreen/diagnosis" })
public String updateCancerDiagnosisDetailsByOncologist(
Expand Down Expand Up @@ -565,7 +548,6 @@ public String updateCancerDiagnosisDetailsByOncologist(
*
*/

@CrossOrigin
@Operation(summary = "Update cancer screening doctor data")
@PostMapping(value = { "/update/doctorData" })
public String updateCancerScreeningDoctorData(@RequestBody String requestObj) {
Expand All @@ -587,8 +569,9 @@ public String updateCancerScreeningDoctorData(@RequestBody String requestObj) {

return response.toString();
}

private JsonObject parseJsonRequest(String requestObj) {
JsonElement jsonElement = JsonParser.parseString(requestObj);
return jsonElement.getAsJsonObject();
}
JsonElement jsonElement = JsonParser.parseString(requestObj);
return jsonElement.getAsJsonObject();
}
}
Loading
Loading