Skip to content

Conversation

@vishwab1
Copy link
Member

@vishwab1 vishwab1 commented Jun 17, 2025

πŸ“‹ Description

JIRA ID: 1246

Please provide a summary of the change and the motivation behind it. Include relevant context and details.


βœ… Type of Change

  • 🐞 Bug fix (non-breaking change which resolves an issue)
  • ✨ New feature (non-breaking change which adds functionality)
  • πŸ”₯ Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • πŸ›  Refactor (change that is neither a fix nor a new feature)
  • βš™οΈ Config change (configuration file or build script updates)
  • πŸ“š Documentation (updates to docs or readme)
  • πŸ§ͺ Tests (adding new or updating existing tests)
  • 🎨 UI/UX (changes that affect the user interface)
  • πŸš€ Performance (improves performance)
  • 🧹 Chore (miscellaneous changes that don't modify src or test files)

ℹ️ Additional Information

Please describe how the changes were tested, and include any relevant screenshots, logs, or other information that provides additional context.

Summary by CodeRabbit

  • New Features
    • Centralized and configurable Cross-Origin Resource Sharing (CORS) support has been added, allowing administrators to specify permitted origins for API access.
  • Refactor
    • All individual CORS annotations have been removed from controller methods in favor of a unified configuration.
  • Chores
    • New CORS-related configuration properties are available in environment files for easier management.
  • Bug Fixes
    • Improved handling of HTTP OPTIONS requests and CORS headers, ensuring proper preflight and credential support.

@coderabbitai
Copy link

coderabbitai bot commented Jun 17, 2025

Warning

Rate limit exceeded

@vishwab1 has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 18 minutes and 17 seconds before requesting another review.

βŒ› How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between 8a02e09 and e68d414.

πŸ“’ Files selected for processing (1)
  • src/main/environment/admin_ci.properties (1 hunks)

Walkthrough

This update centralizes and enhances CORS (Cross-Origin Resource Sharing) configuration for the admin API. It removes all @CrossOrigin annotations from controller methods, introduces a global CORS configuration class, and updates the JWT validation filter to handle CORS headers based on configurable allowed origins. Related properties and logging are also updated.

Changes

Files/Groups Change Summary
src/main/java/com/iemr/admin/controller/.../*.java (all controllers) Removed all @CrossOrigin annotations from controller classes and methods. No logic or signature changes.
src/main/java/com/iemr/admin/config/CorsConfig.java Added new CorsConfig class implementing global CORS configuration via WebMvcConfigurer and property-based origins.
src/main/java/com/iemr/admin/utils/FilterConfig.java Injects allowedOrigins property; passes to JwtUserIdValidationFilter; sets filter order to highest precedence.
src/main/java/com/iemr/admin/utils/JwtUserIdValidationFilter.java Adds CORS handling: parses allowed origins, sets headers, handles OPTIONS, updates constructor, removes @Component.
src/main/environment/admin_ci.properties Adds cors.allowed-origins property, value from environment variable.
src/main/environment/admin_example.properties Adds cors.allowed-origins property, defaulting to http://localhost:*.
logs/admin-api.log.json Adds new log file capturing application startup, CORS warnings, and shutdown events in JSON format.

Sequence Diagram(s)

sequenceDiagram
    participant Browser
    participant SpringApp
    participant JwtFilter
    participant Controller

    Browser->>SpringApp: HTTP Request (with Origin header)
    SpringApp->>JwtFilter: Pass request to filter
    JwtFilter->>JwtFilter: Check if Origin is allowed
    alt Origin allowed
        JwtFilter->>SpringApp: Add CORS headers to response
    else Origin not allowed
        JwtFilter->>SpringApp: Log warning, no CORS headers
    end
    alt OPTIONS request
        JwtFilter-->>Browser: Respond 200 OK (no JWT validation)
    else Other methods
        JwtFilter->>JwtFilter: Validate JWT
        JwtFilter->>Controller: Forward request
        Controller-->>JwtFilter: Handle business logic
        JwtFilter-->>Browser: Return response (with CORS headers if allowed)
    end
Loading

Suggested reviewers

  • sandipkarmakar3

Poem

In fields of code where rabbits hop,
CORS now blooms from bottom to top.
No more annotations, just one global spring,
With filters and configs, let allowed origins sing!
Requests can travel, headers set rightβ€”
This bunny’s proud: cross-origin’s in sight!
πŸ‡βœ¨


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❀️ Share
πŸͺ§ Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

πŸ”­ Outside diff range comments (3)
src/main/java/com/iemr/admin/controller/snomedMapping/SnomedMappingController.java (1)

64-70: String comparison bug – use .equals, not ==

masterRes == "Data Updated" & masterRes == "Invalid Master Type" rely on
reference equality and will fail unpredictably.

-if (masterRes == "Data Updated") {
+if ("Data Updated".equals(masterRes)) {
 ...
-    if (masterRes == "Invalid Master Type") {
+    if ("Invalid Master Type".equals(masterRes)) {

Same issue repeats in the other methods.
Fixing this prevents false-negatives in response handling.

Also applies to: 104-112

src/main/java/com/iemr/admin/utils/JwtUserIdValidationFilter.java (1)

122-127: Duplicate sendError call – response is written twice

Lines 122–127 call response.sendError two times in succession,
once before and once after the log statement. The second invocation is
redundant and risks IllegalStateException (β€œCommitted response”).

-logger.warn("No valid authentication token found");
-response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized: Invalid or missing token");
-
-logger.warn("No valid authentication token found");
-response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized: Invalid or missing token");
+logger.warn("No valid authentication token found");
+response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized: Invalid or missing token");
logs/admin-api.log.json (1)

1-164: Remove log artefacts from source control

Runtime log files do not belong in the repository; they bloat history,
risk leaking sensitive info, and trigger noisy diffs.
Add logs/ to .gitignore and delete this file from the PR.

♻️ Duplicate comments (8)
src/main/java/com/iemr/admin/controller/labmodule/SmartDiagnosticsController.java (1)

28-32: Same pre-flight caveat as noted for UomController

The CrossOrigin import removal is correct.
The controller still constrains routes with headers = "Authorization", which prevents OPTIONS pre-flight mapping and will break CORS from browsers. Apply the same fix recommended in the previous comment.

src/main/java/com/iemr/admin/controller/userParkingPlaceMap/UserParkingPlaceMapController.java (1)

26-30: Duplicate: global CORS OK, but OPTIONS still blocked

See the earlier comment – remove the hard headers="Authorization" constraint to allow browser pre-flights.

src/main/java/com/iemr/admin/controller/drugstrength/DrugStrength.java (1)

28-32: Duplicate: CORS import removed, pre-flight issue remains

Same recommendation: drop the headers="Authorization" attribute so that global CORS can respond to OPTIONS requests.

src/main/java/com/iemr/admin/controller/uptsu/FacilityController.java (1)

100-104: Blank line marks removed annotation – revisit headers="Authorization"

Line 102 was modified when the @CrossOrigin annotation was deleted. Endpoints in this class still include headers = "Authorization" (e.g. saveCdssDetails). The same pre-flight concern applies: OPTIONS requests without that header will not be routed. Please consider removing that constraint across the controller.

src/main/java/com/iemr/admin/controller/questionnaire/QuestionnaireController.java (1)

24-30: Same CORS clean-up as previous controller

Import deletion aligns with global CorsConfig. Just ensure no leftover @CrossOrigin in this file.

src/main/java/com/iemr/admin/controller/item/ItemController.java (1)

24-32: Consistent removal of CrossOrigin import

No issues spotted; compilation should succeed as long as annotations were also deleted.

src/main/java/com/iemr/admin/controller/blocking/BlockingController.java (1)

24-32: Import cleanup verified

Matches the global CORS refactor. Nothing else to flag here.

src/main/java/com/iemr/admin/controller/version/VersionController.java (1)

24-33: CORS import removal acknowledged

The /version endpoint now relies on global CORS settings; change looks good.

🧹 Nitpick comments (4)
src/main/environment/admin_example.properties (1)

28-28: Extend example for multiple origins.
The wildcard http://localhost:* covers local testing, but it may be helpful to illustrate how to specify multiple origins (e.g., comma-separated) in this sample file.

src/main/java/com/iemr/admin/controller/employeemaster/EmployeeMasterController.java (2)

1801-1804: Null-safety for new isSanjeevani flag

Fine to guard with != null, but consider a default value (false) to avoid three-state logic bleeding into persistence / JSON.

-if (previl1.getIsSanjeevani() != null) {
-    resDataMap1.setIsSanjeevani(previl1.getIsSanjeevani());
-}
+resDataMap1.setIsSanjeevani(Boolean.TRUE.equals(previl1.getIsSanjeevani()));

1860-1863: Duplicate pattern – refactor into helper

The isSanjeevani null-check is repeated here; extract into a small utility or setter method to keep controllers lean.

src/main/java/com/iemr/admin/utils/JwtUserIdValidationFilter.java (1)

134-151: isOriginAllowed builds regex on every request – pre-compute & cache

Splitting and converting every allowed origin to a regex for each hit
adds avoidable CPU overhead to all requests. Cache the compiled
patterns once in the constructor:

-private boolean isOriginAllowed(String origin) {
-    ...
-    return Arrays.stream(allowedOrigins.split(","))
-            .map(String::trim)
-            .anyMatch(pattern -> {
-                String regex = pattern
-                        .replace(".", "\\.")
-                        .replace("*", ".*")
-                        .replace("http://localhost:.*", "http://localhost:\\d+");
-                return origin.matches(regex);
-            });
-}
+private final List<Pattern> originPatterns;
+
+public JwtUserIdValidationFilter(JwtAuthenticationUtil jwtAuthenticationUtil,
+                                 String allowedOrigins) {
+    this.jwtAuthenticationUtil = jwtAuthenticationUtil;
+    this.originPatterns = Arrays.stream(
+            Optional.ofNullable(allowedOrigins).orElse("").split(","))
+        .map(String::trim)
+        .filter(s -> !s.isBlank())
+        .map(this::toRegex)
+        .map(Pattern::compile)
+        .toList();
+}
+
+private boolean isOriginAllowed(String origin) {
+    return originPatterns.stream().anyMatch(p -> p.matcher(origin).matches());
+}
πŸ“œ Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between b319fb6 and 1177ed4.

β›” Files ignored due to path filters (1)
  • logs/admin-api.log.json.2025-06-13.gz is excluded by !**/*.gz
πŸ“’ Files selected for processing (46)
  • logs/admin-api.log.json (1 hunks)
  • src/main/environment/admin_ci.properties (1 hunks)
  • src/main/environment/admin_example.properties (1 hunks)
  • src/main/java/com/iemr/admin/config/CorsConfig.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/blocking/BlockingController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/calibration/CalibrationController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/createorder/CareStreamCreateOrderController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/drugstrength/DrugStrength.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/drugtype/DrugtypeController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/emailconfig/EmailConfigController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/employeemaster/EmployeeMasterController.java (4 hunks)
  • src/main/java/com/iemr/admin/controller/employeemaster/EmployeeSignatureController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/foetalmonitormaster/FoetalMonitorController.java (9 hunks)
  • src/main/java/com/iemr/admin/controller/item/ItemController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/itemfacilitymapping/MItemFacilityMappingController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/labmodule/LabModuleController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/labmodule/SmartDiagnosticsController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/locationmaster/LocationMasterController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/manufacturer/ManufacturerController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/nodalConfig/NodalConfigController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/parkingPlace/ParkingPlaceController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/parkingPlace/ParkingPlaceTalukMappingController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/pharmacologicalcategory/PharmacologicalCategoryController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/provideronboard/ProviderOnBoardController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/questionnaire/QuestionnaireController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/rolemaster/RoleMasterController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/servicePoint/ServicePointController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/snomedMapping/SnomedMappingController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/stockEntry/StockEntryController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/stockExit/StockExitController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/store/StoreController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/supplier/SupplierMasterController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/telemedicine/TeleMedicineController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/telemedicine/VideoConsultationController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/uom/UomController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/uptsu/FacilityController.java (2 hunks)
  • src/main/java/com/iemr/admin/controller/userParkingPlaceMap/UserParkingPlaceMapController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/vanMaster/VanMasterController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/vanServicePointMapping/VanServicePointMappingController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/vanSpokeMapping/VanSpokeMappingController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/version/VersionController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/villageMaster/VillageMasterController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/zonemaster/ZoneMasterController.java (1 hunks)
  • src/main/java/com/iemr/admin/utils/FilterConfig.java (1 hunks)
  • src/main/java/com/iemr/admin/utils/JwtUserIdValidationFilter.java (4 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (1)
src/main/java/com/iemr/admin/utils/JwtUserIdValidationFilter.java (1)
src/main/java/com/iemr/admin/utils/Constants.java (1)
  • Constants (3-9)
πŸͺ› Biome (1.9.4)
logs/admin-api.log.json

[error] 1-2: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 2-3: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 3-4: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 4-5: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 5-6: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 6-7: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 7-8: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 8-9: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 9-10: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 10-11: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 11-12: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 12-13: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 13-14: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 14-15: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 15-16: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 16-17: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 17-18: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 18-19: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 19-20: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 20-21: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 21-22: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 22-23: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 23-24: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 24-25: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 25-26: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 26-27: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 27-28: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 28-29: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 29-30: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 30-31: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 31-32: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 32-33: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 33-34: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 34-35: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 35-36: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 36-37: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 37-38: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 38-39: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 39-40: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 40-41: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 41-42: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 42-43: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 43-44: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 44-45: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 45-46: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 46-47: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 47-48: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 48-49: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 49-50: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 50-51: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 51-52: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 52-53: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 53-54: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 54-55: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 55-56: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 56-57: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 57-58: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 58-59: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 59-60: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 60-61: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 61-62: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 62-63: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 63-64: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 64-65: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 65-66: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 66-67: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 67-68: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 68-69: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 69-70: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 70-71: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 71-72: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 72-73: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 73-74: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 74-75: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 75-76: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 76-77: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 77-78: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 78-79: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 79-80: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 80-81: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 81-82: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 82-83: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 83-84: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 84-85: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 85-86: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 86-87: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 87-88: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 88-89: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 89-90: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 90-91: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 91-92: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 92-93: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 93-94: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 94-95: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 95-96: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 96-97: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 97-98: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 98-99: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 99-100: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 100-101: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 101-102: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 102-103: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 103-104: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 104-105: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 105-106: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 106-107: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 107-108: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 108-109: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 109-110: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 110-111: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 111-112: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 112-113: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 113-114: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 114-115: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 115-116: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 116-117: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 117-118: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 118-119: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 119-120: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 120-121: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 121-122: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 122-123: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 123-124: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 124-125: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 125-126: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 126-127: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 127-128: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 128-129: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 129-130: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 130-131: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 131-132: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 132-133: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 133-134: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 134-135: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 135-136: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 136-137: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 137-138: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 138-139: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 139-140: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 140-141: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 141-142: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 142-143: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 143-144: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 144-145: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 145-146: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 146-147: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 147-148: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 148-149: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 149-150: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 150-151: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 151-152: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 152-153: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 153-154: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 154-155: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 155-156: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 156-157: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 157-158: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 158-159: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 159-160: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 160-161: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 161-162: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 162-163: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)

⏰ Context from checks skipped due to timeout of 90000ms (2)
  • GitHub Check: Analyze (java)
  • GitHub Check: Package-test
πŸ”‡ Additional comments (38)
src/main/environment/admin_ci.properties (1)

28-28: Ensure environment property coverage.
Ensure that the CORS_ALLOWED_ORIGINS environment variable is defined in all deployment environments and consider providing a sensible default for development or testing. Confirm that any additional environment-specific property files are updated accordingly.

src/main/java/com/iemr/admin/controller/stockExit/StockExitController.java (1)

25-25: Remove unused CrossOrigin import.
The import of @CrossOrigin has been removed to rely on the centralized CORS configuration. No remaining references to @CrossOrigin exist in this class.

src/main/java/com/iemr/admin/controller/vanServicePointMapping/VanServicePointMappingController.java (1)

27-27: Remove unused CrossOrigin import.
Deleted the @CrossOrigin annotation import as CORS is now configured globally.

src/main/java/com/iemr/admin/controller/stockEntry/StockEntryController.java (1)

29-29: Remove unused CrossOrigin import.
Eliminated the @CrossOrigin import; global CORS settings will handle cross-origin requests for these endpoints.

src/main/java/com/iemr/admin/controller/villageMaster/VillageMasterController.java (1)

26-31: Let’s locate and review the JwtUserIdValidationFilter implementation to confirm it skips preflight (OPTIONS) requests before enforcing authentication:

#!/bin/bash
# 1. Find the JWT filter class file
rg -l "class JwtUserIdValidationFilter" --glob '*.java'

# 2. Dump its content (first 200 lines) for inspection
rg -l "class JwtUserIdValidationFilter" --glob '*.java' | xargs -I {} sed -n '1,200p' {}
src/main/java/com/iemr/admin/controller/uom/UomController.java (1)

30-33: ```shell
#!/bin/bash
set -e

Locate UomController.java in the repository

CONTROLLER_FILE=$(rg --files-with-matches 'class UomController' -t java)
echo "Found controller file: $CONTROLLER_FILE"

Display lines around import statements and any RequestMapping usage

echo -e "\n--- Imports ---"
sed -n '1,50p' "$CONTROLLER_FILE"

echo -e "\n--- @RequestMapping annotations ---"
rg -n -C2 '@RequestMapping' "$CONTROLLER_FILE"

echo -e "\n--- Any occurrence of 'headers' attribute ---"
rg -n 'headers\s*=' "$CONTROLLER_FILE"


</details>
<details>
<summary>src/main/java/com/iemr/admin/controller/uptsu/FacilityController.java (1)</summary>

`26-32`: **Import clean-up acknowledged**

`CrossOrigin` import removal aligns with the new global CORS configuration. Nothing else to flag here.

</details>
<details>
<summary>src/main/java/com/iemr/admin/controller/telemedicine/TeleMedicineController.java (1)</summary>

`53-56`: **Centralize CORS across TeleMedicine endpoints**  
Method-level `@CrossOrigin` annotations have been removed in favor of the new global `CorsConfig`. Please verify that your global configuration (allowed origins, HTTP methods, headers, credentials) correctly covers these endpoints and handles OPTIONS preflight requests as expected.

</details>
<details>
<summary>src/main/java/com/iemr/admin/controller/employeemaster/EmployeeSignatureController.java (1)</summary>

`61-64`: **Remove method-level CORS annotations**  
You’ve dropped `@CrossOrigin` from the upload/download endpoints to rely on the centralized CORS setup. Ensure that the global CORS policy applies here tooβ€”especially for binary file transfers and OPTIONS preflight.

</details>
<details>
<summary>src/main/java/com/iemr/admin/controller/store/StoreController.java (1)</summary>

`55-58`: **Consolidated CORS for store-management APIs**  
All method-level `@CrossOrigin` markers have been removed in favor of the global configuration. Confirm that the new `CorsConfig` class (and associated properties) allow these `/createStore`, `/editStore`, `/getAllStore`, etc., endpoints to be invoked from approved origins, including proper handling of preflight requests.

</details>
<details>
<summary>src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java (1)</summary>

`52-55`: **Unified CORS via global config**  
Removed method-level CORS annotations; global CORS should now cover `getFacility`, `addFacility`, `editFacility`, `deleteFacility`, and `checkFacilityTypeCode`. Please test these endpoints under different origins (including preflight) to confirm the centralized settings are effective.

</details>
<details>
<summary>src/main/java/com/iemr/admin/controller/servicePoint/ServicePointController.java (1)</summary>

`55-58`: **Global CORS policy for ServicePointController**  
Method-level `@CrossOrigin` annotations have been stripped out. Validate that the new `CorsConfig` and updated JWT filter correctly inject CORS headers (and short-circuit OPTIONS) for all `/servicePointMaster/*` endpoints.

</details>
<details>
<summary>src/main/java/com/iemr/admin/controller/createorder/CareStreamCreateOrderController.java (1)</summary>

`32-32`: **Removed `@CrossOrigin` import; ensure global CORS applies**

The per-method `@CrossOrigin` annotations have been removed in favor of a centralized `CorsConfig`. Verify that this configuration covers the `/createOrder`, `/UpdateOrder`, and `/deleteOrder` endpoints and correctly handles OPTIONS preflight requests before JWT validation.

</details>
<details>
<summary>src/main/java/com/iemr/admin/controller/drugtype/DrugtypeController.java (1)</summary>

`31-31`: **Removed `@CrossOrigin` import; centralize CORS**

Method-level CORS annotations were stripped out. Confirm that your global `CorsConfig` bean is picked up at startup and applies to `/createDrugtype`, `/getDrugtype`, `/editDrugtype`, and `/deleteDrugtype` paths, including preflight handling.

</details>
<details>
<summary>src/main/java/com/iemr/admin/controller/itemfacilitymapping/MItemFacilityMappingController.java (1)</summary>

`31-31`: **Removed `@CrossOrigin` import; verify CORS coverage**

All method-level CORS declarations were removed. Please ensure your centralized CORS configuration covers endpoints like `/mapItemtoStrore`, `/editItemtoStrore`, `/deleteItemtoStrore`, and other mappings in this controller, including OPTIONS preflight support.

</details>
<details>
<summary>src/main/java/com/iemr/admin/controller/calibration/CalibrationController.java (1)</summary>

`27-27`: **Removed `@CrossOrigin` import; verify global CORS mapping**

The controller no longer uses `@CrossOrigin`. Make sure your global CORS setup includes `/createCalibrationStrip`, `/fetchCalibrationStrips`, `/deleteCalibrationStrip`, and `/updateCalibrationStrip`, and that preflight requests are permitted before authentication filters.

</details>
<details>
<summary>src/main/java/com/iemr/admin/controller/zonemaster/ZoneMasterController.java (1)</summary>

`28-28`: **Removed `@CrossOrigin` import; ensure CORS on `/zonemaster`**

With all method-level CORS annotations removed, confirm that your global `CorsConfig` applies to every `/zonemaster/**` endpoint, including proper handling of OPTIONS preflight ahead of JWT validation.

</details>
<details>
<summary>src/main/java/com/iemr/admin/controller/vanSpokeMapping/VanSpokeMappingController.java (1)</summary>

`24-30`: ```shell
#!/bin/bash
# Re-run search for CrossOrigin annotations and imports in Java files
rg --type java --line-number --no-heading '@CrossOrigin'
rg --type java --line-number --no-heading '^import .*CrossOrigin'
src/main/java/com/iemr/admin/controller/telemedicine/VideoConsultationController.java (1)

29-35: Centralized CORS handling – looks good, but confirm filter coverage

@CrossOrigin-related imports/annotations have been removed. πŸ‘
Please double-check that every endpoint in this controller is still reachable from the intended front-end origins once the new CorsConfig + JwtUserIdValidationFilter are active in all environments (dev / staging / prod).

src/main/java/com/iemr/admin/controller/employeemaster/EmployeeMasterController.java (1)

35-40: Import cleanup aligns with global CORS config

Removal of @CrossOrigin imports is consistent with the new central configuration – nothing further to do.

src/main/java/com/iemr/admin/controller/rolemaster/RoleMasterController.java (1)

32-37: Import tidy-up confirmed

CrossOrigin import dropped – consistent with new global CORS module.

src/main/java/com/iemr/admin/controller/pharmacologicalcategory/PharmacologicalCategoryController.java (1)

31-36: CORS annotation removal OK

Nothing else modified; endpoints should inherit the global CORS rules.

src/main/java/com/iemr/admin/controller/supplier/SupplierMasterController.java (1)

31-31: Removed redundant CrossOrigin import/annotations in favor of global CORS config.
Centralizing CORS handling via CorsConfig eliminates repetitive @CrossOrigin usages in controllersβ€”this removal improves maintainability and ensures consistent policy enforcement.

src/main/java/com/iemr/admin/controller/manufacturer/ManufacturerController.java (1)

31-31: Removed redundant CrossOrigin import/annotations in favor of global CORS config.
Central CORS configuration now lives in CorsConfig; removing the per-controller annotations reduces duplication and potential inconsistencies.

src/main/java/com/iemr/admin/controller/labmodule/LabModuleController.java (1)

28-28: Removed redundant CrossOrigin import/annotations in favor of global CORS config.
All CORS policy is now managed centrally, so per-method annotations were (correctly) removed to streamline controller code.

src/main/java/com/iemr/admin/controller/parkingPlace/ParkingPlaceController.java (1)

28-28: Removed redundant CrossOrigin import/annotations in favor of global CORS config.
This aligns with the new centralized CORS setup, ensuring consistent headers across all API endpoints.

src/main/java/com/iemr/admin/controller/locationmaster/LocationMasterController.java (1)

32-32: Removed redundant CrossOrigin import/annotations in favor of global CORS config.
Eliminating scattered CORS annotations cleans up the controllers and delegates policy enforcement to the global configuration.

src/main/java/com/iemr/admin/controller/provideronboard/ProviderOnBoardController.java (1)

34-34: Ensure import for @Autowired is present
The added import org.springframework.beans.factory.annotation.Autowired; is necessary to support the numerous @Autowired annotations in this controller.

src/main/java/com/iemr/admin/controller/foetalmonitormaster/FoetalMonitorController.java (8)

114-115: Reformat status update call for readability
The split of the updateFoetalMonitorTestMasterStatus invocation across two lines improves clarity without altering behavior.


174-175: Reformat JSON deserialization
Refactored the fromJson call into two lines for better readability; logic remains unchanged.


194-195: Reformat JSON deserialization
Split the fromJson invocation over two lines to enhance readability. No functional changes.


242-243: Reformat JSON deserialization
Adjusted the fromJson call formatting to separate arguments for readability; behavior is identical.


270-271: Reformat JSON deserialization
Reorganized the fromJson call across lines to improve code clarity; no logic change.


303-304: Reformat JSON deserialization
Split the fromJson invocation for cleaner formatting; functionality is preserved.


330-331: Reformat JSON deserialization
The fromJson call is now on two lines for clarity; logic remains the same.


357-358: Reformat JSON deserialization
Reformatted the fromJson invocation across two lines to enhance readability; no impact on behavior.

src/main/java/com/iemr/admin/config/CorsConfig.java (1)

23-27: Nit: expose headers list duplicates what’s already allowed

allowedHeaders("*") already permits all request headers, so
manually duplicating "Authorization" and "Jwttoken" in
exposedHeaders is sufficient.
No action required – just a heads-up.

src/main/java/com/iemr/admin/utils/JwtUserIdValidationFilter.java (1)

49-53: OPTIONS short-circuit suppresses body but may omit CORS headers for disallowed origins

You return 200 for every OPTIONS request regardless of origin check
above, but CORS headers are only added when isOriginAllowed returns
true. Browsers will still block the caller if the pre-flight response
lacks Access-Control-Allow-Origin.

Consider:

if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
-    logger.info("OPTIONS request - skipping JWT validation");
-    response.setStatus(HttpServletResponse.SC_OK);
-    return;
+    logger.info("OPTIONS request - skipping JWT validation");
+    // Ensure we always give CORS response for allowed origins.
+    if (origin == null || !isOriginAllowed(origin)) {
+        response.sendError(HttpServletResponse.SC_FORBIDDEN, "CORS origin not allowed");
+    } else {
+        response.setStatus(HttpServletResponse.SC_OK);
+    }
+    return;
}

vanitha1822
vanitha1822 previously approved these changes Jun 17, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
logs/admin-api.log.json (1)

1-164: Review log file inclusion
This appears to be a generated runtime log; consider removing it from version control and adding logs/ (or the specific filename) to .gitignore to prevent accidental commits and repository bloat.

πŸ“œ Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between 1177ed4 and 8a02e09.

β›” Files ignored due to path filters (1)
  • logs/admin-api.log.json.2025-06-13.gz is excluded by !**/*.gz
πŸ“’ Files selected for processing (46)
  • logs/admin-api.log.json (1 hunks)
  • src/main/environment/admin_ci.properties (1 hunks)
  • src/main/environment/admin_example.properties (1 hunks)
  • src/main/java/com/iemr/admin/config/CorsConfig.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/blocking/BlockingController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/calibration/CalibrationController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/createorder/CareStreamCreateOrderController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/drugstrength/DrugStrength.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/drugtype/DrugtypeController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/emailconfig/EmailConfigController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/employeemaster/EmployeeMasterController.java (3 hunks)
  • src/main/java/com/iemr/admin/controller/employeemaster/EmployeeSignatureController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/foetalmonitormaster/FoetalMonitorController.java (9 hunks)
  • src/main/java/com/iemr/admin/controller/item/ItemController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/itemfacilitymapping/MItemFacilityMappingController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/labmodule/LabModuleController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/labmodule/SmartDiagnosticsController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/locationmaster/LocationMasterController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/manufacturer/ManufacturerController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/nodalConfig/NodalConfigController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/parkingPlace/ParkingPlaceController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/parkingPlace/ParkingPlaceTalukMappingController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/pharmacologicalcategory/PharmacologicalCategoryController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/provideronboard/ProviderOnBoardController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/questionnaire/QuestionnaireController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/rolemaster/RoleMasterController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/servicePoint/ServicePointController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/snomedMapping/SnomedMappingController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/stockEntry/StockEntryController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/stockExit/StockExitController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/store/StoreController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/supplier/SupplierMasterController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/telemedicine/TeleMedicineController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/telemedicine/VideoConsultationController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/uom/UomController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/uptsu/FacilityController.java (2 hunks)
  • src/main/java/com/iemr/admin/controller/userParkingPlaceMap/UserParkingPlaceMapController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/vanMaster/VanMasterController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/vanServicePointMapping/VanServicePointMappingController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/vanSpokeMapping/VanSpokeMappingController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/version/VersionController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/villageMaster/VillageMasterController.java (1 hunks)
  • src/main/java/com/iemr/admin/controller/zonemaster/ZoneMasterController.java (1 hunks)
  • src/main/java/com/iemr/admin/utils/FilterConfig.java (1 hunks)
  • src/main/java/com/iemr/admin/utils/JwtUserIdValidationFilter.java (4 hunks)
βœ… Files skipped from review due to trivial changes (6)
  • src/main/environment/admin_example.properties
  • src/main/java/com/iemr/admin/controller/drugstrength/DrugStrength.java
  • src/main/java/com/iemr/admin/controller/locationmaster/LocationMasterController.java
  • src/main/java/com/iemr/admin/controller/labmodule/LabModuleController.java
  • src/main/java/com/iemr/admin/controller/employeemaster/EmployeeMasterController.java
  • src/main/java/com/iemr/admin/controller/snomedMapping/SnomedMappingController.java
🚧 Files skipped from review as they are similar to previous changes (39)
  • src/main/java/com/iemr/admin/controller/stockEntry/StockEntryController.java
  • src/main/environment/admin_ci.properties
  • src/main/java/com/iemr/admin/controller/vanServicePointMapping/VanServicePointMappingController.java
  • src/main/java/com/iemr/admin/controller/emailconfig/EmailConfigController.java
  • src/main/java/com/iemr/admin/controller/calibration/CalibrationController.java
  • src/main/java/com/iemr/admin/controller/itemfacilitymapping/MItemFacilityMappingController.java
  • src/main/java/com/iemr/admin/controller/drugtype/DrugtypeController.java
  • src/main/java/com/iemr/admin/controller/parkingPlace/ParkingPlaceTalukMappingController.java
  • src/main/java/com/iemr/admin/controller/store/StoreController.java
  • src/main/java/com/iemr/admin/controller/villageMaster/VillageMasterController.java
  • src/main/java/com/iemr/admin/controller/userParkingPlaceMap/UserParkingPlaceMapController.java
  • src/main/java/com/iemr/admin/controller/manufacturer/ManufacturerController.java
  • src/main/java/com/iemr/admin/controller/nodalConfig/NodalConfigController.java
  • src/main/java/com/iemr/admin/controller/servicePoint/ServicePointController.java
  • src/main/java/com/iemr/admin/controller/labmodule/SmartDiagnosticsController.java
  • src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java
  • src/main/java/com/iemr/admin/controller/questionnaire/QuestionnaireController.java
  • src/main/java/com/iemr/admin/controller/createorder/CareStreamCreateOrderController.java
  • src/main/java/com/iemr/admin/controller/item/ItemController.java
  • src/main/java/com/iemr/admin/controller/version/VersionController.java
  • src/main/java/com/iemr/admin/controller/rolemaster/RoleMasterController.java
  • src/main/java/com/iemr/admin/controller/telemedicine/VideoConsultationController.java
  • src/main/java/com/iemr/admin/controller/uptsu/FacilityController.java
  • src/main/java/com/iemr/admin/controller/zonemaster/ZoneMasterController.java
  • src/main/java/com/iemr/admin/controller/vanSpokeMapping/VanSpokeMappingController.java
  • src/main/java/com/iemr/admin/controller/parkingPlace/ParkingPlaceController.java
  • src/main/java/com/iemr/admin/controller/telemedicine/TeleMedicineController.java
  • src/main/java/com/iemr/admin/controller/blocking/BlockingController.java
  • src/main/java/com/iemr/admin/controller/uom/UomController.java
  • src/main/java/com/iemr/admin/controller/vanMaster/VanMasterController.java
  • src/main/java/com/iemr/admin/controller/stockExit/StockExitController.java
  • src/main/java/com/iemr/admin/controller/foetalmonitormaster/FoetalMonitorController.java
  • src/main/java/com/iemr/admin/controller/pharmacologicalcategory/PharmacologicalCategoryController.java
  • src/main/java/com/iemr/admin/utils/FilterConfig.java
  • src/main/java/com/iemr/admin/controller/provideronboard/ProviderOnBoardController.java
  • src/main/java/com/iemr/admin/utils/JwtUserIdValidationFilter.java
  • src/main/java/com/iemr/admin/config/CorsConfig.java
  • src/main/java/com/iemr/admin/controller/employeemaster/EmployeeSignatureController.java
  • src/main/java/com/iemr/admin/controller/supplier/SupplierMasterController.java
🧰 Additional context used
πŸͺ› Biome (1.9.4)
logs/admin-api.log.json

[error] 1-2: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 2-3: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 3-4: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 4-5: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 5-6: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 6-7: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 7-8: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 8-9: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 9-10: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 10-11: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 11-12: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 12-13: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 13-14: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 14-15: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 15-16: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 16-17: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 17-18: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 18-19: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 19-20: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 20-21: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 21-22: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 22-23: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 23-24: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 24-25: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 25-26: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 26-27: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 27-28: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 28-29: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 29-30: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 30-31: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 31-32: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 32-33: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 33-34: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 34-35: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 35-36: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 36-37: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 37-38: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 38-39: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 39-40: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 40-41: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 41-42: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 42-43: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 43-44: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 44-45: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 45-46: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 46-47: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 47-48: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 48-49: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 49-50: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 50-51: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 51-52: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 52-53: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 53-54: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 54-55: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 55-56: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 56-57: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 57-58: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 58-59: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 59-60: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 60-61: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 61-62: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 62-63: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 63-64: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 64-65: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 65-66: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 66-67: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 67-68: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 68-69: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 69-70: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 70-71: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 71-72: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 72-73: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 73-74: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 74-75: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 75-76: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 76-77: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 77-78: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 78-79: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 79-80: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 80-81: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 81-82: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 82-83: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 83-84: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 84-85: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 85-86: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 86-87: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 87-88: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 88-89: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 89-90: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 90-91: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 91-92: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 92-93: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 93-94: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 94-95: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 95-96: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 96-97: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 97-98: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 98-99: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 99-100: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 100-101: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 101-102: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 102-103: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 103-104: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 104-105: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 105-106: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 106-107: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 107-108: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 108-109: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 109-110: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 110-111: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 111-112: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 112-113: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 113-114: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 114-115: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 115-116: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 116-117: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 117-118: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 118-119: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 119-120: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 120-121: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 121-122: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 122-123: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 123-124: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 124-125: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 125-126: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 126-127: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 127-128: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 128-129: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 129-130: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 130-131: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 131-132: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 132-133: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 133-134: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 134-135: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 135-136: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 136-137: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 137-138: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 138-139: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 139-140: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 140-141: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 141-142: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 142-143: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 143-144: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 144-145: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 145-146: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 146-147: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 147-148: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 148-149: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 149-150: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 150-151: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 151-152: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 152-153: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 153-154: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 154-155: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 155-156: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 156-157: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 157-158: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 158-159: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 159-160: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 160-161: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 161-162: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 162-163: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: Analyze (java)

@vishwab1 vishwab1 requested a review from vanitha1822 June 17, 2025 12:31
@sonarqubecloud
Copy link

@vishwab1 vishwab1 requested a review from drtechie June 17, 2025 16:13
@vishwab1 vishwab1 merged commit 73ea731 into develop Jun 18, 2025
7 checks passed
@coderabbitai coderabbitai bot mentioned this pull request Sep 2, 2025
10 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants