Skip to content
This repository was archived by the owner on Nov 23, 2025. It is now read-only.

Dev#4

Merged
RandithaK merged 30 commits intomainfrom
dev
Nov 8, 2025
Merged

Dev#4
RandithaK merged 30 commits intomainfrom
dev

Conversation

@RandithaK
Copy link
Copy Markdown
Member

No description provided.

Suweka and others added 29 commits October 31, 2025 12:26
Added new request DTO classes under com.techtorque.admin_service.dto.request
to support admin-related endpoints with validation annotations and clear
data structures.

Included classes:
- CreateServiceTypeRequest.java
- UpdateServiceTypeRequest.java
- GenerateReportRequest.java
- ScheduleReportRequest.java
- CreateEmployeeRequest.java
- UpdateUserRequest.java

Each class includes:
• Jakarta validation annotations for field-level validation
• Lombok annotations (@DaTa, @builder, @NoArgsConstructor, @AllArgsConstructor)
• Structured documentation for API usage (POST/PUT endpoints)
• Input constraints for improved data integrity
Added new response DTOs under com.techtorque.admin_service.dto.response
to standardize API responses across the admin service.

Included classes:
- ServiceTypeResponse.java
- ReportResponse.java
- AnalyticsDashboardResponse.java
- SystemMetricsResponse.java
- UserResponse.java
- PaginatedResponse.java
- ApiResponse.java
- AuditLogResponse.java

These DTOs include:
• Lombok annotations for boilerplate reduction
• Nested static classes for structured data (KPIs, charts, trends, etc.)
• Generic ApiResponse and PaginatedResponse wrappers for consistency
• Strong typing for improved API maintainability
…es, and system configuration

Added new entity classes under com.techtorque.admin_service.entity to define
the database layer for the Admin Service module.

Included entities and enums:
- Report.java
- ReportType.java
- ReportFormat.java
- ReportStatus.java
- AuditLog.java
- ReportSchedule.java
- ScheduleFrequency.java
- SystemConfiguration.java

Key features:
• JPA annotations with table indexes and enum mappings
• Auditing enabled using @CreatedDate and @LastModifiedDate
• Lombok annotations for clean, boilerplate-free models
• Builder pattern for flexible entity creation
• Enum separation for maintainable and readable code
…gs, schedules, and configurations

Added repository interfaces under com.techtorque.admin_service.repository
to manage database operations for all entity classes.

Included:
- ReportRepository.java
- AuditLogRepository.java
- ReportScheduleRepository.java
- SystemConfigurationRepository.java

Key features:
• Extends JpaRepository for CRUD and pagination
• Includes custom finder methods and @query filters
• Supports pagination, sorting, and dynamic filtering
• Clean separation between data access and service layers
… module

- Added new entity classes under com.techtorque.admin_service.entity:
  • Report.java – defines report metadata, type, format, and status
  • ReportSchedule.java – handles recurring scheduled reports
  • ReportType.java, ReportFormat.java, ReportStatus.java – enums for report configuration
  • ScheduleFrequency.java – defines scheduling intervals (DAILY, WEEKLY, MONTHLY)
  • ServiceType.java – defines service configuration for admin panel
- Implemented JPA annotations, auditing, and Lombok integration
- Structured entities to support AdminReportServiceImpl and AdminServiceConfigServiceImpl
feat: Enhance user role handling and add userId conversion logic
feat: Add GitHub Actions workflows for building, packaging, and deploying the Admin Service to Kubernetes
Copilot AI review requested due to automatic review settings November 8, 2025 11:18
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Nov 8, 2025

Warning

Rate limit exceeded

@RandithaK has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 24 minutes and 53 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 e494e64 and aa1f484.

📒 Files selected for processing (69)
  • .github/workflows/build.yaml (1 hunks)
  • .github/workflows/deploy.yaml (1 hunks)
  • Dockerfile (1 hunks)
  • IMPLEMENTATION_COMPLETE.md (1 hunks)
  • IMPLEMENTATION_SUMMARY.md (1 hunks)
  • QUICK_REFERENCE.md (1 hunks)
  • admin-service/pom.xml (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/AdminServiceApplication.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/config/AdminServiceDataSeeder.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/config/GatewayHeaderFilter.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/config/OpenApiConfig.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/config/WebClientConfig.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/controller/AdminAnalyticsController.java (2 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/controller/AdminReportController.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/controller/AdminServiceConfigController.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/controller/AdminUserController.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/controller/AuditLogController.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/controller/SystemConfigurationController.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/request/AuditLogSearchRequest.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/request/CreateAuditLogRequest.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/request/CreateEmployeeRequest.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/request/CreateServiceTypeRequest.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/request/CreateSystemConfigRequest.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/request/GenerateReportRequest.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/request/ScheduleReportRequest.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/request/UpdateServiceTypeRequest.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/request/UpdateSystemConfigRequest.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/request/UpdateUserRequest.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/response/AnalyticsDashboardResponse.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/response/ApiResponse.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/response/AuditLogResponse.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/response/DashboardAnalyticsResponse.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/response/PaginatedResponse.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/response/ReportResponse.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/response/ServiceTypeResponse.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/response/SystemConfigurationResponse.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/response/SystemMetricsResponse.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/dto/response/UserResponse.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/entity/AuditLog.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/entity/Report.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/entity/ReportFormat.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/entity/ReportSchedule.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/entity/ReportStatus.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/entity/ReportType.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/entity/ScheduleFrequency.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/entity/ServiceType.java (2 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/entity/SystemConfiguration.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/exception/GlobalExceptionHandler.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/exception/ResourceNotFoundException.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/repository/AuditLogRepository.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/repository/ReportRepository.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/repository/ReportScheduleRepository.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/repository/ServiceTypeRepository.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/repository/SystemConfigurationRepository.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/service/AdminReportService.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/service/AdminServiceConfigService.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/service/AdminUserService.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/service/AnalyticsService.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/service/AuditLogService.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/service/SystemConfigurationService.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/service/impl/AdminReportServiceImpl.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/service/impl/AdminServiceConfigServiceImpl.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/service/impl/AdminUserServiceImpl.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/service/impl/AnalyticsServiceImpl.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/service/impl/AuditLogServiceImpl.java (1 hunks)
  • admin-service/src/main/java/com/techtorque/admin_service/service/impl/SystemConfigurationServiceImpl.java (1 hunks)
  • admin-service/src/main/resources/application.properties (1 hunks)
  • admin-service/src/test/java/com/techtorque/admin_service/AdminServiceApplicationTests.java (1 hunks)
  • admin-service/src/test/resources/application-test.properties (1 hunks)
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch dev

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

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR represents a comprehensive implementation of the Admin Service, transforming it from stub endpoints to a fully functional administrative control center. The implementation addresses all issues identified in the audit report and adds critical functionality including system configuration management, audit logging, and WebClient-based inter-service communication. Key changes include implementing 24 complete endpoints across user management, service configuration, reporting, analytics, and audit logging, along with comprehensive data seeding for development environments.

Key Changes:

  • Implemented 24 fully functional endpoints with complete business logic (previously 0/18 implemented)
  • Added WebClient configuration for communication with 6 microservices
  • Introduced comprehensive data seeding with 10 service types and 10 system configurations
  • Implemented audit logging system and system configuration management

Reviewed Changes

Copilot reviewed 69 out of 69 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
admin-service/src/main/java/com/techtorque/admin_service/service/impl/*.java Implemented 5 new service classes with complete business logic
admin-service/src/main/java/com/techtorque/admin_service/controller/*.java Updated all controllers from stubs to fully functional endpoints
admin-service/src/main/java/com/techtorque/admin_service/entity/*.java Added 5 new entities for reports, configurations, and audit logs
admin-service/src/main/java/com/techtorque/admin_service/repository/*.java Added 4 new repositories with custom query methods
admin-service/src/main/java/com/techtorque/admin_service/dto/**/*.java Created comprehensive request/response DTOs with validation
admin-service/src/main/java/com/techtorque/admin_service/config/*.java Added WebClient, OpenAPI, and data seeding configuration
admin-service/src/main/resources/application.properties Added microservice URLs and WebClient configuration
IMPLEMENTATION_SUMMARY.md, QUICK_REFERENCE.md Added comprehensive documentation for the service
Comments suppressed due to low confidence (1)

admin-service/src/main/java/com/techtorque/admin_service/service/impl/AuditLogServiceImpl.java:1

  • Loading all audit logs into memory with findAll() before filtering is inefficient and could cause performance issues or OutOfMemoryError as the audit log table grows. Use the existing custom query method in AuditLogRepository (findByFilters) which performs filtering at the database level with proper pagination support.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +29 to +40
.map(role -> {
String roleUpper = role.trim().toUpperCase();
// Treat SUPER_ADMIN as ADMIN for authorization purposes
if ("SUPER_ADMIN".equals(roleUpper)) {
// Add both SUPER_ADMIN and ADMIN roles
return Arrays.asList(
new SimpleGrantedAuthority("ROLE_SUPER_ADMIN"),
new SimpleGrantedAuthority("ROLE_ADMIN")
);
}
return Collections.singletonList(new SimpleGrantedAuthority("ROLE_" + roleUpper));
})
Copy link

Copilot AI Nov 8, 2025

Choose a reason for hiding this comment

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

[nitpick] The role mapping logic embeds business rules directly in the security filter. Consider extracting this into a separate RoleMapper service or configuration class to improve testability and make role hierarchy changes easier to manage.

Copilot uses AI. Check for mistakes.
@RandithaK RandithaK merged commit b230ab6 into main Nov 8, 2025
8 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants