From 1a046fc1930db53b4335d9341764dac7e1be7f59 Mon Sep 17 00:00:00 2001 From: Hai Nguyen Date: Sat, 28 Dec 2024 10:42:04 -0800 Subject: [PATCH] Modular (#45) --- .gitignore | 1 + build.gradle | 38 +++++++-- buildSrc/gradle/libs.versions.toml | 8 -- buildSrc/settings.gradle | 7 ++ .../flowinquiry.docker-conventions.gradle | 2 +- commons/build.gradle | 80 ++++++++++++++++++ .../config/ApplicationProperties.java | 0 .../config/AsyncConfiguration.java | 0 ...omBearerTokenAuthenticationEntryPoint.java | 0 .../config/DatabaseConfiguration.java | 0 .../config/DateTimeFormatConfiguration.java | 0 .../config/FlowInquiryProfiles.java | 0 .../config/FlowInquiryProperties.java | 0 .../config/JacksonConfiguration.java | 0 .../config/RepositoryLoggingAspect.java | 0 .../config/RequestLoggingConfiguration.java | 0 .../config/SchedulerConfiguration.java | 0 .../config/SecurityConfiguration.java | 0 .../config/SecurityJwtConfiguration.java | 14 ++-- .../flowinquiry/config/SimpleCorsFilter.java | 0 .../StaticResourcesWebConfiguration.java | 0 .../flowinquiry/config/TenantConfigurer.java | 0 .../io/flowinquiry/config/WebConfigurer.java | 0 .../io/flowinquiry/config/package-info.java | 0 .../java/io/flowinquiry/db/DbConstants.java | 0 .../db/TenantConnectionProvider.java | 0 .../io/flowinquiry/db/TenantConstants.java | 0 .../java/io/flowinquiry/db/TenantContext.java | 0 .../flowinquiry/db/TenantSchemaResolver.java | 0 .../db/service/LiquibaseService.java | 0 .../exceptions/ResourceNotFoundException.java | 8 ++ .../flowinquiry/health/JWTSetupChecker.java | 0 .../flowinquiry/health/MailSetupChecker.java | 0 .../logback/MaskingMessageConverter.java | 0 .../modules/audit/AbstractAuditingEntity.java | 0 .../AbstractEntityFieldHandlerRegistry.java | 0 .../modules/audit/ActivityLogUtils.java | 11 ++- .../modules/audit/AuditLogUpdateEvent.java | 0 .../audit/AuditLogUpdateEventListener.java | 0 .../flowinquiry/modules/audit/AuditUtils.java | 0 .../modules/audit/EntityFieldHandler.java | 0 .../audit/EntityFieldHandlerRegistry.java | 0 .../EntityFieldHandlerRegistryFactory.java | 0 .../modules/audit/FieldHandler.java | 0 .../modules/collab/domain/ActivityLog.java | 0 .../modules/collab/domain/Comment.java | 0 .../modules/collab/domain/EntityType.java | 0 .../modules/collab/domain/Notification.java | 0 .../repository/ActivityLogRepository.java | 0 .../collab/repository/CommentRepository.java | 0 .../repository/NotificationRepository.java | 0 .../collab/service/ActivityLogService.java | 0 .../collab/service/CommentService.java | 0 .../modules/collab/service/MailService.java | 0 .../collab/service/NotificationService.java | 0 .../collab/service/dto/ActivityLogDTO.java | 0 .../collab/service/dto/CommentDTO.java | 0 .../collab/service/dto/NotificationDTO.java | 0 .../service/mapper/ActivityLogMapper.java | 0 .../collab/service/mapper/CommentMapper.java | 0 .../service/mapper/NotificationMapper.java | 0 .../web/rest/ActivityLogController.java | 4 +- .../collab/web/rest/CommentController.java | 18 ++-- .../web/rest/NotificationController.java | 2 +- .../modules/fss/ResourceRemoveEvent.java | 0 .../fss/service/LocalFileStorageService.java | 3 +- .../fss/service/ResourceRemoveListener.java | 0 .../modules/fss/service/StorageService.java | 0 .../fss/web/rest/FileDownloadController.java | 9 +- .../fss/web/rest/FileUploadController.java | 4 +- .../teams/domain/EscalationTracking.java | 0 .../modules/teams/domain/Organization.java | 16 +++- .../modules/teams/domain/Team.java | 23 ++++- .../modules/teams/domain/TeamRequest.java | 8 +- .../teams/domain/TeamRequestPriority.java | 0 .../domain/TeamRequestPriorityConverter.java | 0 .../modules/teams/domain/TeamRole.java | 0 .../teams/domain/TeamWorkflowSelection.java | 0 .../modules/teams/domain/TicketChannel.java | 0 .../teams/domain/TicketChannelConverter.java | 0 .../modules/teams/domain/Workflow.java | 18 +++- .../modules/teams/domain/WorkflowAction.java | 0 .../modules/teams/domain/WorkflowState.java | 0 .../teams/domain/WorkflowTransition.java | 0 .../domain/WorkflowTransitionHistory.java | 0 .../WorkflowTransitionHistoryStatus.java | 0 .../teams/domain/WorkflowVisibility.java | 0 .../TeamRequestFieldHandlerRegistry.java | 0 .../EscalationTrackingRepository.java | 0 .../repository/OrganizationRepository.java | 0 .../teams/repository/TeamRepository.java | 0 .../repository/TeamRequestRepository.java | 0 .../teams/repository/TeamRoleRepository.java | 0 .../TeamWorkflowSelectionRepository.java | 0 .../repository/WorkflowActionRepository.java | 0 .../teams/repository/WorkflowRepository.java | 0 .../repository/WorkflowStateRepository.java | 0 .../WorkflowTransitionHistoryRepository.java | 0 .../WorkflowTransitionRepository.java | 0 .../teams/service/EscalationService.java | 0 .../teams/service/OrganizationService.java | 0 .../teams/service/TeamRequestService.java | 2 +- .../modules/teams/service/TeamService.java | 0 .../teams/service/WorkflowService.java | 23 +++-- .../teams/service/WorkflowStateService.java | 0 .../WorkflowTransitionHistoryService.java | 0 .../service/WorkflowTransitionService.java | 0 .../teams/service/dto/OrganizationDTO.java | 0 .../service/dto/PriorityDistributionDTO.java | 0 .../modules/teams/service/dto/TeamDTO.java | 0 .../teams/service/dto/TeamRequestDTO.java | 0 .../TeamTicketPriorityDistributionDTO.java | 0 .../dto/TicketActionCountByDateDTO.java | 0 .../service/dto/TicketDistributionDTO.java | 0 .../dto/TransitionItemCollectionDTO.java | 0 .../teams/service/dto/TransitionItemDTO.java | 0 .../teams/service/dto/WorkflowDTO.java | 0 .../service/dto/WorkflowDetailedDTO.java | 0 .../teams/service/dto/WorkflowStateDTO.java | 0 .../service/dto/WorkflowTransitionDTO.java | 0 .../event/NewTeamRequestCreatedEvent.java | 0 .../event/NewUsersAddedIntoTeamEvent.java | 0 .../event/RemoveUserOutOfTeamEvent.java | 0 .../TeamRequestWorkStateTransitionEvent.java | 0 .../listener/DeleteUserEventListener.java | 0 .../NewTeamRequestCreatedEventListener.java | 11 ++- .../NewUserAddedIntoTeamEventListener.java | 13 ++- .../RemoveUserOutOfTeamEventListener.java | 2 +- ...questWorkStateTransitionEventListener.java | 9 +- .../service/mapper/OrganizationMapper.java | 0 .../teams/service/mapper/TeamMapper.java | 0 .../service/mapper/TeamRequestMapper.java | 0 .../teams/service/mapper/WorkflowMapper.java | 0 .../service/mapper/WorkflowStateMapper.java | 0 .../WorkflowTransitionHistoryMapper.java | 0 .../mapper/WorkflowTransitionMapper.java | 0 .../web/rest/OrganizationController.java | 6 +- .../teams/web/rest/TeamController.java | 16 ++-- .../teams/web/rest/TeamRequestController.java | 32 +++---- .../teams/web/rest/WorkflowController.java | 28 +++---- .../usermanagement/AuthoritiesConstants.java | 0 .../UserNotActivatedException.java | 0 .../usermanagement/domain/Authority.java | 0 .../domain/AuthorityResourcePermission.java | 16 +++- .../domain/AuthorityResourcePermissionId.java | 6 +- .../usermanagement/domain/Permission.java | 0 .../domain/PermissionConverter.java | 0 .../usermanagement/domain/Resource.java | 16 +++- .../modules/usermanagement/domain/Tenant.java | 19 ++++- .../modules/usermanagement/domain/User.java | 26 +++++- .../usermanagement/domain/UserAuthority.java | 0 .../domain/UserAuthorityId.java | 0 .../usermanagement/domain/UserStatus.java | 0 .../usermanagement/domain/UserTeam.java | 0 .../usermanagement/domain/UserTeamId.java | 0 .../usermanagement/domain/package-info.java | 0 .../repository/AuthorityRepository.java | 0 ...AuthorityResourcePermissionRepository.java | 0 .../repository/ResourceRepository.java | 0 .../repository/TenantRepository.java | 0 .../repository/UserRepository.java | 15 ++-- .../repository/UserTeamRepository.java | 0 .../repository/package-info.java | 0 .../AuthorityResourcePermissionService.java | 0 .../service/AuthorityService.java | 0 .../service/DomainUserDetailsService.java | 0 .../service/EmailAlreadyUsedException.java | 0 .../service/InvalidPasswordException.java | 0 .../usermanagement/service/TenantService.java | 10 ++- .../usermanagement/service/UserService.java | 39 +++++---- .../service/dto/AuthorityDTO.java | 0 .../dto/AuthorityResourcePermissionDTO.java | 0 .../service/dto/FwUserDetails.java | 0 .../service/dto/PasswordChangeDTO.java | 0 .../service/dto/ResourceDTO.java | 0 .../service/dto/ResourcePermissionDTO.java | 0 .../usermanagement/service/dto/TenantDTO.java | 0 .../service/dto/TicketStatisticsDTO.java | 0 .../usermanagement/service/dto/UserDTO.java | 0 .../service/dto/UserHierarchyDTO.java | 0 .../usermanagement/service/dto/UserKey.java | 0 .../service/dto/UserWithTeamRoleDTO.java | 0 .../service/dto/package-info.java | 0 .../service/event/DeleteUserEvent.java | 0 .../service/mapper/AuthorityMapper.java | 0 .../AuthorityResourcePermissionMapper.java | 0 .../service/mapper/TenantMapper.java | 0 .../service/mapper/UserMapper.java | 7 +- .../service/mapper/UserMapperUtils.java | 0 .../service/mapper/package-info.java | 0 .../usermanagement/service/package-info.java | 0 .../web/rest/AuthenticateController.java | 21 +++-- .../web/rest/AuthorityController.java | 24 ++++-- ...AuthorityResourcePermissionController.java | 12 ++- .../web/rest/KeyAndPasswordVM.java | 0 .../web/rest/LoginController.java | 22 +++-- .../usermanagement/web/rest/LoginVM.java | 0 .../web/rest/ManagedUserVM.java | 0 .../web/rest/PublicUserController.java | 30 ++++--- .../web/rest/ResourceController.java | 0 .../web/rest/TenantController.java | 0 .../web/rest/TenantUserController.java | 14 ++-- .../web/rest/UserAccountController.java | 16 +++- .../rest/errors/BadRequestAlertException.java | 0 .../errors/EmailAlreadyUsedException.java | 0 .../web/rest/errors/ErrorConstants.java | 0 .../web/rest/errors/ExceptionTranslator.java | 13 ++- .../web/rest/errors/FieldErrorVM.java | 0 .../rest/errors/InvalidLoginException.java | 0 .../rest/errors/InvalidPasswordException.java | 0 .../errors/LoginAlreadyUsedException.java | 0 .../web/rest/errors/package-info.java | 0 .../usermanagement/web/rest/package-info.java | 0 .../java/io/flowinquiry/query/Filter.java | 0 .../io/flowinquiry/query/GroupFilter.java | 0 .../java/io/flowinquiry/query/QueryDTO.java | 0 .../java/io/flowinquiry/query/QueryUtils.java | 0 .../io/flowinquiry/security/Constants.java | 0 .../flowinquiry/security/SecurityUtils.java | 0 .../security/SpringSecurityAuditorAware.java | 0 .../management/SecurityMetersService.java | 0 .../security/management/package-info.java | 0 .../io/flowinquiry/security/package-info.java | 0 .../io/flowinquiry}/utils/Obfuscator.java | 2 +- .../java/io/flowinquiry}/utils/Random.java | 2 +- .../flowinquiry/web/filter/SpaWebFilter.java | 0 .../web/filter/TenantInjectInterceptor.java | 0 .../flowinquiry/web/filter/package-info.java | 0 .../web/rest/SharedController.java | 0 .../main/resources/i18n/messages.properties | 0 .../resources/i18n/messages_en.properties | 0 .../src/main/resources/templates/error.html | 0 .../templates/mail/activationEmail.html | 0 .../templates/mail/creationEmail.html | 0 .../templates/mail/passwordResetEmail.html | 0 gradle.properties | 2 +- gradle/libs.versions.toml | 11 ++- server/build.gradle | 83 ++----------------- .../exceptions/InvalidInputException.java | 7 -- .../StaticResourcesWebConfigurerTest.java | 7 +- .../flowinquiry/config/WebConfigurerTest.java | 4 +- .../io/flowinquiry/service/UserServiceIT.java | 2 +- .../web/rest/AuthenticateControllerIT.java | 9 +- .../web/rest/AuthorityControllerIT.java | 12 ++- .../web/rest/PublicUserControllerIT.java | 4 +- .../web/rest/UserAccountControllerIT.java | 4 +- .../web/rest/UserControllerIT.java | 9 +- .../rest/errors/ExceptionTranslatorIT.java | 4 +- .../ExceptionTranslatorTestController.java | 9 +- settings.gradle | 4 +- tools/liquibase/build.gradle | 4 +- tools/platform/build.gradle | 22 ----- .../flowinquiry/logback/LoggingService.java | 5 -- .../logback/MaskingMessageConverterTest.java | 72 ---------------- 254 files changed, 601 insertions(+), 399 deletions(-) delete mode 100644 buildSrc/gradle/libs.versions.toml create mode 100644 buildSrc/settings.gradle create mode 100644 commons/build.gradle rename {server => commons}/src/main/java/io/flowinquiry/config/ApplicationProperties.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/config/AsyncConfiguration.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/config/CustomBearerTokenAuthenticationEntryPoint.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/config/DatabaseConfiguration.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/config/DateTimeFormatConfiguration.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/config/FlowInquiryProfiles.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/config/FlowInquiryProperties.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/config/JacksonConfiguration.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/config/RepositoryLoggingAspect.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/config/RequestLoggingConfiguration.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/config/SchedulerConfiguration.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/config/SecurityConfiguration.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/config/SecurityJwtConfiguration.java (89%) rename {server => commons}/src/main/java/io/flowinquiry/config/SimpleCorsFilter.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/config/StaticResourcesWebConfiguration.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/config/TenantConfigurer.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/config/WebConfigurer.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/config/package-info.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/db/DbConstants.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/db/TenantConnectionProvider.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/db/TenantConstants.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/db/TenantContext.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/db/TenantSchemaResolver.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/db/service/LiquibaseService.java (100%) create mode 100644 commons/src/main/java/io/flowinquiry/exceptions/ResourceNotFoundException.java rename {server => commons}/src/main/java/io/flowinquiry/health/JWTSetupChecker.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/health/MailSetupChecker.java (100%) rename {tools/platform => commons}/src/main/java/io/flowinquiry/logback/MaskingMessageConverter.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/audit/AbstractAuditingEntity.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/audit/AbstractEntityFieldHandlerRegistry.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/audit/ActivityLogUtils.java (86%) rename {server => commons}/src/main/java/io/flowinquiry/modules/audit/AuditLogUpdateEvent.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/audit/AuditLogUpdateEventListener.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/audit/AuditUtils.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/audit/EntityFieldHandler.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/audit/EntityFieldHandlerRegistry.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/audit/EntityFieldHandlerRegistryFactory.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/audit/FieldHandler.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/domain/ActivityLog.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/domain/Comment.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/domain/EntityType.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/domain/Notification.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/repository/ActivityLogRepository.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/repository/CommentRepository.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/repository/NotificationRepository.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/service/ActivityLogService.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/service/CommentService.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/service/MailService.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/service/NotificationService.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/service/dto/ActivityLogDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/service/dto/CommentDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/service/dto/NotificationDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/service/mapper/ActivityLogMapper.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/service/mapper/CommentMapper.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/service/mapper/NotificationMapper.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/web/rest/ActivityLogController.java (87%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/web/rest/CommentController.java (63%) rename {server => commons}/src/main/java/io/flowinquiry/modules/collab/web/rest/NotificationController.java (96%) rename {server => commons}/src/main/java/io/flowinquiry/modules/fss/ResourceRemoveEvent.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/fss/service/LocalFileStorageService.java (98%) rename {server => commons}/src/main/java/io/flowinquiry/modules/fss/service/ResourceRemoveListener.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/fss/service/StorageService.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/fss/web/rest/FileDownloadController.java (89%) rename {server => commons}/src/main/java/io/flowinquiry/modules/fss/web/rest/FileUploadController.java (95%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/domain/EscalationTracking.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/domain/Organization.java (59%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/domain/Team.java (73%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/domain/TeamRequest.java (93%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/domain/TeamRequestPriority.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/domain/TeamRequestPriorityConverter.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/domain/TeamRole.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/domain/TeamWorkflowSelection.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/domain/TicketChannel.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/domain/TicketChannelConverter.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/domain/Workflow.java (81%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowAction.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowState.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowTransition.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowTransitionHistory.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowTransitionHistoryStatus.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowVisibility.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/handler/TeamRequestFieldHandlerRegistry.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/repository/EscalationTrackingRepository.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/repository/OrganizationRepository.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/repository/TeamRepository.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/repository/TeamRequestRepository.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/repository/TeamRoleRepository.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/repository/TeamWorkflowSelectionRepository.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowActionRepository.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowRepository.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowStateRepository.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowTransitionHistoryRepository.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowTransitionRepository.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/EscalationService.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/OrganizationService.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/TeamRequestService.java (99%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/TeamService.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/WorkflowService.java (97%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/WorkflowStateService.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/WorkflowTransitionHistoryService.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/WorkflowTransitionService.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/dto/OrganizationDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/dto/PriorityDistributionDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/dto/TeamDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/dto/TeamRequestDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/dto/TeamTicketPriorityDistributionDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/dto/TicketActionCountByDateDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/dto/TicketDistributionDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/dto/TransitionItemCollectionDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/dto/TransitionItemDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowDetailedDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowStateDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowTransitionDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/event/NewTeamRequestCreatedEvent.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/event/NewUsersAddedIntoTeamEvent.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/event/RemoveUserOutOfTeamEvent.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/event/TeamRequestWorkStateTransitionEvent.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/listener/DeleteUserEventListener.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/listener/NewTeamRequestCreatedEventListener.java (96%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/listener/NewUserAddedIntoTeamEventListener.java (95%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/listener/RemoveUserOutOfTeamEventListener.java (98%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/listener/TeamRequestWorkStateTransitionEventListener.java (96%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/mapper/OrganizationMapper.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/mapper/TeamMapper.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/mapper/TeamRequestMapper.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowMapper.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowStateMapper.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowTransitionHistoryMapper.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowTransitionMapper.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/web/rest/OrganizationController.java (95%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/web/rest/TeamController.java (91%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/web/rest/TeamRequestController.java (88%) rename {server => commons}/src/main/java/io/flowinquiry/modules/teams/web/rest/WorkflowController.java (89%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/AuthoritiesConstants.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/UserNotActivatedException.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/domain/Authority.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/domain/AuthorityResourcePermission.java (73%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/domain/AuthorityResourcePermissionId.java (77%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/domain/Permission.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/domain/PermissionConverter.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/domain/Resource.java (63%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/domain/Tenant.java (73%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/domain/User.java (85%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserAuthority.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserAuthorityId.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserStatus.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserTeam.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserTeamId.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/domain/package-info.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/repository/AuthorityRepository.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/repository/AuthorityResourcePermissionRepository.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/repository/ResourceRepository.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/repository/TenantRepository.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/repository/UserRepository.java (90%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/repository/UserTeamRepository.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/repository/package-info.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/AuthorityResourcePermissionService.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/AuthorityService.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/DomainUserDetailsService.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/EmailAlreadyUsedException.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/InvalidPasswordException.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/TenantService.java (96%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/UserService.java (95%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/AuthorityDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/AuthorityResourcePermissionDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/FwUserDetails.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/PasswordChangeDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/ResourceDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/ResourcePermissionDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/TenantDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/TicketStatisticsDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserHierarchyDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserKey.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserWithTeamRoleDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/package-info.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/event/DeleteUserEvent.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/AuthorityMapper.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/AuthorityResourcePermissionMapper.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/TenantMapper.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/UserMapper.java (96%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/UserMapperUtils.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/package-info.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/service/package-info.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthenticateController.java (94%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthorityController.java (87%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthorityResourcePermissionController.java (77%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/KeyAndPasswordVM.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/LoginController.java (92%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/LoginVM.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/ManagedUserVM.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/PublicUserController.java (92%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/ResourceController.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/TenantController.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/TenantUserController.java (79%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/UserAccountController.java (92%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/BadRequestAlertException.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/EmailAlreadyUsedException.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/ErrorConstants.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/ExceptionTranslator.java (98%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/FieldErrorVM.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/InvalidLoginException.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/InvalidPasswordException.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/LoginAlreadyUsedException.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/package-info.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/package-info.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/query/Filter.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/query/GroupFilter.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/query/QueryDTO.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/query/QueryUtils.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/security/Constants.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/security/SecurityUtils.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/security/SpringSecurityAuditorAware.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/security/management/SecurityMetersService.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/security/management/package-info.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/security/package-info.java (100%) rename {tools/platform/src/main/java/io/flowinquiry/platform => commons/src/main/java/io/flowinquiry}/utils/Obfuscator.java (97%) rename {tools/platform/src/main/java/io/flowinquiry/platform => commons/src/main/java/io/flowinquiry}/utils/Random.java (96%) rename {server => commons}/src/main/java/io/flowinquiry/web/filter/SpaWebFilter.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/web/filter/TenantInjectInterceptor.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/web/filter/package-info.java (100%) rename {server => commons}/src/main/java/io/flowinquiry/web/rest/SharedController.java (100%) rename {server => commons}/src/main/resources/i18n/messages.properties (100%) rename {server => commons}/src/main/resources/i18n/messages_en.properties (100%) rename {server => commons}/src/main/resources/templates/error.html (100%) rename {server => commons}/src/main/resources/templates/mail/activationEmail.html (100%) rename {server => commons}/src/main/resources/templates/mail/creationEmail.html (100%) rename {server => commons}/src/main/resources/templates/mail/passwordResetEmail.html (100%) delete mode 100644 server/src/main/java/io/flowinquiry/exceptions/InvalidInputException.java delete mode 100644 tools/platform/build.gradle delete mode 100644 tools/platform/src/main/java/io/flowinquiry/logback/LoggingService.java delete mode 100644 tools/platform/src/test/java/io/flowinquiry/logback/MaskingMessageConverterTest.java diff --git a/.gitignore b/.gitignore index 9e267d28..ac5f7174 100644 --- a/.gitignore +++ b/.gitignore @@ -157,3 +157,4 @@ Desktop.ini /tools/liquibase/build docker/volumes storage +commons/build diff --git a/build.gradle b/build.gradle index e140f39e..a34b9ee7 100644 --- a/build.gradle +++ b/build.gradle @@ -5,22 +5,48 @@ plugins { id "com.github.ben-manes.versions" version "0.51.0" } -description = "The flexible configurable crm service" +description = "The flexible configurable ticket management" assert System.properties["java.specification.version"] == "21" || "22" || "23" allprojects { group = 'io.flowinquiry' + version = project.findProperty('version') repositories { mavenCentral() } subprojects { - afterEvaluate { - if (it.plugins.hasPlugin('java') || it.plugins.hasPlugin('java-library')) { - java { - sourceCompatibility=21 - targetCompatibility=21 + afterEvaluate { project -> + if (project.plugins.hasPlugin('java') || project.plugins.hasPlugin('java-library')) { + project.java { + sourceCompatibility = 21 + targetCompatibility = 21 + } + } + + if (project.plugins.hasPlugin('java-library')) { + project.apply(plugin: 'maven-publish') + + project.publishing { + publications { + // Check if the publication already exists + if (!project.publishing.publications.names.contains("${project.name}MavenJava")) { + create("${project.name}MavenJava", MavenPublication) { + from project.components.java + } + } + } + repositories { + maven { + name = "GitHubPackages" + url = uri("https://maven.pkg.github.com/flowinquiry/flowinquiry-server") + credentials { + username = project.findProperty("gpr.user") ?: System.getenv("GITHUB_ACTOR") + password = project.findProperty("gpr.token") ?: System.getenv("GITHUB_TOKEN") + } + } + } } } } diff --git a/buildSrc/gradle/libs.versions.toml b/buildSrc/gradle/libs.versions.toml deleted file mode 100644 index 160a3f21..00000000 --- a/buildSrc/gradle/libs.versions.toml +++ /dev/null @@ -1,8 +0,0 @@ -[versions] - -[libraries] -jib-plugin = { module = "com.google.cloud.tools:jib-gradle-plugin", version = "3.4.4" } -modernizer-plugin = { module = "com.github.andygoossens:gradle-modernizer-plugin", version = "1.10.0" } -nohttp-plugin = { module = "io.spring.nohttp:nohttp-gradle", version = "0.0.11" } -splotless-plugin = { module = "com.diffplug.spotless:spotless-plugin-gradle", version = "7.0.0.BETA4" } -[plugins] diff --git a/buildSrc/settings.gradle b/buildSrc/settings.gradle new file mode 100644 index 00000000..bde9e603 --- /dev/null +++ b/buildSrc/settings.gradle @@ -0,0 +1,7 @@ +dependencyResolutionManagement { + versionCatalogs { + create('libs', { from(files("../gradle/libs.versions.toml")) }) + } +} + +rootProject.name = 'buildSrc' diff --git a/buildSrc/src/main/groovy/flowinquiry.docker-conventions.gradle b/buildSrc/src/main/groovy/flowinquiry.docker-conventions.gradle index af9710fd..59898b83 100644 --- a/buildSrc/src/main/groovy/flowinquiry.docker-conventions.gradle +++ b/buildSrc/src/main/groovy/flowinquiry.docker-conventions.gradle @@ -14,7 +14,7 @@ jib { } to { image = "flowinquiry/flowinquiry-server" - tags = ['latest', findProperty('projectVersion')] + tags = ['latest', findProperty('version')] } container { entrypoint = ["bash", "-c", "/entrypoint.sh"] diff --git a/commons/build.gradle b/commons/build.gradle new file mode 100644 index 00000000..de6c7f8d --- /dev/null +++ b/commons/build.gradle @@ -0,0 +1,80 @@ +plugins { + id 'java-library' + id 'maven-publish' + alias(libs.plugins.spring.dependency.management) +} + +group = 'io.flowinquiry' + +repositories { + mavenCentral() +} + +dependencyManagement { + imports { + mavenBom "org.springframework.boot:spring-boot-dependencies:3.4.1" + } +} + +dependencies { + compileOnly(libs.lombok) + api(libs.bundles.json) + api(libs.bundles.shedlock) + api(libs.dot.env) + api(libs.j2html) + api(libs.jclouds) { + exclude group: "com.sun.xml.bind" + } + api(libs.jhipster.framework) + api project(":tools:liquibase") + + + api("com.fasterxml.jackson.module:jackson-module-jaxb-annotations") + api("com.fasterxml.jackson.datatype:jackson-datatype-hppc") + api("com.fasterxml.jackson.datatype:jackson-datatype-hibernate6") + api("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") + api("com.zaxxer:HikariCP") + api("jakarta.annotation:jakarta.annotation-api") + api("org.apache.commons:commons-lang3") + api("org.hibernate.orm:hibernate-core") + api("org.hibernate.validator:hibernate-validator") + + api("org.springframework.boot:spring-boot-starter-actuator") + api("org.springframework.boot:spring-boot-starter-aop") + api("org.springframework.boot:spring-boot-starter-data-jpa") + api("org.springframework.boot:spring-boot-loader-tools") + api("org.springframework.boot:spring-boot-starter-logging") + api("org.springframework.boot:spring-boot-starter-mail") + api("org.springframework.boot:spring-boot-starter-oauth2-resource-server") + api("org.springframework.boot:spring-boot-starter-security") + api("org.springframework.boot:spring-boot-starter-thymeleaf") + api("org.springframework.boot:spring-boot-starter-undertow") + modules { + module("org.springframework.boot:spring-boot-starter-tomcat") { + replacedBy("org.springframework.boot:spring-boot-starter-undertow", "Use Undertow instead of Tomcat") + } + } + api("org.springframework.boot:spring-boot-starter-validation") + api("org.springframework.boot:spring-boot-starter-web") + api("org.springframework.security:spring-security-data") + + + testImplementation platform('org.junit:junit-bom:5.10.0') + testImplementation 'org.junit.jupiter:junit-jupiter' + testImplementation(libs.assertJ) + + testCompileOnly(libs.lombok) + testAnnotationProcessor(libs.lombok) + + annotationProcessor("org.springframework.boot:spring-boot-configuration-processor") + annotationProcessor("org.hibernate.orm:hibernate-jpamodelgen") + annotationProcessor("org.glassfish.jaxb:jaxb-runtime") + annotationProcessor(libs.lombok) + // Keep mapstruct dependency below the lombok + api(libs.mapstruct) + annotationProcessor(libs.mapstruct.processor) +} + +test { + useJUnitPlatform() +} \ No newline at end of file diff --git a/server/src/main/java/io/flowinquiry/config/ApplicationProperties.java b/commons/src/main/java/io/flowinquiry/config/ApplicationProperties.java similarity index 100% rename from server/src/main/java/io/flowinquiry/config/ApplicationProperties.java rename to commons/src/main/java/io/flowinquiry/config/ApplicationProperties.java diff --git a/server/src/main/java/io/flowinquiry/config/AsyncConfiguration.java b/commons/src/main/java/io/flowinquiry/config/AsyncConfiguration.java similarity index 100% rename from server/src/main/java/io/flowinquiry/config/AsyncConfiguration.java rename to commons/src/main/java/io/flowinquiry/config/AsyncConfiguration.java diff --git a/server/src/main/java/io/flowinquiry/config/CustomBearerTokenAuthenticationEntryPoint.java b/commons/src/main/java/io/flowinquiry/config/CustomBearerTokenAuthenticationEntryPoint.java similarity index 100% rename from server/src/main/java/io/flowinquiry/config/CustomBearerTokenAuthenticationEntryPoint.java rename to commons/src/main/java/io/flowinquiry/config/CustomBearerTokenAuthenticationEntryPoint.java diff --git a/server/src/main/java/io/flowinquiry/config/DatabaseConfiguration.java b/commons/src/main/java/io/flowinquiry/config/DatabaseConfiguration.java similarity index 100% rename from server/src/main/java/io/flowinquiry/config/DatabaseConfiguration.java rename to commons/src/main/java/io/flowinquiry/config/DatabaseConfiguration.java diff --git a/server/src/main/java/io/flowinquiry/config/DateTimeFormatConfiguration.java b/commons/src/main/java/io/flowinquiry/config/DateTimeFormatConfiguration.java similarity index 100% rename from server/src/main/java/io/flowinquiry/config/DateTimeFormatConfiguration.java rename to commons/src/main/java/io/flowinquiry/config/DateTimeFormatConfiguration.java diff --git a/server/src/main/java/io/flowinquiry/config/FlowInquiryProfiles.java b/commons/src/main/java/io/flowinquiry/config/FlowInquiryProfiles.java similarity index 100% rename from server/src/main/java/io/flowinquiry/config/FlowInquiryProfiles.java rename to commons/src/main/java/io/flowinquiry/config/FlowInquiryProfiles.java diff --git a/server/src/main/java/io/flowinquiry/config/FlowInquiryProperties.java b/commons/src/main/java/io/flowinquiry/config/FlowInquiryProperties.java similarity index 100% rename from server/src/main/java/io/flowinquiry/config/FlowInquiryProperties.java rename to commons/src/main/java/io/flowinquiry/config/FlowInquiryProperties.java diff --git a/server/src/main/java/io/flowinquiry/config/JacksonConfiguration.java b/commons/src/main/java/io/flowinquiry/config/JacksonConfiguration.java similarity index 100% rename from server/src/main/java/io/flowinquiry/config/JacksonConfiguration.java rename to commons/src/main/java/io/flowinquiry/config/JacksonConfiguration.java diff --git a/server/src/main/java/io/flowinquiry/config/RepositoryLoggingAspect.java b/commons/src/main/java/io/flowinquiry/config/RepositoryLoggingAspect.java similarity index 100% rename from server/src/main/java/io/flowinquiry/config/RepositoryLoggingAspect.java rename to commons/src/main/java/io/flowinquiry/config/RepositoryLoggingAspect.java diff --git a/server/src/main/java/io/flowinquiry/config/RequestLoggingConfiguration.java b/commons/src/main/java/io/flowinquiry/config/RequestLoggingConfiguration.java similarity index 100% rename from server/src/main/java/io/flowinquiry/config/RequestLoggingConfiguration.java rename to commons/src/main/java/io/flowinquiry/config/RequestLoggingConfiguration.java diff --git a/server/src/main/java/io/flowinquiry/config/SchedulerConfiguration.java b/commons/src/main/java/io/flowinquiry/config/SchedulerConfiguration.java similarity index 100% rename from server/src/main/java/io/flowinquiry/config/SchedulerConfiguration.java rename to commons/src/main/java/io/flowinquiry/config/SchedulerConfiguration.java diff --git a/server/src/main/java/io/flowinquiry/config/SecurityConfiguration.java b/commons/src/main/java/io/flowinquiry/config/SecurityConfiguration.java similarity index 100% rename from server/src/main/java/io/flowinquiry/config/SecurityConfiguration.java rename to commons/src/main/java/io/flowinquiry/config/SecurityConfiguration.java diff --git a/server/src/main/java/io/flowinquiry/config/SecurityJwtConfiguration.java b/commons/src/main/java/io/flowinquiry/config/SecurityJwtConfiguration.java similarity index 89% rename from server/src/main/java/io/flowinquiry/config/SecurityJwtConfiguration.java rename to commons/src/main/java/io/flowinquiry/config/SecurityJwtConfiguration.java index 4bc90049..bf99f0de 100644 --- a/server/src/main/java/io/flowinquiry/config/SecurityJwtConfiguration.java +++ b/commons/src/main/java/io/flowinquiry/config/SecurityJwtConfiguration.java @@ -1,18 +1,22 @@ package io.flowinquiry.config; -import static io.flowinquiry.security.SecurityUtils.JWT_ALGORITHM; - import com.nimbusds.jose.jwk.source.ImmutableSecret; import com.nimbusds.jose.util.Base64; import io.flowinquiry.security.management.SecurityMetersService; -import javax.crypto.SecretKey; -import javax.crypto.spec.SecretKeySpec; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.security.oauth2.jwt.*; +import org.springframework.security.oauth2.jwt.JwtDecoder; +import org.springframework.security.oauth2.jwt.JwtEncoder; +import org.springframework.security.oauth2.jwt.NimbusJwtDecoder; +import org.springframework.security.oauth2.jwt.NimbusJwtEncoder; + +import javax.crypto.SecretKey; +import javax.crypto.spec.SecretKeySpec; + +import static io.flowinquiry.security.SecurityUtils.JWT_ALGORITHM; @Configuration public class SecurityJwtConfiguration { diff --git a/server/src/main/java/io/flowinquiry/config/SimpleCorsFilter.java b/commons/src/main/java/io/flowinquiry/config/SimpleCorsFilter.java similarity index 100% rename from server/src/main/java/io/flowinquiry/config/SimpleCorsFilter.java rename to commons/src/main/java/io/flowinquiry/config/SimpleCorsFilter.java diff --git a/server/src/main/java/io/flowinquiry/config/StaticResourcesWebConfiguration.java b/commons/src/main/java/io/flowinquiry/config/StaticResourcesWebConfiguration.java similarity index 100% rename from server/src/main/java/io/flowinquiry/config/StaticResourcesWebConfiguration.java rename to commons/src/main/java/io/flowinquiry/config/StaticResourcesWebConfiguration.java diff --git a/server/src/main/java/io/flowinquiry/config/TenantConfigurer.java b/commons/src/main/java/io/flowinquiry/config/TenantConfigurer.java similarity index 100% rename from server/src/main/java/io/flowinquiry/config/TenantConfigurer.java rename to commons/src/main/java/io/flowinquiry/config/TenantConfigurer.java diff --git a/server/src/main/java/io/flowinquiry/config/WebConfigurer.java b/commons/src/main/java/io/flowinquiry/config/WebConfigurer.java similarity index 100% rename from server/src/main/java/io/flowinquiry/config/WebConfigurer.java rename to commons/src/main/java/io/flowinquiry/config/WebConfigurer.java diff --git a/server/src/main/java/io/flowinquiry/config/package-info.java b/commons/src/main/java/io/flowinquiry/config/package-info.java similarity index 100% rename from server/src/main/java/io/flowinquiry/config/package-info.java rename to commons/src/main/java/io/flowinquiry/config/package-info.java diff --git a/server/src/main/java/io/flowinquiry/db/DbConstants.java b/commons/src/main/java/io/flowinquiry/db/DbConstants.java similarity index 100% rename from server/src/main/java/io/flowinquiry/db/DbConstants.java rename to commons/src/main/java/io/flowinquiry/db/DbConstants.java diff --git a/server/src/main/java/io/flowinquiry/db/TenantConnectionProvider.java b/commons/src/main/java/io/flowinquiry/db/TenantConnectionProvider.java similarity index 100% rename from server/src/main/java/io/flowinquiry/db/TenantConnectionProvider.java rename to commons/src/main/java/io/flowinquiry/db/TenantConnectionProvider.java diff --git a/server/src/main/java/io/flowinquiry/db/TenantConstants.java b/commons/src/main/java/io/flowinquiry/db/TenantConstants.java similarity index 100% rename from server/src/main/java/io/flowinquiry/db/TenantConstants.java rename to commons/src/main/java/io/flowinquiry/db/TenantConstants.java diff --git a/server/src/main/java/io/flowinquiry/db/TenantContext.java b/commons/src/main/java/io/flowinquiry/db/TenantContext.java similarity index 100% rename from server/src/main/java/io/flowinquiry/db/TenantContext.java rename to commons/src/main/java/io/flowinquiry/db/TenantContext.java diff --git a/server/src/main/java/io/flowinquiry/db/TenantSchemaResolver.java b/commons/src/main/java/io/flowinquiry/db/TenantSchemaResolver.java similarity index 100% rename from server/src/main/java/io/flowinquiry/db/TenantSchemaResolver.java rename to commons/src/main/java/io/flowinquiry/db/TenantSchemaResolver.java diff --git a/server/src/main/java/io/flowinquiry/db/service/LiquibaseService.java b/commons/src/main/java/io/flowinquiry/db/service/LiquibaseService.java similarity index 100% rename from server/src/main/java/io/flowinquiry/db/service/LiquibaseService.java rename to commons/src/main/java/io/flowinquiry/db/service/LiquibaseService.java diff --git a/commons/src/main/java/io/flowinquiry/exceptions/ResourceNotFoundException.java b/commons/src/main/java/io/flowinquiry/exceptions/ResourceNotFoundException.java new file mode 100644 index 00000000..620ceed8 --- /dev/null +++ b/commons/src/main/java/io/flowinquiry/exceptions/ResourceNotFoundException.java @@ -0,0 +1,8 @@ +package io.flowinquiry.exceptions; + +public class ResourceNotFoundException extends RuntimeException { + + public ResourceNotFoundException(String message) { + super(message); + } +} diff --git a/server/src/main/java/io/flowinquiry/health/JWTSetupChecker.java b/commons/src/main/java/io/flowinquiry/health/JWTSetupChecker.java similarity index 100% rename from server/src/main/java/io/flowinquiry/health/JWTSetupChecker.java rename to commons/src/main/java/io/flowinquiry/health/JWTSetupChecker.java diff --git a/server/src/main/java/io/flowinquiry/health/MailSetupChecker.java b/commons/src/main/java/io/flowinquiry/health/MailSetupChecker.java similarity index 100% rename from server/src/main/java/io/flowinquiry/health/MailSetupChecker.java rename to commons/src/main/java/io/flowinquiry/health/MailSetupChecker.java diff --git a/tools/platform/src/main/java/io/flowinquiry/logback/MaskingMessageConverter.java b/commons/src/main/java/io/flowinquiry/logback/MaskingMessageConverter.java similarity index 100% rename from tools/platform/src/main/java/io/flowinquiry/logback/MaskingMessageConverter.java rename to commons/src/main/java/io/flowinquiry/logback/MaskingMessageConverter.java diff --git a/server/src/main/java/io/flowinquiry/modules/audit/AbstractAuditingEntity.java b/commons/src/main/java/io/flowinquiry/modules/audit/AbstractAuditingEntity.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/audit/AbstractAuditingEntity.java rename to commons/src/main/java/io/flowinquiry/modules/audit/AbstractAuditingEntity.java diff --git a/server/src/main/java/io/flowinquiry/modules/audit/AbstractEntityFieldHandlerRegistry.java b/commons/src/main/java/io/flowinquiry/modules/audit/AbstractEntityFieldHandlerRegistry.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/audit/AbstractEntityFieldHandlerRegistry.java rename to commons/src/main/java/io/flowinquiry/modules/audit/AbstractEntityFieldHandlerRegistry.java diff --git a/server/src/main/java/io/flowinquiry/modules/audit/ActivityLogUtils.java b/commons/src/main/java/io/flowinquiry/modules/audit/ActivityLogUtils.java similarity index 86% rename from server/src/main/java/io/flowinquiry/modules/audit/ActivityLogUtils.java rename to commons/src/main/java/io/flowinquiry/modules/audit/ActivityLogUtils.java index c0fb992d..54bc9cd2 100644 --- a/server/src/main/java/io/flowinquiry/modules/audit/ActivityLogUtils.java +++ b/commons/src/main/java/io/flowinquiry/modules/audit/ActivityLogUtils.java @@ -1,10 +1,17 @@ package io.flowinquiry.modules.audit; -import static j2html.TagCreator.*; - import j2html.tags.DomContent; + import java.util.List; +import static j2html.TagCreator.each; +import static j2html.TagCreator.table; +import static j2html.TagCreator.tbody; +import static j2html.TagCreator.td; +import static j2html.TagCreator.th; +import static j2html.TagCreator.thead; +import static j2html.TagCreator.tr; + public class ActivityLogUtils { public static String generateHtmlLog(List changes) { diff --git a/server/src/main/java/io/flowinquiry/modules/audit/AuditLogUpdateEvent.java b/commons/src/main/java/io/flowinquiry/modules/audit/AuditLogUpdateEvent.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/audit/AuditLogUpdateEvent.java rename to commons/src/main/java/io/flowinquiry/modules/audit/AuditLogUpdateEvent.java diff --git a/server/src/main/java/io/flowinquiry/modules/audit/AuditLogUpdateEventListener.java b/commons/src/main/java/io/flowinquiry/modules/audit/AuditLogUpdateEventListener.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/audit/AuditLogUpdateEventListener.java rename to commons/src/main/java/io/flowinquiry/modules/audit/AuditLogUpdateEventListener.java diff --git a/server/src/main/java/io/flowinquiry/modules/audit/AuditUtils.java b/commons/src/main/java/io/flowinquiry/modules/audit/AuditUtils.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/audit/AuditUtils.java rename to commons/src/main/java/io/flowinquiry/modules/audit/AuditUtils.java diff --git a/server/src/main/java/io/flowinquiry/modules/audit/EntityFieldHandler.java b/commons/src/main/java/io/flowinquiry/modules/audit/EntityFieldHandler.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/audit/EntityFieldHandler.java rename to commons/src/main/java/io/flowinquiry/modules/audit/EntityFieldHandler.java diff --git a/server/src/main/java/io/flowinquiry/modules/audit/EntityFieldHandlerRegistry.java b/commons/src/main/java/io/flowinquiry/modules/audit/EntityFieldHandlerRegistry.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/audit/EntityFieldHandlerRegistry.java rename to commons/src/main/java/io/flowinquiry/modules/audit/EntityFieldHandlerRegistry.java diff --git a/server/src/main/java/io/flowinquiry/modules/audit/EntityFieldHandlerRegistryFactory.java b/commons/src/main/java/io/flowinquiry/modules/audit/EntityFieldHandlerRegistryFactory.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/audit/EntityFieldHandlerRegistryFactory.java rename to commons/src/main/java/io/flowinquiry/modules/audit/EntityFieldHandlerRegistryFactory.java diff --git a/server/src/main/java/io/flowinquiry/modules/audit/FieldHandler.java b/commons/src/main/java/io/flowinquiry/modules/audit/FieldHandler.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/audit/FieldHandler.java rename to commons/src/main/java/io/flowinquiry/modules/audit/FieldHandler.java diff --git a/server/src/main/java/io/flowinquiry/modules/collab/domain/ActivityLog.java b/commons/src/main/java/io/flowinquiry/modules/collab/domain/ActivityLog.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/collab/domain/ActivityLog.java rename to commons/src/main/java/io/flowinquiry/modules/collab/domain/ActivityLog.java diff --git a/server/src/main/java/io/flowinquiry/modules/collab/domain/Comment.java b/commons/src/main/java/io/flowinquiry/modules/collab/domain/Comment.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/collab/domain/Comment.java rename to commons/src/main/java/io/flowinquiry/modules/collab/domain/Comment.java diff --git a/server/src/main/java/io/flowinquiry/modules/collab/domain/EntityType.java b/commons/src/main/java/io/flowinquiry/modules/collab/domain/EntityType.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/collab/domain/EntityType.java rename to commons/src/main/java/io/flowinquiry/modules/collab/domain/EntityType.java diff --git a/server/src/main/java/io/flowinquiry/modules/collab/domain/Notification.java b/commons/src/main/java/io/flowinquiry/modules/collab/domain/Notification.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/collab/domain/Notification.java rename to commons/src/main/java/io/flowinquiry/modules/collab/domain/Notification.java diff --git a/server/src/main/java/io/flowinquiry/modules/collab/repository/ActivityLogRepository.java b/commons/src/main/java/io/flowinquiry/modules/collab/repository/ActivityLogRepository.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/collab/repository/ActivityLogRepository.java rename to commons/src/main/java/io/flowinquiry/modules/collab/repository/ActivityLogRepository.java diff --git a/server/src/main/java/io/flowinquiry/modules/collab/repository/CommentRepository.java b/commons/src/main/java/io/flowinquiry/modules/collab/repository/CommentRepository.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/collab/repository/CommentRepository.java rename to commons/src/main/java/io/flowinquiry/modules/collab/repository/CommentRepository.java diff --git a/server/src/main/java/io/flowinquiry/modules/collab/repository/NotificationRepository.java b/commons/src/main/java/io/flowinquiry/modules/collab/repository/NotificationRepository.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/collab/repository/NotificationRepository.java rename to commons/src/main/java/io/flowinquiry/modules/collab/repository/NotificationRepository.java diff --git a/server/src/main/java/io/flowinquiry/modules/collab/service/ActivityLogService.java b/commons/src/main/java/io/flowinquiry/modules/collab/service/ActivityLogService.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/collab/service/ActivityLogService.java rename to commons/src/main/java/io/flowinquiry/modules/collab/service/ActivityLogService.java diff --git a/server/src/main/java/io/flowinquiry/modules/collab/service/CommentService.java b/commons/src/main/java/io/flowinquiry/modules/collab/service/CommentService.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/collab/service/CommentService.java rename to commons/src/main/java/io/flowinquiry/modules/collab/service/CommentService.java diff --git a/server/src/main/java/io/flowinquiry/modules/collab/service/MailService.java b/commons/src/main/java/io/flowinquiry/modules/collab/service/MailService.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/collab/service/MailService.java rename to commons/src/main/java/io/flowinquiry/modules/collab/service/MailService.java diff --git a/server/src/main/java/io/flowinquiry/modules/collab/service/NotificationService.java b/commons/src/main/java/io/flowinquiry/modules/collab/service/NotificationService.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/collab/service/NotificationService.java rename to commons/src/main/java/io/flowinquiry/modules/collab/service/NotificationService.java diff --git a/server/src/main/java/io/flowinquiry/modules/collab/service/dto/ActivityLogDTO.java b/commons/src/main/java/io/flowinquiry/modules/collab/service/dto/ActivityLogDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/collab/service/dto/ActivityLogDTO.java rename to commons/src/main/java/io/flowinquiry/modules/collab/service/dto/ActivityLogDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/collab/service/dto/CommentDTO.java b/commons/src/main/java/io/flowinquiry/modules/collab/service/dto/CommentDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/collab/service/dto/CommentDTO.java rename to commons/src/main/java/io/flowinquiry/modules/collab/service/dto/CommentDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/collab/service/dto/NotificationDTO.java b/commons/src/main/java/io/flowinquiry/modules/collab/service/dto/NotificationDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/collab/service/dto/NotificationDTO.java rename to commons/src/main/java/io/flowinquiry/modules/collab/service/dto/NotificationDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/collab/service/mapper/ActivityLogMapper.java b/commons/src/main/java/io/flowinquiry/modules/collab/service/mapper/ActivityLogMapper.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/collab/service/mapper/ActivityLogMapper.java rename to commons/src/main/java/io/flowinquiry/modules/collab/service/mapper/ActivityLogMapper.java diff --git a/server/src/main/java/io/flowinquiry/modules/collab/service/mapper/CommentMapper.java b/commons/src/main/java/io/flowinquiry/modules/collab/service/mapper/CommentMapper.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/collab/service/mapper/CommentMapper.java rename to commons/src/main/java/io/flowinquiry/modules/collab/service/mapper/CommentMapper.java diff --git a/server/src/main/java/io/flowinquiry/modules/collab/service/mapper/NotificationMapper.java b/commons/src/main/java/io/flowinquiry/modules/collab/service/mapper/NotificationMapper.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/collab/service/mapper/NotificationMapper.java rename to commons/src/main/java/io/flowinquiry/modules/collab/service/mapper/NotificationMapper.java diff --git a/server/src/main/java/io/flowinquiry/modules/collab/web/rest/ActivityLogController.java b/commons/src/main/java/io/flowinquiry/modules/collab/web/rest/ActivityLogController.java similarity index 87% rename from server/src/main/java/io/flowinquiry/modules/collab/web/rest/ActivityLogController.java rename to commons/src/main/java/io/flowinquiry/modules/collab/web/rest/ActivityLogController.java index 0d45fa0d..5fac6f9b 100644 --- a/server/src/main/java/io/flowinquiry/modules/collab/web/rest/ActivityLogController.java +++ b/commons/src/main/java/io/flowinquiry/modules/collab/web/rest/ActivityLogController.java @@ -22,7 +22,7 @@ public class ActivityLogController { @GetMapping public ResponseEntity> getActivityLogs( - @RequestParam EntityType entityType, @RequestParam Long entityId, Pageable pageable) { + @RequestParam("entityType") EntityType entityType, @RequestParam("entityId") Long entityId, Pageable pageable) { Page activityLogs = activityLogService.getActivityLogs(entityType, entityId, pageable); return ResponseEntity.ok(activityLogs); @@ -30,7 +30,7 @@ public ResponseEntity> getActivityLogs( @GetMapping("/user/{userId}") public ResponseEntity> getUserActivities( - @PathVariable Long userId, Pageable pageable) { + @PathVariable("userId") Long userId, Pageable pageable) { Page activities = activityLogService.getActivitiesForUser(userId, pageable); return ResponseEntity.ok(activities); } diff --git a/server/src/main/java/io/flowinquiry/modules/collab/web/rest/CommentController.java b/commons/src/main/java/io/flowinquiry/modules/collab/web/rest/CommentController.java similarity index 63% rename from server/src/main/java/io/flowinquiry/modules/collab/web/rest/CommentController.java rename to commons/src/main/java/io/flowinquiry/modules/collab/web/rest/CommentController.java index f960c66b..4ba85dd6 100644 --- a/server/src/main/java/io/flowinquiry/modules/collab/web/rest/CommentController.java +++ b/commons/src/main/java/io/flowinquiry/modules/collab/web/rest/CommentController.java @@ -4,9 +4,17 @@ import io.flowinquiry.modules.collab.domain.EntityType; import io.flowinquiry.modules.collab.service.CommentService; import io.flowinquiry.modules.collab.service.dto.CommentDTO; -import java.util.List; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; @RestController @RequestMapping("/api/comments") @@ -25,20 +33,20 @@ public ResponseEntity saveComment(@RequestBody CommentDTO comment) { } @GetMapping("/{id}") - public ResponseEntity getCommentById(@PathVariable Long id) { + public ResponseEntity getCommentById(@PathVariable("id") Long id) { Comment comment = commentService.getCommentById(id); return ResponseEntity.ok(comment); } @GetMapping public ResponseEntity> getCommentsForEntity( - @RequestParam EntityType entityType, @RequestParam Long entityId) { + @RequestParam("entityType") EntityType entityType, @RequestParam("entityId") Long entityId) { List comments = commentService.getCommentsForEntity(entityType, entityId); return ResponseEntity.ok(comments); } @DeleteMapping("/{id}") - public ResponseEntity deleteComment(@PathVariable Long id) { + public ResponseEntity deleteComment(@PathVariable("id") Long id) { commentService.deleteComment(id); return ResponseEntity.noContent().build(); } diff --git a/server/src/main/java/io/flowinquiry/modules/collab/web/rest/NotificationController.java b/commons/src/main/java/io/flowinquiry/modules/collab/web/rest/NotificationController.java similarity index 96% rename from server/src/main/java/io/flowinquiry/modules/collab/web/rest/NotificationController.java rename to commons/src/main/java/io/flowinquiry/modules/collab/web/rest/NotificationController.java index b1aa0b19..d470231a 100644 --- a/server/src/main/java/io/flowinquiry/modules/collab/web/rest/NotificationController.java +++ b/commons/src/main/java/io/flowinquiry/modules/collab/web/rest/NotificationController.java @@ -26,7 +26,7 @@ public NotificationController(NotificationService notificationService) { @GetMapping("/user/{userId}") public ResponseEntity> getUserNotifications( - @PathVariable Long userId, Pageable pageable) { + @PathVariable("userId") Long userId, Pageable pageable) { return ResponseEntity.ok(notificationService.getNotificationsForUser(userId, pageable)); } diff --git a/server/src/main/java/io/flowinquiry/modules/fss/ResourceRemoveEvent.java b/commons/src/main/java/io/flowinquiry/modules/fss/ResourceRemoveEvent.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/fss/ResourceRemoveEvent.java rename to commons/src/main/java/io/flowinquiry/modules/fss/ResourceRemoveEvent.java diff --git a/server/src/main/java/io/flowinquiry/modules/fss/service/LocalFileStorageService.java b/commons/src/main/java/io/flowinquiry/modules/fss/service/LocalFileStorageService.java similarity index 98% rename from server/src/main/java/io/flowinquiry/modules/fss/service/LocalFileStorageService.java rename to commons/src/main/java/io/flowinquiry/modules/fss/service/LocalFileStorageService.java index e81f8101..3b218299 100644 --- a/server/src/main/java/io/flowinquiry/modules/fss/service/LocalFileStorageService.java +++ b/commons/src/main/java/io/flowinquiry/modules/fss/service/LocalFileStorageService.java @@ -11,7 +11,8 @@ import java.nio.file.Files; import java.nio.file.Paths; import javax.imageio.ImageIO; -import org.jclouds.rest.ResourceNotFoundException; + +import io.flowinquiry.exceptions.ResourceNotFoundException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; diff --git a/server/src/main/java/io/flowinquiry/modules/fss/service/ResourceRemoveListener.java b/commons/src/main/java/io/flowinquiry/modules/fss/service/ResourceRemoveListener.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/fss/service/ResourceRemoveListener.java rename to commons/src/main/java/io/flowinquiry/modules/fss/service/ResourceRemoveListener.java diff --git a/server/src/main/java/io/flowinquiry/modules/fss/service/StorageService.java b/commons/src/main/java/io/flowinquiry/modules/fss/service/StorageService.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/fss/service/StorageService.java rename to commons/src/main/java/io/flowinquiry/modules/fss/service/StorageService.java diff --git a/server/src/main/java/io/flowinquiry/modules/fss/web/rest/FileDownloadController.java b/commons/src/main/java/io/flowinquiry/modules/fss/web/rest/FileDownloadController.java similarity index 89% rename from server/src/main/java/io/flowinquiry/modules/fss/web/rest/FileDownloadController.java rename to commons/src/main/java/io/flowinquiry/modules/fss/web/rest/FileDownloadController.java index 54ca0a4c..e6481ed4 100644 --- a/server/src/main/java/io/flowinquiry/modules/fss/web/rest/FileDownloadController.java +++ b/commons/src/main/java/io/flowinquiry/modules/fss/web/rest/FileDownloadController.java @@ -2,12 +2,17 @@ import io.flowinquiry.modules.fss.service.StorageService; import jakarta.servlet.http.HttpServletRequest; -import java.io.ByteArrayOutputStream; -import org.springframework.http.*; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.MediaTypeFactory; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.io.ByteArrayOutputStream; + @RestController @RequestMapping("/api/files") public class FileDownloadController { diff --git a/server/src/main/java/io/flowinquiry/modules/fss/web/rest/FileUploadController.java b/commons/src/main/java/io/flowinquiry/modules/fss/web/rest/FileUploadController.java similarity index 95% rename from server/src/main/java/io/flowinquiry/modules/fss/web/rest/FileUploadController.java rename to commons/src/main/java/io/flowinquiry/modules/fss/web/rest/FileUploadController.java index eb34666e..62bde674 100644 --- a/server/src/main/java/io/flowinquiry/modules/fss/web/rest/FileUploadController.java +++ b/commons/src/main/java/io/flowinquiry/modules/fss/web/rest/FileUploadController.java @@ -40,8 +40,8 @@ public FileUploadController(StorageService storageService) { @PostMapping(value = "/singleUpload") public ResponseEntity submit( @RequestParam("file") MultipartFile file, - @RequestParam String type, - @RequestParam Optional parentPath) + @RequestParam("type") String type, + @RequestParam("parentPath") Optional parentPath) throws Exception { String currentUser = SecurityUtils.getCurrentUserLogin().map(UserKey::getEmail).orElse(""); LOG.debug( diff --git a/server/src/main/java/io/flowinquiry/modules/teams/domain/EscalationTracking.java b/commons/src/main/java/io/flowinquiry/modules/teams/domain/EscalationTracking.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/domain/EscalationTracking.java rename to commons/src/main/java/io/flowinquiry/modules/teams/domain/EscalationTracking.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/domain/Organization.java b/commons/src/main/java/io/flowinquiry/modules/teams/domain/Organization.java similarity index 59% rename from server/src/main/java/io/flowinquiry/modules/teams/domain/Organization.java rename to commons/src/main/java/io/flowinquiry/modules/teams/domain/Organization.java index 484597d3..d5ac6807 100644 --- a/server/src/main/java/io/flowinquiry/modules/teams/domain/Organization.java +++ b/commons/src/main/java/io/flowinquiry/modules/teams/domain/Organization.java @@ -1,8 +1,20 @@ package io.flowinquiry.modules.teams.domain; -import jakarta.persistence.*; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + import java.util.Set; -import lombok.*; @Entity @Table(name = "fw_organization") diff --git a/server/src/main/java/io/flowinquiry/modules/teams/domain/Team.java b/commons/src/main/java/io/flowinquiry/modules/teams/domain/Team.java similarity index 73% rename from server/src/main/java/io/flowinquiry/modules/teams/domain/Team.java rename to commons/src/main/java/io/flowinquiry/modules/teams/domain/Team.java index fa39149f..9186e848 100644 --- a/server/src/main/java/io/flowinquiry/modules/teams/domain/Team.java +++ b/commons/src/main/java/io/flowinquiry/modules/teams/domain/Team.java @@ -1,12 +1,29 @@ package io.flowinquiry.modules.teams.domain; import io.flowinquiry.modules.usermanagement.domain.User; -import jakarta.persistence.*; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.JoinTable; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; import jakarta.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.Formula; + import java.util.HashSet; import java.util.Set; -import lombok.*; -import org.hibernate.annotations.Formula; @Entity @Table(name = "fw_team") diff --git a/server/src/main/java/io/flowinquiry/modules/teams/domain/TeamRequest.java b/commons/src/main/java/io/flowinquiry/modules/teams/domain/TeamRequest.java similarity index 93% rename from server/src/main/java/io/flowinquiry/modules/teams/domain/TeamRequest.java rename to commons/src/main/java/io/flowinquiry/modules/teams/domain/TeamRequest.java index 9509a0c4..0bc957ba 100644 --- a/server/src/main/java/io/flowinquiry/modules/teams/domain/TeamRequest.java +++ b/commons/src/main/java/io/flowinquiry/modules/teams/domain/TeamRequest.java @@ -12,8 +12,14 @@ import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + import java.time.LocalDate; -import lombok.*; @EqualsAndHashCode(callSuper = false) @Entity diff --git a/server/src/main/java/io/flowinquiry/modules/teams/domain/TeamRequestPriority.java b/commons/src/main/java/io/flowinquiry/modules/teams/domain/TeamRequestPriority.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/domain/TeamRequestPriority.java rename to commons/src/main/java/io/flowinquiry/modules/teams/domain/TeamRequestPriority.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/domain/TeamRequestPriorityConverter.java b/commons/src/main/java/io/flowinquiry/modules/teams/domain/TeamRequestPriorityConverter.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/domain/TeamRequestPriorityConverter.java rename to commons/src/main/java/io/flowinquiry/modules/teams/domain/TeamRequestPriorityConverter.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/domain/TeamRole.java b/commons/src/main/java/io/flowinquiry/modules/teams/domain/TeamRole.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/domain/TeamRole.java rename to commons/src/main/java/io/flowinquiry/modules/teams/domain/TeamRole.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/domain/TeamWorkflowSelection.java b/commons/src/main/java/io/flowinquiry/modules/teams/domain/TeamWorkflowSelection.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/domain/TeamWorkflowSelection.java rename to commons/src/main/java/io/flowinquiry/modules/teams/domain/TeamWorkflowSelection.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/domain/TicketChannel.java b/commons/src/main/java/io/flowinquiry/modules/teams/domain/TicketChannel.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/domain/TicketChannel.java rename to commons/src/main/java/io/flowinquiry/modules/teams/domain/TicketChannel.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/domain/TicketChannelConverter.java b/commons/src/main/java/io/flowinquiry/modules/teams/domain/TicketChannelConverter.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/domain/TicketChannelConverter.java rename to commons/src/main/java/io/flowinquiry/modules/teams/domain/TicketChannelConverter.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/domain/Workflow.java b/commons/src/main/java/io/flowinquiry/modules/teams/domain/Workflow.java similarity index 81% rename from server/src/main/java/io/flowinquiry/modules/teams/domain/Workflow.java rename to commons/src/main/java/io/flowinquiry/modules/teams/domain/Workflow.java index 1e026213..9543f29d 100644 --- a/server/src/main/java/io/flowinquiry/modules/teams/domain/Workflow.java +++ b/commons/src/main/java/io/flowinquiry/modules/teams/domain/Workflow.java @@ -1,8 +1,20 @@ package io.flowinquiry.modules.teams.domain; import io.flowinquiry.modules.audit.AbstractAuditingEntity; -import jakarta.persistence.*; -import java.util.Set; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.ForeignKey; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -10,6 +22,8 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.Set; + @EqualsAndHashCode(onlyExplicitlyIncluded = true) @Entity @Table(name = "fw_workflow") diff --git a/server/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowAction.java b/commons/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowAction.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowAction.java rename to commons/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowAction.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowState.java b/commons/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowState.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowState.java rename to commons/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowState.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowTransition.java b/commons/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowTransition.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowTransition.java rename to commons/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowTransition.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowTransitionHistory.java b/commons/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowTransitionHistory.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowTransitionHistory.java rename to commons/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowTransitionHistory.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowTransitionHistoryStatus.java b/commons/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowTransitionHistoryStatus.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowTransitionHistoryStatus.java rename to commons/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowTransitionHistoryStatus.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowVisibility.java b/commons/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowVisibility.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowVisibility.java rename to commons/src/main/java/io/flowinquiry/modules/teams/domain/WorkflowVisibility.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/handler/TeamRequestFieldHandlerRegistry.java b/commons/src/main/java/io/flowinquiry/modules/teams/handler/TeamRequestFieldHandlerRegistry.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/handler/TeamRequestFieldHandlerRegistry.java rename to commons/src/main/java/io/flowinquiry/modules/teams/handler/TeamRequestFieldHandlerRegistry.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/repository/EscalationTrackingRepository.java b/commons/src/main/java/io/flowinquiry/modules/teams/repository/EscalationTrackingRepository.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/repository/EscalationTrackingRepository.java rename to commons/src/main/java/io/flowinquiry/modules/teams/repository/EscalationTrackingRepository.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/repository/OrganizationRepository.java b/commons/src/main/java/io/flowinquiry/modules/teams/repository/OrganizationRepository.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/repository/OrganizationRepository.java rename to commons/src/main/java/io/flowinquiry/modules/teams/repository/OrganizationRepository.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/repository/TeamRepository.java b/commons/src/main/java/io/flowinquiry/modules/teams/repository/TeamRepository.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/repository/TeamRepository.java rename to commons/src/main/java/io/flowinquiry/modules/teams/repository/TeamRepository.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/repository/TeamRequestRepository.java b/commons/src/main/java/io/flowinquiry/modules/teams/repository/TeamRequestRepository.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/repository/TeamRequestRepository.java rename to commons/src/main/java/io/flowinquiry/modules/teams/repository/TeamRequestRepository.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/repository/TeamRoleRepository.java b/commons/src/main/java/io/flowinquiry/modules/teams/repository/TeamRoleRepository.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/repository/TeamRoleRepository.java rename to commons/src/main/java/io/flowinquiry/modules/teams/repository/TeamRoleRepository.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/repository/TeamWorkflowSelectionRepository.java b/commons/src/main/java/io/flowinquiry/modules/teams/repository/TeamWorkflowSelectionRepository.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/repository/TeamWorkflowSelectionRepository.java rename to commons/src/main/java/io/flowinquiry/modules/teams/repository/TeamWorkflowSelectionRepository.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowActionRepository.java b/commons/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowActionRepository.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowActionRepository.java rename to commons/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowActionRepository.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowRepository.java b/commons/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowRepository.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowRepository.java rename to commons/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowRepository.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowStateRepository.java b/commons/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowStateRepository.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowStateRepository.java rename to commons/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowStateRepository.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowTransitionHistoryRepository.java b/commons/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowTransitionHistoryRepository.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowTransitionHistoryRepository.java rename to commons/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowTransitionHistoryRepository.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowTransitionRepository.java b/commons/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowTransitionRepository.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowTransitionRepository.java rename to commons/src/main/java/io/flowinquiry/modules/teams/repository/WorkflowTransitionRepository.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/EscalationService.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/EscalationService.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/EscalationService.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/EscalationService.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/OrganizationService.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/OrganizationService.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/OrganizationService.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/OrganizationService.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/TeamRequestService.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/TeamRequestService.java similarity index 99% rename from server/src/main/java/io/flowinquiry/modules/teams/service/TeamRequestService.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/TeamRequestService.java index c49aec1a..5decccb4 100644 --- a/server/src/main/java/io/flowinquiry/modules/teams/service/TeamRequestService.java +++ b/commons/src/main/java/io/flowinquiry/modules/teams/service/TeamRequestService.java @@ -37,7 +37,7 @@ import java.util.Map; import java.util.Objects; import java.util.Optional; -import org.jclouds.rest.ResourceNotFoundException; +import io.flowinquiry.exceptions.ResourceNotFoundException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationEventPublisher; import org.springframework.data.domain.Page; diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/TeamService.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/TeamService.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/TeamService.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/TeamService.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/WorkflowService.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/WorkflowService.java similarity index 97% rename from server/src/main/java/io/flowinquiry/modules/teams/service/WorkflowService.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/WorkflowService.java index 6dfcccf6..d8d17f33 100644 --- a/server/src/main/java/io/flowinquiry/modules/teams/service/WorkflowService.java +++ b/commons/src/main/java/io/flowinquiry/modules/teams/service/WorkflowService.java @@ -1,14 +1,17 @@ package io.flowinquiry.modules.teams.service; -import static io.flowinquiry.query.QueryUtils.createSpecification; - import io.flowinquiry.modules.teams.domain.Team; import io.flowinquiry.modules.teams.domain.TeamWorkflowSelection; import io.flowinquiry.modules.teams.domain.Workflow; import io.flowinquiry.modules.teams.domain.WorkflowState; import io.flowinquiry.modules.teams.domain.WorkflowTransition; import io.flowinquiry.modules.teams.domain.WorkflowVisibility; -import io.flowinquiry.modules.teams.repository.*; +import io.flowinquiry.modules.teams.repository.TeamRepository; +import io.flowinquiry.modules.teams.repository.TeamRequestRepository; +import io.flowinquiry.modules.teams.repository.TeamWorkflowSelectionRepository; +import io.flowinquiry.modules.teams.repository.WorkflowRepository; +import io.flowinquiry.modules.teams.repository.WorkflowStateRepository; +import io.flowinquiry.modules.teams.repository.WorkflowTransitionRepository; import io.flowinquiry.modules.teams.service.dto.WorkflowDTO; import io.flowinquiry.modules.teams.service.dto.WorkflowDetailedDTO; import io.flowinquiry.modules.teams.service.dto.WorkflowStateDTO; @@ -18,15 +21,23 @@ import io.flowinquiry.modules.teams.service.mapper.WorkflowTransitionMapper; import io.flowinquiry.query.QueryDTO; import jakarta.persistence.EntityNotFoundException; -import java.util.*; -import java.util.function.Function; -import java.util.stream.Collectors; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.function.Function; +import java.util.stream.Collectors; + +import static io.flowinquiry.query.QueryUtils.createSpecification; + @Service public class WorkflowService { diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/WorkflowStateService.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/WorkflowStateService.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/WorkflowStateService.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/WorkflowStateService.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/WorkflowTransitionHistoryService.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/WorkflowTransitionHistoryService.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/WorkflowTransitionHistoryService.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/WorkflowTransitionHistoryService.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/WorkflowTransitionService.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/WorkflowTransitionService.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/WorkflowTransitionService.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/WorkflowTransitionService.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/dto/OrganizationDTO.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/dto/OrganizationDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/dto/OrganizationDTO.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/dto/OrganizationDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/dto/PriorityDistributionDTO.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/dto/PriorityDistributionDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/dto/PriorityDistributionDTO.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/dto/PriorityDistributionDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/dto/TeamDTO.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/dto/TeamDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/dto/TeamDTO.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/dto/TeamDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/dto/TeamRequestDTO.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/dto/TeamRequestDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/dto/TeamRequestDTO.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/dto/TeamRequestDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/dto/TeamTicketPriorityDistributionDTO.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/dto/TeamTicketPriorityDistributionDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/dto/TeamTicketPriorityDistributionDTO.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/dto/TeamTicketPriorityDistributionDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/dto/TicketActionCountByDateDTO.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/dto/TicketActionCountByDateDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/dto/TicketActionCountByDateDTO.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/dto/TicketActionCountByDateDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/dto/TicketDistributionDTO.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/dto/TicketDistributionDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/dto/TicketDistributionDTO.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/dto/TicketDistributionDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/dto/TransitionItemCollectionDTO.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/dto/TransitionItemCollectionDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/dto/TransitionItemCollectionDTO.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/dto/TransitionItemCollectionDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/dto/TransitionItemDTO.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/dto/TransitionItemDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/dto/TransitionItemDTO.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/dto/TransitionItemDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowDTO.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowDTO.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowDetailedDTO.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowDetailedDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowDetailedDTO.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowDetailedDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowStateDTO.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowStateDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowStateDTO.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowStateDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowTransitionDTO.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowTransitionDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowTransitionDTO.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/dto/WorkflowTransitionDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/event/NewTeamRequestCreatedEvent.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/event/NewTeamRequestCreatedEvent.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/event/NewTeamRequestCreatedEvent.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/event/NewTeamRequestCreatedEvent.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/event/NewUsersAddedIntoTeamEvent.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/event/NewUsersAddedIntoTeamEvent.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/event/NewUsersAddedIntoTeamEvent.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/event/NewUsersAddedIntoTeamEvent.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/event/RemoveUserOutOfTeamEvent.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/event/RemoveUserOutOfTeamEvent.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/event/RemoveUserOutOfTeamEvent.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/event/RemoveUserOutOfTeamEvent.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/event/TeamRequestWorkStateTransitionEvent.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/event/TeamRequestWorkStateTransitionEvent.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/event/TeamRequestWorkStateTransitionEvent.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/event/TeamRequestWorkStateTransitionEvent.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/listener/DeleteUserEventListener.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/listener/DeleteUserEventListener.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/listener/DeleteUserEventListener.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/listener/DeleteUserEventListener.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/listener/NewTeamRequestCreatedEventListener.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/listener/NewTeamRequestCreatedEventListener.java similarity index 96% rename from server/src/main/java/io/flowinquiry/modules/teams/service/listener/NewTeamRequestCreatedEventListener.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/listener/NewTeamRequestCreatedEventListener.java index 510c7d32..b108e029 100644 --- a/server/src/main/java/io/flowinquiry/modules/teams/service/listener/NewTeamRequestCreatedEventListener.java +++ b/commons/src/main/java/io/flowinquiry/modules/teams/service/listener/NewTeamRequestCreatedEventListener.java @@ -1,7 +1,5 @@ package io.flowinquiry.modules.teams.service.listener; -import static j2html.TagCreator.*; - import io.flowinquiry.modules.collab.domain.ActivityLog; import io.flowinquiry.modules.collab.domain.EntityType; import io.flowinquiry.modules.collab.domain.Notification; @@ -12,13 +10,18 @@ import io.flowinquiry.modules.teams.service.event.NewTeamRequestCreatedEvent; import io.flowinquiry.modules.usermanagement.domain.User; import io.flowinquiry.modules.usermanagement.service.dto.UserWithTeamRoleDTO; -import io.flowinquiry.platform.utils.Obfuscator; -import java.util.List; +import io.flowinquiry.utils.Obfuscator; import org.springframework.context.event.EventListener; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.List; + +import static j2html.TagCreator.a; +import static j2html.TagCreator.p; +import static j2html.TagCreator.text; + @Component public class NewTeamRequestCreatedEventListener { private final NotificationRepository notificationRepository; diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/listener/NewUserAddedIntoTeamEventListener.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/listener/NewUserAddedIntoTeamEventListener.java similarity index 95% rename from server/src/main/java/io/flowinquiry/modules/teams/service/listener/NewUserAddedIntoTeamEventListener.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/listener/NewUserAddedIntoTeamEventListener.java index 58705228..ac0d1c45 100644 --- a/server/src/main/java/io/flowinquiry/modules/teams/service/listener/NewUserAddedIntoTeamEventListener.java +++ b/commons/src/main/java/io/flowinquiry/modules/teams/service/listener/NewUserAddedIntoTeamEventListener.java @@ -1,7 +1,5 @@ package io.flowinquiry.modules.teams.service.listener; -import static j2html.TagCreator.*; - import io.flowinquiry.modules.collab.domain.ActivityLog; import io.flowinquiry.modules.collab.domain.EntityType; import io.flowinquiry.modules.collab.repository.ActivityLogRepository; @@ -10,16 +8,23 @@ import io.flowinquiry.modules.teams.service.event.NewUsersAddedIntoTeamEvent; import io.flowinquiry.modules.usermanagement.domain.User; import io.flowinquiry.modules.usermanagement.repository.UserRepository; -import io.flowinquiry.platform.utils.Obfuscator; import io.flowinquiry.security.SecurityUtils; +import io.flowinquiry.utils.Obfuscator; import j2html.tags.specialized.DivTag; import jakarta.persistence.EntityNotFoundException; -import java.util.List; import org.springframework.context.event.EventListener; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.List; + +import static j2html.TagCreator.a; +import static j2html.TagCreator.b; +import static j2html.TagCreator.div; +import static j2html.TagCreator.li; +import static j2html.TagCreator.ul; + @Component public class NewUserAddedIntoTeamEventListener { diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/listener/RemoveUserOutOfTeamEventListener.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/listener/RemoveUserOutOfTeamEventListener.java similarity index 98% rename from server/src/main/java/io/flowinquiry/modules/teams/service/listener/RemoveUserOutOfTeamEventListener.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/listener/RemoveUserOutOfTeamEventListener.java index 03295b2d..23664876 100644 --- a/server/src/main/java/io/flowinquiry/modules/teams/service/listener/RemoveUserOutOfTeamEventListener.java +++ b/commons/src/main/java/io/flowinquiry/modules/teams/service/listener/RemoveUserOutOfTeamEventListener.java @@ -11,8 +11,8 @@ import io.flowinquiry.modules.teams.service.event.RemoveUserOutOfTeamEvent; import io.flowinquiry.modules.usermanagement.domain.User; import io.flowinquiry.modules.usermanagement.repository.UserRepository; -import io.flowinquiry.platform.utils.Obfuscator; import io.flowinquiry.security.SecurityUtils; +import io.flowinquiry.utils.Obfuscator; import jakarta.persistence.EntityNotFoundException; import org.springframework.context.event.EventListener; import org.springframework.scheduling.annotation.Async; diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/listener/TeamRequestWorkStateTransitionEventListener.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/listener/TeamRequestWorkStateTransitionEventListener.java similarity index 96% rename from server/src/main/java/io/flowinquiry/modules/teams/service/listener/TeamRequestWorkStateTransitionEventListener.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/listener/TeamRequestWorkStateTransitionEventListener.java index 5d470eff..aff43c31 100644 --- a/server/src/main/java/io/flowinquiry/modules/teams/service/listener/TeamRequestWorkStateTransitionEventListener.java +++ b/commons/src/main/java/io/flowinquiry/modules/teams/service/listener/TeamRequestWorkStateTransitionEventListener.java @@ -1,7 +1,5 @@ package io.flowinquiry.modules.teams.service.listener; -import static j2html.TagCreator.*; - import io.flowinquiry.modules.collab.domain.ActivityLog; import io.flowinquiry.modules.collab.domain.EntityType; import io.flowinquiry.modules.collab.repository.ActivityLogRepository; @@ -11,13 +9,18 @@ import io.flowinquiry.modules.teams.repository.WorkflowStateRepository; import io.flowinquiry.modules.teams.service.WorkflowTransitionHistoryService; import io.flowinquiry.modules.teams.service.event.TeamRequestWorkStateTransitionEvent; -import io.flowinquiry.platform.utils.Obfuscator; +import io.flowinquiry.utils.Obfuscator; import jakarta.persistence.EntityNotFoundException; import org.springframework.context.event.EventListener; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import static j2html.TagCreator.a; +import static j2html.TagCreator.p; +import static j2html.TagCreator.span; +import static j2html.TagCreator.text; + @Component public class TeamRequestWorkStateTransitionEventListener { diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/mapper/OrganizationMapper.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/mapper/OrganizationMapper.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/mapper/OrganizationMapper.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/mapper/OrganizationMapper.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/mapper/TeamMapper.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/mapper/TeamMapper.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/mapper/TeamMapper.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/mapper/TeamMapper.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/mapper/TeamRequestMapper.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/mapper/TeamRequestMapper.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/mapper/TeamRequestMapper.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/mapper/TeamRequestMapper.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowMapper.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowMapper.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowMapper.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowMapper.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowStateMapper.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowStateMapper.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowStateMapper.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowStateMapper.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowTransitionHistoryMapper.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowTransitionHistoryMapper.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowTransitionHistoryMapper.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowTransitionHistoryMapper.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowTransitionMapper.java b/commons/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowTransitionMapper.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowTransitionMapper.java rename to commons/src/main/java/io/flowinquiry/modules/teams/service/mapper/WorkflowTransitionMapper.java diff --git a/server/src/main/java/io/flowinquiry/modules/teams/web/rest/OrganizationController.java b/commons/src/main/java/io/flowinquiry/modules/teams/web/rest/OrganizationController.java similarity index 95% rename from server/src/main/java/io/flowinquiry/modules/teams/web/rest/OrganizationController.java rename to commons/src/main/java/io/flowinquiry/modules/teams/web/rest/OrganizationController.java index 8254a96a..13756cf6 100644 --- a/server/src/main/java/io/flowinquiry/modules/teams/web/rest/OrganizationController.java +++ b/commons/src/main/java/io/flowinquiry/modules/teams/web/rest/OrganizationController.java @@ -43,21 +43,21 @@ public ResponseEntity createOrganization(@RequestBody Organization // Update an existing organization @PutMapping("/{id}") public ResponseEntity updateOrganization( - @PathVariable Long id, @RequestBody Organization organization) { + @PathVariable("id") Long id, @RequestBody Organization organization) { Organization updatedOrganization = organizationService.updateOrganization(id, organization); return ResponseEntity.ok(updatedOrganization); } // Delete an organization by ID @DeleteMapping("/{id}") - public ResponseEntity deleteOrganization(@PathVariable Long id) { + public ResponseEntity deleteOrganization(@PathVariable("id") Long id) { organizationService.deleteOrganization(id); return ResponseEntity.noContent().build(); } // Find an organization by ID @GetMapping("/{id}") - public ResponseEntity findOrganizationById(@PathVariable Long id) { + public ResponseEntity findOrganizationById(@PathVariable("id") Long id) { Organization organization = organizationService.findOrganizationById(id); return ResponseEntity.ok(organization); } diff --git a/server/src/main/java/io/flowinquiry/modules/teams/web/rest/TeamController.java b/commons/src/main/java/io/flowinquiry/modules/teams/web/rest/TeamController.java similarity index 91% rename from server/src/main/java/io/flowinquiry/modules/teams/web/rest/TeamController.java rename to commons/src/main/java/io/flowinquiry/modules/teams/web/rest/TeamController.java index 8b91ea60..07c7e968 100644 --- a/server/src/main/java/io/flowinquiry/modules/teams/web/rest/TeamController.java +++ b/commons/src/main/java/io/flowinquiry/modules/teams/web/rest/TeamController.java @@ -95,7 +95,7 @@ public ResponseEntity updateTeam( // Delete a team by ID @DeleteMapping("/{id}") - public ResponseEntity deleteTeam(@PathVariable Long id) { + public ResponseEntity deleteTeam(@PathVariable("id") Long id) { teamService.deleteTeam(id); return ResponseEntity.noContent().build(); } @@ -107,7 +107,7 @@ public ResponseEntity deleteTeams(@RequestBody List ids) { } @GetMapping("/{id}") - public ResponseEntity findTeamById(@PathVariable Long id) { + public ResponseEntity findTeamById(@PathVariable("id") Long id) { return teamService .findTeamById(id) .map(ResponseEntity::ok) @@ -121,19 +121,19 @@ public ResponseEntity> findTeams( } @GetMapping("/{teamId}/members") - public ResponseEntity> findUsersByTeamId(@PathVariable Long teamId) { + public ResponseEntity> findUsersByTeamId(@PathVariable("teamId") Long teamId) { return new ResponseEntity<>(teamService.getUsersByTeam(teamId), HttpStatus.OK); } @GetMapping("/users/{userId}") - public ResponseEntity> getTeamsByUserId(@PathVariable Long userId) { + public ResponseEntity> getTeamsByUserId(@PathVariable("userId") Long userId) { List teams = teamService.findAllTeamsByUserId(userId); return (teams.isEmpty()) ? ResponseEntity.noContent().build() : ResponseEntity.ok(teams); } @PostMapping("/{teamId}/add-users") public ResponseEntity addUsersToTeam( - @PathVariable Long teamId, @RequestBody ListUserIdsAndRoleDTO userIdsAndRoleDTO) { + @PathVariable("teamId") Long teamId, @RequestBody ListUserIdsAndRoleDTO userIdsAndRoleDTO) { teamService.addUsersToTeam( userIdsAndRoleDTO.getUserIds(), userIdsAndRoleDTO.getRole(), teamId); return ResponseEntity.ok().build(); @@ -142,21 +142,21 @@ public ResponseEntity addUsersToTeam( @GetMapping("/searchUsersNotInTeam") public ResponseEntity> findUsersNotInTeam( @RequestParam("userTerm") String searchTerm, @RequestParam("teamId") Long teamId) { - PageRequest pageRequest = PageRequest.of(0, 20); // Limit to 20 results + PageRequest pageRequest = PageRequest.of(0, 20); List users = teamService.findUsersNotInTeam(searchTerm, teamId, pageRequest); return ResponseEntity.ok(users); } @DeleteMapping("/{teamId}/users/{userId}") public ResponseEntity removeUserFromTeam( - @PathVariable Long userId, @PathVariable Long teamId) { + @PathVariable("userId") Long userId, @PathVariable("teamId") Long teamId) { teamService.removeUserFromTeam(userId, teamId); return ResponseEntity.noContent().build(); } @GetMapping("/{teamId}/users/{userId}/role") public ResponseEntity getUserRoleInTeam( - @PathVariable Long teamId, @PathVariable Long userId) { + @PathVariable("teamId") Long teamId, @PathVariable("userId") Long userId) { String role = teamService.getUserRoleInTeam(userId, teamId); return ResponseEntity.ok(Json.createObjectBuilder().add("role", role).build().toString()); } diff --git a/server/src/main/java/io/flowinquiry/modules/teams/web/rest/TeamRequestController.java b/commons/src/main/java/io/flowinquiry/modules/teams/web/rest/TeamRequestController.java similarity index 88% rename from server/src/main/java/io/flowinquiry/modules/teams/web/rest/TeamRequestController.java rename to commons/src/main/java/io/flowinquiry/modules/teams/web/rest/TeamRequestController.java index 8597285d..775f7405 100644 --- a/server/src/main/java/io/flowinquiry/modules/teams/web/rest/TeamRequestController.java +++ b/commons/src/main/java/io/flowinquiry/modules/teams/web/rest/TeamRequestController.java @@ -48,7 +48,7 @@ public ResponseEntity> findTeamRequests( } @GetMapping("/{id}") - public ResponseEntity getTeamRequestById(@PathVariable Long id) { + public ResponseEntity getTeamRequestById(@PathVariable("id") Long id) { return ResponseEntity.ok(teamRequestService.getTeamRequestById(id)); } @@ -61,7 +61,7 @@ public ResponseEntity createTeamRequest( @PutMapping("/{id}") public ResponseEntity updateTeamRequest( - @PathVariable Long id, @RequestBody TeamRequestDTO teamRequestDTO) { + @PathVariable("id") Long id, @RequestBody TeamRequestDTO teamRequestDTO) { if (!id.equals(teamRequestDTO.getId())) { throw new IllegalArgumentException("Id in URL and payload do not match"); } @@ -69,13 +69,13 @@ public ResponseEntity updateTeamRequest( } @DeleteMapping("/{id}") - public ResponseEntity deleteTeamRequest(@PathVariable Long id) { + public ResponseEntity deleteTeamRequest(@PathVariable("id") Long id) { teamRequestService.deleteTeamRequest(id); return ResponseEntity.noContent().build(); } @GetMapping("/{currentId}/next") - public ResponseEntity getNextEntity(@PathVariable Long currentId) { + public ResponseEntity getNextEntity(@PathVariable("currentId") Long currentId) { return teamRequestService .getNextEntity(currentId) .map(ResponseEntity::ok) @@ -83,7 +83,7 @@ public ResponseEntity getNextEntity(@PathVariable Long currentId } @GetMapping("/{currentId}/previous") - public ResponseEntity getPreviousEntity(@PathVariable Long currentId) { + public ResponseEntity getPreviousEntity(@PathVariable("currentId") Long currentId) { return teamRequestService .getPreviousEntity(currentId) .map(ResponseEntity::ok) @@ -92,19 +92,19 @@ public ResponseEntity getPreviousEntity(@PathVariable Long curre // Endpoint to get ticket distribution for a specific team @GetMapping("/teams/{teamId}/ticket-distribution") - public List getTicketDistribution(@PathVariable Long teamId) { + public List getTicketDistribution(@PathVariable("teamId") Long teamId) { return teamRequestService.getTicketDistribution(teamId); } // Endpoint to get unassigned tickets for a specific team @GetMapping("/teams/{teamId}/unassigned-tickets") - public Page getUnassignedTickets(@PathVariable Long teamId, Pageable pageable) { + public Page getUnassignedTickets(@PathVariable("teamId") Long teamId, Pageable pageable) { return teamRequestService.getUnassignedTickets(teamId, pageable); } // Endpoint to get priority distribution for a specific team @GetMapping("/teams/{teamId}/priority-distribution") - public List getPriorityDistribution(@PathVariable Long teamId) { + public List getPriorityDistribution(@PathVariable("teamId") Long teamId) { return teamRequestService.getPriorityDistribution(teamId); } @@ -116,7 +116,7 @@ public List getPriorityDistribution(@PathVariable Long */ @GetMapping("/{teamRequestId}/states-history") public ResponseEntity getTicketStateChangesHistory( - @PathVariable Long teamRequestId) { + @PathVariable("teamRequestId") Long teamRequestId) { TransitionItemCollectionDTO ticketHistory = workflowTransitionHistoryService.getTransitionHistoryByTicketId(teamRequestId); @@ -124,37 +124,37 @@ public ResponseEntity getTicketStateChangesHistory( } @GetMapping("/teams/{teamId}/statistics") - public TicketStatisticsDTO getTicketStatisticsByTeamId(@PathVariable Long teamId) { + public TicketStatisticsDTO getTicketStatisticsByTeamId(@PathVariable("teamId") Long teamId) { return teamRequestService.getTicketStatisticsByTeamId(teamId); } @GetMapping("/teams/{teamId}/overdue-tickets") public Page getOverdueTicketsByTeam( - @PathVariable Long teamId, Pageable pageable) { + @PathVariable("teamId") Long teamId, Pageable pageable) { return teamRequestService.getOverdueTicketsByTeam(teamId, pageable); } @GetMapping("/teams/{teamId}/overdue-tickets/count") - public Long countOverdueTickets(@PathVariable Long teamId) { + public Long countOverdueTickets(@PathVariable("teamId") Long teamId) { return teamRequestService.countOverdueTickets(teamId); } @GetMapping("/teams/{teamId}/ticket-creations-day-series") public List getTicketCreationDaySeries( - @PathVariable Long teamId, - @RequestParam(required = false, defaultValue = "7") int days) { + @PathVariable("teamId") Long teamId, + @RequestParam(value = "days", required = false, defaultValue = "7") int days) { return teamRequestService.getTicketCreationTimeSeries(teamId, days); } @GetMapping("/users/{userId}/overdue-tickets") public Page getOverdueTicketsByUser( - @PathVariable Long userId, Pageable pageable) { + @PathVariable("userId") Long userId, Pageable pageable) { return teamRequestService.getOverdueTicketsByUser(userId, pageable); } @GetMapping("/users/{userId}/team-tickets-priority-distribution") public ResponseEntity> - getTeamTicketPriorityDistributionForUser(@PathVariable Long userId) { + getTeamTicketPriorityDistributionForUser(@PathVariable("userId") Long userId) { List distribution = teamRequestService.getPriorityDistributionForUser(userId); return ResponseEntity.ok(distribution); diff --git a/server/src/main/java/io/flowinquiry/modules/teams/web/rest/WorkflowController.java b/commons/src/main/java/io/flowinquiry/modules/teams/web/rest/WorkflowController.java similarity index 89% rename from server/src/main/java/io/flowinquiry/modules/teams/web/rest/WorkflowController.java rename to commons/src/main/java/io/flowinquiry/modules/teams/web/rest/WorkflowController.java index 4216a8df..aad81ba8 100644 --- a/server/src/main/java/io/flowinquiry/modules/teams/web/rest/WorkflowController.java +++ b/commons/src/main/java/io/flowinquiry/modules/teams/web/rest/WorkflowController.java @@ -47,7 +47,7 @@ public ResponseEntity> findWorkflows( } @GetMapping("/{id}") - public ResponseEntity getWorkflowById(@PathVariable Long id) { + public ResponseEntity getWorkflowById(@PathVariable("id") Long id) { return workflowService .getWorkflowById(id) .map(ResponseEntity::ok) @@ -56,7 +56,7 @@ public ResponseEntity getWorkflowById(@PathVariable Long id) { @PutMapping("/{id}") public ResponseEntity updateWorkflow( - @PathVariable Long id, @RequestBody WorkflowDTO workflow) { + @PathVariable("id") Long id, @RequestBody WorkflowDTO workflow) { try { WorkflowDTO updatedWorkflow = workflowService.updateWorkflow(id, workflow); return ResponseEntity.ok(updatedWorkflow); @@ -66,7 +66,7 @@ public ResponseEntity updateWorkflow( } @DeleteMapping("/{id}") - public ResponseEntity deleteWorkflow(@PathVariable Long id) { + public ResponseEntity deleteWorkflow(@PathVariable("id") Long id) { try { workflowService.deleteWorkflow(id); return ResponseEntity.noContent().build(); @@ -85,7 +85,7 @@ public ResponseEntity deleteWorkflow(@PathVariable Long id) { * @return a list of workflows available for the team. */ @GetMapping("/teams/{teamId}") - public ResponseEntity> getWorkflowsByTeam(@PathVariable Long teamId) { + public ResponseEntity> getWorkflowsByTeam(@PathVariable("teamId") Long teamId) { List workflows = workflowService.getWorkflowsForTeam(teamId); return ResponseEntity.ok(workflows); } @@ -98,7 +98,7 @@ public ResponseEntity> getWorkflowsByTeam(@PathVariable Long t */ @GetMapping("/teams/{teamId}/global-workflows-not-linked-yet") public ResponseEntity> getGlobalWorkflowsNotLinkedToTeam( - @PathVariable Long teamId) { + @PathVariable("teamId") Long teamId) { List workflows = workflowService.listGlobalWorkflowsNotLinkedToTeam(teamId); return ResponseEntity.ok(workflows); } @@ -114,9 +114,9 @@ public ResponseEntity> getGlobalWorkflowsNotLinkedToTeam( */ @GetMapping("/{workflowId}/transitions") public ResponseEntity> getValidTargetStates( - @PathVariable Long workflowId, - @RequestParam Long workflowStateId, - @RequestParam(defaultValue = "false") boolean includeSelf) { + @PathVariable("workflowId") Long workflowId, + @RequestParam("workflowStateId") Long workflowStateId, + @RequestParam(value = "includeSelf", defaultValue = "false") boolean includeSelf) { List validTargetStates = workflowTransitionService.getValidTargetWorkflowStates( workflowId, workflowStateId, includeSelf); @@ -130,7 +130,7 @@ public ResponseEntity> getValidTargetStates( * @return WorkflowDetailedDTO if found, otherwise 404. */ @GetMapping("/details/{workflowId}") - public ResponseEntity getWorkflowDetail(@PathVariable Long workflowId) { + public ResponseEntity getWorkflowDetail(@PathVariable("workflowId") Long workflowId) { return workflowService .getWorkflowDetail(workflowId) .map(ResponseEntity::ok) @@ -146,7 +146,7 @@ public ResponseEntity saveWorkflow( @PutMapping("/details/{workflowId}") public ResponseEntity updateWorkflow( - @PathVariable Long workflowId, + @PathVariable("workflowId") Long workflowId, @Valid @RequestBody WorkflowDetailedDTO workflowDetailedDTO) { WorkflowDetailedDTO updatedWorkflow = workflowService.updateWorkflow(workflowId, workflowDetailedDTO); @@ -156,8 +156,8 @@ public ResponseEntity updateWorkflow( @PostMapping("/{referencedWorkflowId}/teams/{teamId}/create-workflow-reference") public ResponseEntity createWorkflowByReference( - @PathVariable Long teamId, - @PathVariable Long referencedWorkflowId, + @PathVariable("teamId") Long teamId, + @PathVariable("referencedWorkflowId") Long referencedWorkflowId, @RequestBody WorkflowDTO workflowDTO) { WorkflowDetailedDTO createdWorkflow = workflowService.createWorkflowByReference( @@ -167,8 +167,8 @@ public ResponseEntity createWorkflowByReference( @PostMapping("/{workflowToCloneId}/teams/{teamId}/create-workflow-clone") public ResponseEntity createWorkflowByCloning( - @PathVariable Long teamId, - @PathVariable Long workflowToCloneId, + @PathVariable("teamId") Long teamId, + @PathVariable("workflowToCloneId") Long workflowToCloneId, @RequestBody WorkflowDTO workflowDTO) { WorkflowDetailedDTO clonedWorkflow = workflowService.createWorkflowByCloning(teamId, workflowToCloneId, workflowDTO); diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/AuthoritiesConstants.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/AuthoritiesConstants.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/AuthoritiesConstants.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/AuthoritiesConstants.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/UserNotActivatedException.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/UserNotActivatedException.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/UserNotActivatedException.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/UserNotActivatedException.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/domain/Authority.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/Authority.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/domain/Authority.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/Authority.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/domain/AuthorityResourcePermission.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/AuthorityResourcePermission.java similarity index 73% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/domain/AuthorityResourcePermission.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/AuthorityResourcePermission.java index 4eff82ae..4a600278 100644 --- a/server/src/main/java/io/flowinquiry/modules/usermanagement/domain/AuthorityResourcePermission.java +++ b/commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/AuthorityResourcePermission.java @@ -1,7 +1,19 @@ package io.flowinquiry.modules.usermanagement.domain; -import jakarta.persistence.*; -import lombok.*; +import jakarta.persistence.Column; +import jakarta.persistence.Convert; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.IdClass; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; @Getter @Setter diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/domain/AuthorityResourcePermissionId.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/AuthorityResourcePermissionId.java similarity index 77% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/domain/AuthorityResourcePermissionId.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/AuthorityResourcePermissionId.java index a7531f2f..a47c9b2a 100644 --- a/server/src/main/java/io/flowinquiry/modules/usermanagement/domain/AuthorityResourcePermissionId.java +++ b/commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/AuthorityResourcePermissionId.java @@ -1,8 +1,12 @@ package io.flowinquiry.modules.usermanagement.domain; import jakarta.persistence.Column; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + import java.io.Serializable; -import lombok.*; @Data @Builder diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/domain/Permission.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/Permission.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/domain/Permission.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/Permission.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/domain/PermissionConverter.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/PermissionConverter.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/domain/PermissionConverter.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/PermissionConverter.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/domain/Resource.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/Resource.java similarity index 63% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/domain/Resource.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/Resource.java index 30cbe3c5..5890ecd6 100644 --- a/server/src/main/java/io/flowinquiry/modules/usermanagement/domain/Resource.java +++ b/commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/Resource.java @@ -1,9 +1,21 @@ package io.flowinquiry.modules.usermanagement.domain; -import jakarta.persistence.*; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + import java.util.HashSet; import java.util.Set; -import lombok.*; @Entity @Table(name = "fw_resource") diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/domain/Tenant.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/Tenant.java similarity index 73% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/domain/Tenant.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/Tenant.java index 74440e3e..4ff65e7a 100644 --- a/server/src/main/java/io/flowinquiry/modules/usermanagement/domain/Tenant.java +++ b/commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/Tenant.java @@ -1,13 +1,24 @@ package io.flowinquiry.modules.usermanagement.domain; -import static io.flowinquiry.db.DbConstants.MASTER_SCHEMA; - import io.flowinquiry.modules.audit.AbstractAuditingEntity; -import jakarta.persistence.*; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + import java.io.Serializable; -import lombok.*; + +import static io.flowinquiry.db.DbConstants.MASTER_SCHEMA; @Entity @Table(name = "fw_tenant", schema = MASTER_SCHEMA) diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/domain/User.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/User.java similarity index 85% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/domain/User.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/User.java index 66956c60..849c485c 100644 --- a/server/src/main/java/io/flowinquiry/modules/usermanagement/domain/User.java +++ b/commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/User.java @@ -3,10 +3,32 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import io.flowinquiry.modules.audit.AbstractAuditingEntity; import io.flowinquiry.modules.teams.domain.Team; -import jakarta.persistence.*; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.JoinTable; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; +import org.hibernate.annotations.BatchSize; + import java.io.Serial; import java.io.Serializable; import java.time.Instant; @@ -15,8 +37,6 @@ import java.time.ZoneOffset; import java.util.HashSet; import java.util.Set; -import lombok.*; -import org.hibernate.annotations.BatchSize; /** A user. */ @Entity diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserAuthority.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserAuthority.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserAuthority.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserAuthority.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserAuthorityId.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserAuthorityId.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserAuthorityId.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserAuthorityId.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserStatus.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserStatus.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserStatus.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserStatus.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserTeam.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserTeam.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserTeam.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserTeam.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserTeamId.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserTeamId.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserTeamId.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/UserTeamId.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/domain/package-info.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/package-info.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/domain/package-info.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/domain/package-info.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/repository/AuthorityRepository.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/repository/AuthorityRepository.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/repository/AuthorityRepository.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/repository/AuthorityRepository.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/repository/AuthorityResourcePermissionRepository.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/repository/AuthorityResourcePermissionRepository.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/repository/AuthorityResourcePermissionRepository.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/repository/AuthorityResourcePermissionRepository.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/repository/ResourceRepository.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/repository/ResourceRepository.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/repository/ResourceRepository.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/repository/ResourceRepository.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/repository/TenantRepository.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/repository/TenantRepository.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/repository/TenantRepository.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/repository/TenantRepository.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/repository/UserRepository.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/repository/UserRepository.java similarity index 90% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/repository/UserRepository.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/repository/UserRepository.java index db743489..aa55c14a 100644 --- a/server/src/main/java/io/flowinquiry/modules/usermanagement/repository/UserRepository.java +++ b/commons/src/main/java/io/flowinquiry/modules/usermanagement/repository/UserRepository.java @@ -2,15 +2,20 @@ import io.flowinquiry.modules.usermanagement.domain.User; import io.flowinquiry.modules.usermanagement.service.dto.UserHierarchyDTO; -import java.time.LocalDateTime; -import java.util.List; -import java.util.Optional; import org.springframework.cache.annotation.Cacheable; -import org.springframework.data.jpa.repository.*; +import org.springframework.data.jpa.repository.EntityGraph; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; +import java.time.LocalDateTime; +import java.util.List; +import java.util.Optional; + /** Spring Data JPA repository for the {@link User} entity. */ @Repository public interface UserRepository extends JpaRepository, JpaSpecificationExecutor { @@ -43,7 +48,7 @@ public interface UserRepository extends JpaRepository, JpaSpecificat @Modifying @Transactional @Query("UPDATE User u SET u.lastLoginTime = :lastLoginTime WHERE u.email = :userEmail") - void updateLastLoginTime(String userEmail, LocalDateTime lastLoginTime); + void updateLastLoginTime(@Param("userEmail") String userEmail, @Param("lastLoginTime") LocalDateTime lastLoginTime); @Query( value = diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/repository/UserTeamRepository.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/repository/UserTeamRepository.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/repository/UserTeamRepository.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/repository/UserTeamRepository.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/repository/package-info.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/repository/package-info.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/repository/package-info.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/repository/package-info.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/AuthorityResourcePermissionService.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/AuthorityResourcePermissionService.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/AuthorityResourcePermissionService.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/AuthorityResourcePermissionService.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/AuthorityService.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/AuthorityService.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/AuthorityService.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/AuthorityService.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/DomainUserDetailsService.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/DomainUserDetailsService.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/DomainUserDetailsService.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/DomainUserDetailsService.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/EmailAlreadyUsedException.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/EmailAlreadyUsedException.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/EmailAlreadyUsedException.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/EmailAlreadyUsedException.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/InvalidPasswordException.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/InvalidPasswordException.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/InvalidPasswordException.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/InvalidPasswordException.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/TenantService.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/TenantService.java similarity index 96% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/TenantService.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/TenantService.java index 8ed4b7e0..054b0e6e 100644 --- a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/TenantService.java +++ b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/TenantService.java @@ -1,12 +1,9 @@ package io.flowinquiry.modules.usermanagement.service; -import static io.flowinquiry.db.DbConstants.DEFAULT_TENANT; - import io.flowinquiry.config.FlowInquiryProfiles; import io.flowinquiry.db.service.LiquibaseService; import io.flowinquiry.modules.usermanagement.domain.Tenant; import io.flowinquiry.modules.usermanagement.repository.TenantRepository; -import java.util.*; import lombok.SneakyThrows; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -15,6 +12,13 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.List; +import java.util.Optional; +import java.util.Random; +import java.util.UUID; + +import static io.flowinquiry.db.DbConstants.DEFAULT_TENANT; + @Service @Transactional public class TenantService { diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/UserService.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/UserService.java similarity index 95% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/UserService.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/UserService.java index c5c39bd2..6d1c4697 100644 --- a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/UserService.java +++ b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/UserService.java @@ -1,9 +1,11 @@ package io.flowinquiry.modules.usermanagement.service; -import static io.flowinquiry.query.QueryUtils.createSpecification; - import io.flowinquiry.modules.usermanagement.AuthoritiesConstants; -import io.flowinquiry.modules.usermanagement.domain.*; +import io.flowinquiry.modules.usermanagement.domain.Authority; +import io.flowinquiry.modules.usermanagement.domain.Permission; +import io.flowinquiry.modules.usermanagement.domain.User; +import io.flowinquiry.modules.usermanagement.domain.UserStatus; +import io.flowinquiry.modules.usermanagement.domain.User_; import io.flowinquiry.modules.usermanagement.repository.AuthorityRepository; import io.flowinquiry.modules.usermanagement.repository.UserRepository; import io.flowinquiry.modules.usermanagement.service.dto.ResourcePermissionDTO; @@ -12,16 +14,12 @@ import io.flowinquiry.modules.usermanagement.service.dto.UserKey; import io.flowinquiry.modules.usermanagement.service.event.DeleteUserEvent; import io.flowinquiry.modules.usermanagement.service.mapper.UserMapper; -import io.flowinquiry.platform.utils.Random; import io.flowinquiry.query.QueryDTO; import io.flowinquiry.security.Constants; import io.flowinquiry.security.SecurityUtils; +import io.flowinquiry.utils.Random; import jakarta.persistence.EntityNotFoundException; -import java.time.Instant; -import java.time.temporal.ChronoUnit; -import java.util.*; -import java.util.stream.Collectors; -import org.jclouds.rest.ResourceNotFoundException; +import io.flowinquiry.exceptions.ResourceNotFoundException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.ApplicationEventPublisher; @@ -32,7 +30,20 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -/** Service class for managing users. */ +import java.time.Instant; +import java.time.temporal.ChronoUnit; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; + +import static io.flowinquiry.query.QueryUtils.createSpecification; + +/** + * Service class for managing users. + */ @Service @Transactional public class UserService { @@ -236,10 +247,10 @@ public void softDeleteUserById(Long userId) { * Update basic information (first name, last name, email, language) for the current user. * * @param firstName first name of user. - * @param lastName last name of user. - * @param email email id of user. - * @param langKey language key. - * @param imageUrl image URL of user. + * @param lastName last name of user. + * @param email email id of user. + * @param langKey language key. + * @param imageUrl image URL of user. */ public void updateUser( String firstName, String lastName, String email, String langKey, String imageUrl) { diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/AuthorityDTO.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/AuthorityDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/AuthorityDTO.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/AuthorityDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/AuthorityResourcePermissionDTO.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/AuthorityResourcePermissionDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/AuthorityResourcePermissionDTO.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/AuthorityResourcePermissionDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/FwUserDetails.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/FwUserDetails.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/FwUserDetails.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/FwUserDetails.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/PasswordChangeDTO.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/PasswordChangeDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/PasswordChangeDTO.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/PasswordChangeDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/ResourceDTO.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/ResourceDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/ResourceDTO.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/ResourceDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/ResourcePermissionDTO.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/ResourcePermissionDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/ResourcePermissionDTO.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/ResourcePermissionDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/TenantDTO.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/TenantDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/TenantDTO.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/TenantDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/TicketStatisticsDTO.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/TicketStatisticsDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/TicketStatisticsDTO.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/TicketStatisticsDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserDTO.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserDTO.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserHierarchyDTO.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserHierarchyDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserHierarchyDTO.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserHierarchyDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserKey.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserKey.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserKey.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserKey.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserWithTeamRoleDTO.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserWithTeamRoleDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserWithTeamRoleDTO.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/UserWithTeamRoleDTO.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/package-info.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/package-info.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/package-info.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/dto/package-info.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/event/DeleteUserEvent.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/event/DeleteUserEvent.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/event/DeleteUserEvent.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/event/DeleteUserEvent.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/AuthorityMapper.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/AuthorityMapper.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/AuthorityMapper.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/AuthorityMapper.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/AuthorityResourcePermissionMapper.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/AuthorityResourcePermissionMapper.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/AuthorityResourcePermissionMapper.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/AuthorityResourcePermissionMapper.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/TenantMapper.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/TenantMapper.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/TenantMapper.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/TenantMapper.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/UserMapper.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/UserMapper.java similarity index 96% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/UserMapper.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/UserMapper.java index 36fab769..5ef4c8cb 100644 --- a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/UserMapper.java +++ b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/UserMapper.java @@ -3,10 +3,15 @@ import io.flowinquiry.modules.usermanagement.domain.Authority; import io.flowinquiry.modules.usermanagement.domain.User; import io.flowinquiry.modules.usermanagement.service.dto.UserDTO; +import org.mapstruct.AfterMapping; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.MappingTarget; +import org.mapstruct.Named; + import java.util.List; import java.util.Set; import java.util.stream.Collectors; -import org.mapstruct.*; @Mapper(componentModel = "spring") public abstract class UserMapper { diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/UserMapperUtils.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/UserMapperUtils.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/UserMapperUtils.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/UserMapperUtils.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/package-info.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/package-info.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/package-info.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/mapper/package-info.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/service/package-info.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/service/package-info.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/service/package-info.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/service/package-info.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthenticateController.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthenticateController.java similarity index 94% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthenticateController.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthenticateController.java index 126068c2..723ef6cb 100644 --- a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthenticateController.java +++ b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthenticateController.java @@ -1,16 +1,9 @@ package io.flowinquiry.modules.usermanagement.web.rest; -import static io.flowinquiry.security.SecurityUtils.AUTHORITIES_KEY; -import static io.flowinquiry.security.SecurityUtils.JWT_ALGORITHM; -import static io.flowinquiry.security.SecurityUtils.USER_ID; - import com.fasterxml.jackson.annotation.JsonProperty; import io.flowinquiry.modules.usermanagement.service.dto.FwUserDetails; import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; -import java.time.Instant; -import java.time.temporal.ChronoUnit; -import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; @@ -26,7 +19,19 @@ import org.springframework.security.oauth2.jwt.JwtClaimsSet; import org.springframework.security.oauth2.jwt.JwtEncoder; import org.springframework.security.oauth2.jwt.JwtEncoderParameters; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.time.Instant; +import java.time.temporal.ChronoUnit; +import java.util.stream.Collectors; + +import static io.flowinquiry.security.SecurityUtils.AUTHORITIES_KEY; +import static io.flowinquiry.security.SecurityUtils.JWT_ALGORITHM; +import static io.flowinquiry.security.SecurityUtils.USER_ID; /** Controller to authenticate users. */ @RestController diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthorityController.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthorityController.java similarity index 87% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthorityController.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthorityController.java index 74e70575..21faf291 100644 --- a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthorityController.java +++ b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthorityController.java @@ -5,10 +5,6 @@ import io.flowinquiry.modules.usermanagement.service.dto.AuthorityDTO; import io.flowinquiry.modules.usermanagement.service.dto.UserDTO; import jakarta.validation.Valid; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.List; -import java.util.Optional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; @@ -18,10 +14,22 @@ import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; import tech.jhipster.web.util.HeaderUtil; import tech.jhipster.web.util.ResponseUtil; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.List; +import java.util.Optional; + @RestController @RequestMapping("/api/authorities") @Transactional @@ -105,7 +113,7 @@ public ResponseEntity deleteAuthority(@PathVariable("id") String id) { @GetMapping("/{authorityName}/users") public ResponseEntity> getUsersByAuthority( - @PathVariable String authorityName, Pageable pageable) { + @PathVariable("authorityName") String authorityName, Pageable pageable) { Page users = authorityService.findAllUsersByAuthority(authorityName, pageable); return ResponseEntity.ok(users); } @@ -122,14 +130,14 @@ public ResponseEntity> findUsersNotInAuthority( @PostMapping("/{authorityName}/add-users") public ResponseEntity addUsersToAuthority( - @PathVariable String authorityName, @RequestBody List userIds) { + @PathVariable("authorityName") String authorityName, @RequestBody List userIds) { authorityService.addUsersToAuthority(userIds, authorityName); return ResponseEntity.ok().build(); } @DeleteMapping("/{authorityName}/users/{userId}") public ResponseEntity removeUserFromAuthority( - @PathVariable Long userId, @PathVariable String authorityName) { + @PathVariable("userId") Long userId, @PathVariable String authorityName) { authorityService.removeUserFromAuthority(userId, authorityName); return ResponseEntity.noContent().build(); } diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthorityResourcePermissionController.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthorityResourcePermissionController.java similarity index 77% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthorityResourcePermissionController.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthorityResourcePermissionController.java index 98155092..3106ac29 100644 --- a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthorityResourcePermissionController.java +++ b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/AuthorityResourcePermissionController.java @@ -2,9 +2,15 @@ import io.flowinquiry.modules.usermanagement.service.AuthorityResourcePermissionService; import io.flowinquiry.modules.usermanagement.service.dto.AuthorityResourcePermissionDTO; -import java.util.List; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; @RestController @RequestMapping("/api/authority-permissions") @@ -26,7 +32,7 @@ public AuthorityResourcePermissionController( */ @GetMapping("/{authorityName}") public List getPermissionsByAuthority( - @PathVariable String authorityName) { + @PathVariable("authorityName") String authorityName) { return authorityResourcePermissionService.getResourcePermissionsByAuthority(authorityName); } diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/KeyAndPasswordVM.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/KeyAndPasswordVM.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/KeyAndPasswordVM.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/KeyAndPasswordVM.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/LoginController.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/LoginController.java similarity index 92% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/LoginController.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/LoginController.java index a5705b78..15f8308d 100644 --- a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/LoginController.java +++ b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/LoginController.java @@ -1,7 +1,5 @@ package io.flowinquiry.modules.usermanagement.web.rest; -import static io.flowinquiry.security.SecurityUtils.*; - import com.fasterxml.jackson.annotation.JsonProperty; import io.flowinquiry.modules.usermanagement.repository.UserRepository; import io.flowinquiry.modules.usermanagement.service.UserService; @@ -9,11 +7,6 @@ import io.flowinquiry.modules.usermanagement.service.dto.UserDTO; import io.flowinquiry.modules.usermanagement.web.rest.errors.InvalidLoginException; import jakarta.validation.Valid; -import java.time.Instant; -import java.time.LocalDateTime; -import java.time.ZoneOffset; -import java.time.temporal.ChronoUnit; -import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; @@ -29,7 +22,20 @@ import org.springframework.security.oauth2.jwt.JwtClaimsSet; import org.springframework.security.oauth2.jwt.JwtEncoder; import org.springframework.security.oauth2.jwt.JwtEncoderParameters; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.time.temporal.ChronoUnit; +import java.util.stream.Collectors; + +import static io.flowinquiry.security.SecurityUtils.AUTHORITIES_KEY; +import static io.flowinquiry.security.SecurityUtils.JWT_ALGORITHM; +import static io.flowinquiry.security.SecurityUtils.USER_ID; @RestController @RequestMapping("/api") diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/LoginVM.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/LoginVM.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/LoginVM.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/LoginVM.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/ManagedUserVM.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/ManagedUserVM.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/ManagedUserVM.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/ManagedUserVM.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/PublicUserController.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/PublicUserController.java similarity index 92% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/PublicUserController.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/PublicUserController.java index 727e73f7..6a95618a 100644 --- a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/PublicUserController.java +++ b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/PublicUserController.java @@ -11,15 +11,10 @@ import io.flowinquiry.modules.usermanagement.service.dto.UserHierarchyDTO; import io.flowinquiry.modules.usermanagement.web.rest.errors.BadRequestAlertException; import io.flowinquiry.modules.usermanagement.web.rest.errors.EmailAlreadyUsedException; -import io.flowinquiry.platform.utils.Obfuscator; import io.flowinquiry.query.Filter; import io.flowinquiry.query.QueryDTO; +import io.flowinquiry.utils.Obfuscator; import jakarta.validation.Valid; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.domain.Page; @@ -30,12 +25,27 @@ import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RequestPart; +import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.support.ServletUriComponentsBuilder; import tech.jhipster.web.util.PaginationUtil; import tech.jhipster.web.util.ResponseUtil; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + @RestController @RequestMapping("/api/users") public class PublicUserController { @@ -141,14 +151,14 @@ public ResponseEntity getUser(@PathVariable("userId") Long userId) { @GetMapping("/permissions/{userId}") public ResponseEntity> getUserResourcesWithPermissions( - @PathVariable Long userId) { + @PathVariable("userId") Long userId) { List resourcesWithPermissions = userService.getResourcesWithPermissionsByUserId(userId); return ResponseEntity.ok(resourcesWithPermissions); } @GetMapping("/{managerId}/direct-reports") - public ResponseEntity> getDirectReports(@PathVariable Long managerId) { + public ResponseEntity> getDirectReports(@PathVariable("managerId") Long managerId) { List directReports = userService.getDirectReports(managerId); return ResponseEntity.ok(directReports); } @@ -206,7 +216,7 @@ public ResponseEntity deleteUser(@PathVariable("userId") Long userId) { } @GetMapping("/{userId}/hierarchy") - public ResponseEntity getUserHierarchy(@PathVariable Long userId) { + public ResponseEntity getUserHierarchy(@PathVariable("userId") Long userId) { return ResponseEntity.ok(userService.getUserHierarchyWithSubordinates(userId)); } diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/ResourceController.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/ResourceController.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/ResourceController.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/ResourceController.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/TenantController.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/TenantController.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/TenantController.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/TenantController.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/TenantUserController.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/TenantUserController.java similarity index 79% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/TenantUserController.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/TenantUserController.java index 061e5236..6830fed8 100644 --- a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/TenantUserController.java +++ b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/TenantUserController.java @@ -6,12 +6,17 @@ import io.flowinquiry.modules.usermanagement.service.mapper.UserMapper; import io.flowinquiry.query.QueryDTO; import jakarta.validation.Valid; -import java.util.Optional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Optional; @RestController @RequestMapping("/api/tenants") @@ -19,12 +24,9 @@ public class TenantUserController { private static final Logger LOG = LoggerFactory.getLogger(TenantUserController.class); - private final UserMapper userMapper; - private final UserService userService; - public TenantUserController(UserMapper userMapper, UserService userService) { - this.userMapper = userMapper; + public TenantUserController( UserService userService) { this.userService = userService; } diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/UserAccountController.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/UserAccountController.java similarity index 92% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/UserAccountController.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/UserAccountController.java index 73532eac..3cbbb6a0 100644 --- a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/UserAccountController.java +++ b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/UserAccountController.java @@ -13,12 +13,20 @@ import io.flowinquiry.security.SecurityUtils; import jakarta.validation.Valid; import jakarta.validation.constraints.Email; -import java.util.Optional; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Optional; /** REST controller for managing the current user's account. */ @RestController @@ -73,7 +81,7 @@ public void registerAccount(@Valid @RequestBody ManagedUserVM managedUserVM) { } @GetMapping("/{email}/resend-activation-email") - public void resendActivationEmail(@Valid @PathVariable @Email String email) { + public void resendActivationEmail(@Valid @PathVariable("email") @Email String email) { Optional user = userRepository.findUserByEmailEqualsIgnoreCase(email); if (user.isEmpty()) { log.warn("User with email {} not found", email); @@ -91,7 +99,7 @@ public void resendActivationEmail(@Valid @PathVariable @Email String email) { * activated. */ @GetMapping("/activate") - public void activateAccount(@RequestParam(value = "key") String key) { + public void activateAccount(@RequestParam("key") String key) { Optional user = userService.activateRegistration(key); if (user.isEmpty()) { throw new AccountResourceException("No user was found for this activation key"); diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/BadRequestAlertException.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/BadRequestAlertException.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/BadRequestAlertException.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/BadRequestAlertException.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/EmailAlreadyUsedException.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/EmailAlreadyUsedException.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/EmailAlreadyUsedException.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/EmailAlreadyUsedException.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/ErrorConstants.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/ErrorConstants.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/ErrorConstants.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/ErrorConstants.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/ExceptionTranslator.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/ExceptionTranslator.java similarity index 98% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/ExceptionTranslator.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/ExceptionTranslator.java index b7c9a749..b22699ce 100644 --- a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/ExceptionTranslator.java +++ b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/ExceptionTranslator.java @@ -1,11 +1,7 @@ package io.flowinquiry.modules.usermanagement.web.rest.errors; -import static org.springframework.core.annotation.AnnotatedElementUtils.findMergedAnnotation; - import io.flowinquiry.config.FlowInquiryProfiles; import jakarta.servlet.http.HttpServletRequest; -import java.net.URI; -import java.util.*; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -34,6 +30,15 @@ import tech.jhipster.web.rest.errors.ProblemDetailWithCause.ProblemDetailWithCauseBuilder; import tech.jhipster.web.util.HeaderUtil; +import java.net.URI; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import static org.springframework.core.annotation.AnnotatedElementUtils.findMergedAnnotation; + /** * Controller advice to translate the server side exceptions to client-friendly json structures. The * error response follows RFC7807 - Problem Details for HTTP APIs diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/FieldErrorVM.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/FieldErrorVM.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/FieldErrorVM.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/FieldErrorVM.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/InvalidLoginException.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/InvalidLoginException.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/InvalidLoginException.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/InvalidLoginException.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/InvalidPasswordException.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/InvalidPasswordException.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/InvalidPasswordException.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/InvalidPasswordException.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/LoginAlreadyUsedException.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/LoginAlreadyUsedException.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/LoginAlreadyUsedException.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/LoginAlreadyUsedException.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/package-info.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/package-info.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/package-info.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/errors/package-info.java diff --git a/server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/package-info.java b/commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/package-info.java similarity index 100% rename from server/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/package-info.java rename to commons/src/main/java/io/flowinquiry/modules/usermanagement/web/rest/package-info.java diff --git a/server/src/main/java/io/flowinquiry/query/Filter.java b/commons/src/main/java/io/flowinquiry/query/Filter.java similarity index 100% rename from server/src/main/java/io/flowinquiry/query/Filter.java rename to commons/src/main/java/io/flowinquiry/query/Filter.java diff --git a/server/src/main/java/io/flowinquiry/query/GroupFilter.java b/commons/src/main/java/io/flowinquiry/query/GroupFilter.java similarity index 100% rename from server/src/main/java/io/flowinquiry/query/GroupFilter.java rename to commons/src/main/java/io/flowinquiry/query/GroupFilter.java diff --git a/server/src/main/java/io/flowinquiry/query/QueryDTO.java b/commons/src/main/java/io/flowinquiry/query/QueryDTO.java similarity index 100% rename from server/src/main/java/io/flowinquiry/query/QueryDTO.java rename to commons/src/main/java/io/flowinquiry/query/QueryDTO.java diff --git a/server/src/main/java/io/flowinquiry/query/QueryUtils.java b/commons/src/main/java/io/flowinquiry/query/QueryUtils.java similarity index 100% rename from server/src/main/java/io/flowinquiry/query/QueryUtils.java rename to commons/src/main/java/io/flowinquiry/query/QueryUtils.java diff --git a/server/src/main/java/io/flowinquiry/security/Constants.java b/commons/src/main/java/io/flowinquiry/security/Constants.java similarity index 100% rename from server/src/main/java/io/flowinquiry/security/Constants.java rename to commons/src/main/java/io/flowinquiry/security/Constants.java diff --git a/server/src/main/java/io/flowinquiry/security/SecurityUtils.java b/commons/src/main/java/io/flowinquiry/security/SecurityUtils.java similarity index 100% rename from server/src/main/java/io/flowinquiry/security/SecurityUtils.java rename to commons/src/main/java/io/flowinquiry/security/SecurityUtils.java diff --git a/server/src/main/java/io/flowinquiry/security/SpringSecurityAuditorAware.java b/commons/src/main/java/io/flowinquiry/security/SpringSecurityAuditorAware.java similarity index 100% rename from server/src/main/java/io/flowinquiry/security/SpringSecurityAuditorAware.java rename to commons/src/main/java/io/flowinquiry/security/SpringSecurityAuditorAware.java diff --git a/server/src/main/java/io/flowinquiry/security/management/SecurityMetersService.java b/commons/src/main/java/io/flowinquiry/security/management/SecurityMetersService.java similarity index 100% rename from server/src/main/java/io/flowinquiry/security/management/SecurityMetersService.java rename to commons/src/main/java/io/flowinquiry/security/management/SecurityMetersService.java diff --git a/server/src/main/java/io/flowinquiry/security/management/package-info.java b/commons/src/main/java/io/flowinquiry/security/management/package-info.java similarity index 100% rename from server/src/main/java/io/flowinquiry/security/management/package-info.java rename to commons/src/main/java/io/flowinquiry/security/management/package-info.java diff --git a/server/src/main/java/io/flowinquiry/security/package-info.java b/commons/src/main/java/io/flowinquiry/security/package-info.java similarity index 100% rename from server/src/main/java/io/flowinquiry/security/package-info.java rename to commons/src/main/java/io/flowinquiry/security/package-info.java diff --git a/tools/platform/src/main/java/io/flowinquiry/platform/utils/Obfuscator.java b/commons/src/main/java/io/flowinquiry/utils/Obfuscator.java similarity index 97% rename from tools/platform/src/main/java/io/flowinquiry/platform/utils/Obfuscator.java rename to commons/src/main/java/io/flowinquiry/utils/Obfuscator.java index acb38768..2da68ddc 100644 --- a/tools/platform/src/main/java/io/flowinquiry/platform/utils/Obfuscator.java +++ b/commons/src/main/java/io/flowinquiry/utils/Obfuscator.java @@ -1,4 +1,4 @@ -package io.flowinquiry.platform.utils; +package io.flowinquiry.utils; import java.nio.charset.StandardCharsets; import java.util.Base64; diff --git a/tools/platform/src/main/java/io/flowinquiry/platform/utils/Random.java b/commons/src/main/java/io/flowinquiry/utils/Random.java similarity index 96% rename from tools/platform/src/main/java/io/flowinquiry/platform/utils/Random.java rename to commons/src/main/java/io/flowinquiry/utils/Random.java index 7eaa3d65..44b8bb7d 100644 --- a/tools/platform/src/main/java/io/flowinquiry/platform/utils/Random.java +++ b/commons/src/main/java/io/flowinquiry/utils/Random.java @@ -1,4 +1,4 @@ -package io.flowinquiry.platform.utils; +package io.flowinquiry.utils; import org.apache.commons.lang3.RandomStringUtils; diff --git a/server/src/main/java/io/flowinquiry/web/filter/SpaWebFilter.java b/commons/src/main/java/io/flowinquiry/web/filter/SpaWebFilter.java similarity index 100% rename from server/src/main/java/io/flowinquiry/web/filter/SpaWebFilter.java rename to commons/src/main/java/io/flowinquiry/web/filter/SpaWebFilter.java diff --git a/server/src/main/java/io/flowinquiry/web/filter/TenantInjectInterceptor.java b/commons/src/main/java/io/flowinquiry/web/filter/TenantInjectInterceptor.java similarity index 100% rename from server/src/main/java/io/flowinquiry/web/filter/TenantInjectInterceptor.java rename to commons/src/main/java/io/flowinquiry/web/filter/TenantInjectInterceptor.java diff --git a/server/src/main/java/io/flowinquiry/web/filter/package-info.java b/commons/src/main/java/io/flowinquiry/web/filter/package-info.java similarity index 100% rename from server/src/main/java/io/flowinquiry/web/filter/package-info.java rename to commons/src/main/java/io/flowinquiry/web/filter/package-info.java diff --git a/server/src/main/java/io/flowinquiry/web/rest/SharedController.java b/commons/src/main/java/io/flowinquiry/web/rest/SharedController.java similarity index 100% rename from server/src/main/java/io/flowinquiry/web/rest/SharedController.java rename to commons/src/main/java/io/flowinquiry/web/rest/SharedController.java diff --git a/server/src/main/resources/i18n/messages.properties b/commons/src/main/resources/i18n/messages.properties similarity index 100% rename from server/src/main/resources/i18n/messages.properties rename to commons/src/main/resources/i18n/messages.properties diff --git a/server/src/main/resources/i18n/messages_en.properties b/commons/src/main/resources/i18n/messages_en.properties similarity index 100% rename from server/src/main/resources/i18n/messages_en.properties rename to commons/src/main/resources/i18n/messages_en.properties diff --git a/server/src/main/resources/templates/error.html b/commons/src/main/resources/templates/error.html similarity index 100% rename from server/src/main/resources/templates/error.html rename to commons/src/main/resources/templates/error.html diff --git a/server/src/main/resources/templates/mail/activationEmail.html b/commons/src/main/resources/templates/mail/activationEmail.html similarity index 100% rename from server/src/main/resources/templates/mail/activationEmail.html rename to commons/src/main/resources/templates/mail/activationEmail.html diff --git a/server/src/main/resources/templates/mail/creationEmail.html b/commons/src/main/resources/templates/mail/creationEmail.html similarity index 100% rename from server/src/main/resources/templates/mail/creationEmail.html rename to commons/src/main/resources/templates/mail/creationEmail.html diff --git a/server/src/main/resources/templates/mail/passwordResetEmail.html b/commons/src/main/resources/templates/mail/passwordResetEmail.html similarity index 100% rename from server/src/main/resources/templates/mail/passwordResetEmail.html rename to commons/src/main/resources/templates/mail/passwordResetEmail.html diff --git a/gradle.properties b/gradle.properties index 9f25fdd6..b416eb2e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ rootProject.name=flowinquiry-app profile=dev -projectVersion=0.8.0 +version=0.9.0-SNAPSHOT # gradle plugin version gitPropertiesPluginVersion=2.4.2 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 89319a9e..c4993673 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,5 @@ [versions] mapstructVersion = "1.6.3" -archunitJunit5Version = "1.3.0" lombokVersion = "1.18.36" liquibaseVersion = "4.30.0" assertJVersion = "3.26.3" @@ -12,8 +11,8 @@ mockitoVersion = "5.2.0" mockitoJunitVersion = "5.14.1" jsonApiVersion = "2.1.3" parssonVersion="1.1.7" -springbootVersion = "3.4.0" -springDependencyManagementVersion="1.1.6" +springbootVersion = "3.4.1" +springDependencyManagementVersion="1.1.7" jhisterVersion = "8.7.1" j2HtmlVersion = "1.6.0" shedlockVersion="6.0.1" @@ -28,16 +27,20 @@ mapstruct-processor = { module = "org.mapstruct:mapstruct-processor", version.re jclouds = { module = "org.apache.jclouds:jclouds-all", version.ref = "jcloudsVersion" } dot-env = { module = "io.github.cdimascio:dotenv-java", version.ref = "dotEnvVersion" } j2html = {module = "com.j2html:j2html", version.ref="j2HtmlVersion"} +jib-plugin = { module = "com.google.cloud.tools:jib-gradle-plugin", version = "3.4.4" } logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logbackVersion" } junit-bom = { module = "org.junit:junit-bom", version.ref = "junitVersion" } +json-api = { module = "jakarta.json:jakarta.json-api", version.ref = "jsonApiVersion" } junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api" } junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine" } mockito = { module = "org.mockito:mockito-inline", version.ref = "mockitoVersion" } mockito-junit = { module = "org.mockito:mockito-junit-jupiter", version.ref = "mockitoJunitVersion" } -json-api = { module = "jakarta.json:jakarta.json-api", version.ref = "jsonApiVersion" } +nohttp-plugin = { module = "io.spring.nohttp:nohttp-gradle", version = "0.0.11" } parsson = { module = "org.eclipse.parsson:parsson", version.ref = "parssonVersion" } shedlock = {module="net.javacrumbs.shedlock:shedlock-spring", version.ref="shedlockVersion"} shedlock-jdbc-provider = {module="net.javacrumbs.shedlock:shedlock-provider-jdbc-template", version.ref="shedlockVersion"} +spring-boot-dependencies= {module="org.springframework.boot:spring-boot-dependencies", version.ref="springbootVersion"} +splotless-plugin = { module = "com.diffplug.spotless:spotless-plugin-gradle", version = "7.0.0.BETA4" } [plugins] spring-boot = { id = "org.springframework.boot", version.ref = "springbootVersion" } diff --git a/server/build.gradle b/server/build.gradle index 256f7c41..1f185415 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -1,6 +1,5 @@ plugins { id "java" - id "maven-publish" id "idea" id "com.gorylenko.gradle-git-properties" alias(libs.plugins.spring.boot) @@ -13,16 +12,8 @@ plugins { description = "" -assert System.properties["java.specification.version"] == "21" || "22" || "23" - ext { springProfiles = "" - if (project.hasProperty("tls")) { - springProfiles += ",tls" - } - if (project.hasProperty("e2e")) { - springProfiles += ",e2e" - } } @@ -33,13 +24,6 @@ if (project.hasProperty("prod")) { apply from: "../gradle/profile_dev.gradle" } - -idea { - module { - excludeDirs += files("node_modules") - } -} - defaultTasks "bootRun" springBoot { @@ -74,76 +58,18 @@ configurations { } dependencies { - api project(":tools:liquibase") - api project(":tools:platform") - - compileOnly(libs.lombok) - - implementation("com.fasterxml.jackson.module:jackson-module-jaxb-annotations") - implementation("com.fasterxml.jackson.datatype:jackson-datatype-hppc") - implementation("com.fasterxml.jackson.datatype:jackson-datatype-hibernate6") - implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") - implementation("com.github.ben-manes.caffeine:caffeine") - implementation("com.zaxxer:HikariCP") - implementation(libs.dot.env) - implementation(libs.j2html) - implementation(libs.bundles.json) - - implementation("jakarta.annotation:jakarta.annotation-api") - implementation(libs.jhipster.framework) - implementation("org.apache.commons:commons-lang3") - implementation(libs.jclouds) { - exclude group: "com.sun.xml.bind" - } - implementation("org.springframework.boot:spring-boot-loader-tools") - implementation("org.springframework.boot:spring-boot-starter-actuator") - implementation("org.springframework.boot:spring-boot-starter-aop") - implementation("org.springframework.boot:spring-boot-starter-data-jpa") - implementation("org.springframework.boot:spring-boot-starter-logging") - implementation("org.springframework.boot:spring-boot-starter-mail") - implementation("org.springframework.boot:spring-boot-starter-oauth2-resource-server") - implementation("org.springframework.boot:spring-boot-starter-security") - implementation("org.springframework.boot:spring-boot-starter-thymeleaf") - implementation("org.springframework.boot:spring-boot-starter-undertow") - modules { - module("org.springframework.boot:spring-boot-starter-tomcat") { - replacedBy("org.springframework.boot:spring-boot-starter-undertow", "Use Undertow instead of Tomcat") - } - } - implementation("org.springframework.boot:spring-boot-starter-validation") - implementation("org.springframework.boot:spring-boot-starter-web") - implementation("org.springframework.security:spring-security-data") - - implementation("org.hibernate.orm:hibernate-core") - implementation("org.hibernate.validator:hibernate-validator") - implementation(libs.liquibase) - implementation(libs.bundles.shedlock) - - -// testImplementation("com.tngtech.archunit:archunit-junit5-api:${archunitJunit5Version}") { -// exclude group: "org.slf4j", module: "slf4j-api" -// } -// testRuntimeOnly("com.tngtech.archunit:archunit-junit5-engine:${archunitJunit5Version}") { -// exclude group: "org.slf4j", module: "slf4j-api" -// } + api project(":commons") + + testImplementation("org.testcontainers:jdbc") testImplementation("org.testcontainers:junit-jupiter") testImplementation("org.testcontainers:testcontainers") testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("org.springframework.boot:spring-boot-test") testImplementation("org.springframework.security:spring-security-test") - testCompileOnly(libs.lombok) - testAnnotationProcessor(libs.lombok) + testImplementation("org.jetbrains.kotlin:kotlin-test") testImplementation(libs.assertJ) - - annotationProcessor("org.springframework.boot:spring-boot-configuration-processor") - annotationProcessor("org.hibernate.orm:hibernate-jpamodelgen") - annotationProcessor("org.glassfish.jaxb:jaxb-runtime") - annotationProcessor(libs.lombok) - // Keep mapstruct dependency below the lombok - implementation(libs.mapstruct) - annotationProcessor(libs.mapstruct.processor) } task cleanResources(type: Delete) { @@ -152,3 +78,4 @@ task cleanResources(type: Delete) { compileJava.dependsOn processResources processResources.dependsOn bootBuildInfo + diff --git a/server/src/main/java/io/flowinquiry/exceptions/InvalidInputException.java b/server/src/main/java/io/flowinquiry/exceptions/InvalidInputException.java deleted file mode 100644 index e10f828f..00000000 --- a/server/src/main/java/io/flowinquiry/exceptions/InvalidInputException.java +++ /dev/null @@ -1,7 +0,0 @@ -package io.flowinquiry.exceptions; - -public class InvalidInputException extends RuntimeException { - public InvalidInputException(String message) { - super(message); - } -} diff --git a/server/src/test/java/io/flowinquiry/config/StaticResourcesWebConfigurerTest.java b/server/src/test/java/io/flowinquiry/config/StaticResourcesWebConfigurerTest.java index d29d36ed..f19d8942 100644 --- a/server/src/test/java/io/flowinquiry/config/StaticResourcesWebConfigurerTest.java +++ b/server/src/test/java/io/flowinquiry/config/StaticResourcesWebConfigurerTest.java @@ -3,7 +3,12 @@ import static io.flowinquiry.config.StaticResourcesWebConfiguration.RESOURCE_LOCATIONS; import static io.flowinquiry.config.StaticResourcesWebConfiguration.RESOURCE_PATHS; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import java.util.concurrent.TimeUnit; import org.junit.jupiter.api.BeforeEach; diff --git a/server/src/test/java/io/flowinquiry/config/WebConfigurerTest.java b/server/src/test/java/io/flowinquiry/config/WebConfigurerTest.java index b13077e8..5b2c6e62 100644 --- a/server/src/test/java/io/flowinquiry/config/WebConfigurerTest.java +++ b/server/src/test/java/io/flowinquiry/config/WebConfigurerTest.java @@ -3,7 +3,9 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.options; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header; diff --git a/server/src/test/java/io/flowinquiry/service/UserServiceIT.java b/server/src/test/java/io/flowinquiry/service/UserServiceIT.java index 2053a593..fb867366 100644 --- a/server/src/test/java/io/flowinquiry/service/UserServiceIT.java +++ b/server/src/test/java/io/flowinquiry/service/UserServiceIT.java @@ -10,7 +10,7 @@ import io.flowinquiry.modules.usermanagement.service.UserService; import io.flowinquiry.modules.usermanagement.service.dto.ResourcePermissionDTO; import io.flowinquiry.modules.usermanagement.service.dto.UserDTO; -import io.flowinquiry.platform.utils.Random; +import io.flowinquiry.utils.Random; import java.time.Instant; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; diff --git a/server/src/test/java/io/flowinquiry/web/rest/AuthenticateControllerIT.java b/server/src/test/java/io/flowinquiry/web/rest/AuthenticateControllerIT.java index fffe2471..cf52be15 100644 --- a/server/src/test/java/io/flowinquiry/web/rest/AuthenticateControllerIT.java +++ b/server/src/test/java/io/flowinquiry/web/rest/AuthenticateControllerIT.java @@ -1,8 +1,13 @@ package io.flowinquiry.web.rest; -import static org.hamcrest.Matchers.*; +import static org.hamcrest.Matchers.emptyString; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.not; +import static org.hamcrest.Matchers.nullValue; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import com.fasterxml.jackson.databind.ObjectMapper; import io.flowinquiry.IntegrationTest; diff --git a/server/src/test/java/io/flowinquiry/web/rest/AuthorityControllerIT.java b/server/src/test/java/io/flowinquiry/web/rest/AuthorityControllerIT.java index 07f7a62a..accce680 100644 --- a/server/src/test/java/io/flowinquiry/web/rest/AuthorityControllerIT.java +++ b/server/src/test/java/io/flowinquiry/web/rest/AuthorityControllerIT.java @@ -1,10 +1,16 @@ package io.flowinquiry.web.rest; -import static io.flowinquiry.security.domain.AuthorityAsserts.*; +import static io.flowinquiry.security.domain.AuthorityAsserts.assertAuthorityAllPropertiesEquals; +import static io.flowinquiry.security.domain.AuthorityAsserts.assertAuthorityAllUpdatablePropertiesEquals; +import static io.flowinquiry.security.domain.AuthorityAsserts.assertAuthorityUpdatableFieldsEquals; import static org.assertj.core.api.Assertions.assertThat; import static org.hamcrest.Matchers.hasItem; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import com.fasterxml.jackson.databind.ObjectMapper; import io.flowinquiry.DefaultTenantContext; diff --git a/server/src/test/java/io/flowinquiry/web/rest/PublicUserControllerIT.java b/server/src/test/java/io/flowinquiry/web/rest/PublicUserControllerIT.java index cf11b998..c45b90fa 100644 --- a/server/src/test/java/io/flowinquiry/web/rest/PublicUserControllerIT.java +++ b/server/src/test/java/io/flowinquiry/web/rest/PublicUserControllerIT.java @@ -3,7 +3,9 @@ import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import io.flowinquiry.DefaultTenantContext; import io.flowinquiry.IntegrationTest; diff --git a/server/src/test/java/io/flowinquiry/web/rest/UserAccountControllerIT.java b/server/src/test/java/io/flowinquiry/web/rest/UserAccountControllerIT.java index e08b6a63..df4d9c0d 100644 --- a/server/src/test/java/io/flowinquiry/web/rest/UserAccountControllerIT.java +++ b/server/src/test/java/io/flowinquiry/web/rest/UserAccountControllerIT.java @@ -5,7 +5,9 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import com.fasterxml.jackson.databind.ObjectMapper; import io.flowinquiry.DefaultTenantContext; diff --git a/server/src/test/java/io/flowinquiry/web/rest/UserControllerIT.java b/server/src/test/java/io/flowinquiry/web/rest/UserControllerIT.java index d3798b00..cdc08317 100644 --- a/server/src/test/java/io/flowinquiry/web/rest/UserControllerIT.java +++ b/server/src/test/java/io/flowinquiry/web/rest/UserControllerIT.java @@ -2,8 +2,13 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.hamcrest.Matchers.hasItem; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.multipart; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import com.fasterxml.jackson.databind.ObjectMapper; import io.flowinquiry.DefaultTenantContext; diff --git a/server/src/test/java/io/flowinquiry/web/rest/errors/ExceptionTranslatorIT.java b/server/src/test/java/io/flowinquiry/web/rest/errors/ExceptionTranslatorIT.java index 53479b1c..a86b9260 100644 --- a/server/src/test/java/io/flowinquiry/web/rest/errors/ExceptionTranslatorIT.java +++ b/server/src/test/java/io/flowinquiry/web/rest/errors/ExceptionTranslatorIT.java @@ -2,7 +2,9 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import io.flowinquiry.IntegrationTest; import io.flowinquiry.modules.usermanagement.web.rest.errors.ErrorConstants; diff --git a/server/src/test/java/io/flowinquiry/web/rest/errors/ExceptionTranslatorTestController.java b/server/src/test/java/io/flowinquiry/web/rest/errors/ExceptionTranslatorTestController.java index b8b6d32f..741482f3 100644 --- a/server/src/test/java/io/flowinquiry/web/rest/errors/ExceptionTranslatorTestController.java +++ b/server/src/test/java/io/flowinquiry/web/rest/errors/ExceptionTranslatorTestController.java @@ -6,7 +6,14 @@ import org.springframework.http.HttpStatus; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.authentication.BadCredentialsException; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RequestPart; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/api/exception-translator-test") diff --git a/settings.gradle b/settings.gradle index ff7b467f..e45e9288 100644 --- a/settings.gradle +++ b/settings.gradle @@ -12,7 +12,5 @@ rootProject.name = "flowinquiry-server" include 'server' include 'tools' include 'tools:liquibase' -findProject(':tools:liquibase')?.name = 'liquibase' -include 'tools:platform' -findProject(':tools:platform')?.name = 'platform' +include 'commons' diff --git a/tools/liquibase/build.gradle b/tools/liquibase/build.gradle index 259b6a68..0332de20 100644 --- a/tools/liquibase/build.gradle +++ b/tools/liquibase/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'java' + id 'java-library' id "flowinquiry.code-conventions" } @@ -10,7 +10,7 @@ repositories { } dependencies { - + api(libs.liquibase) } test { diff --git a/tools/platform/build.gradle b/tools/platform/build.gradle deleted file mode 100644 index 91947784..00000000 --- a/tools/platform/build.gradle +++ /dev/null @@ -1,22 +0,0 @@ -plugins { - id 'java' -} - -group = 'io.flowinquiry' - -repositories { - mavenCentral() -} - -dependencies { - implementation(libs.bundles.logback) - implementation("org.apache.commons:commons-lang3:3.17.0") - - testImplementation platform(libs.junit.bom) - testImplementation(libs.bundles.junit) - testImplementation(libs.bundles.mockito) -} - -test { - useJUnitPlatform() -} \ No newline at end of file diff --git a/tools/platform/src/main/java/io/flowinquiry/logback/LoggingService.java b/tools/platform/src/main/java/io/flowinquiry/logback/LoggingService.java deleted file mode 100644 index 7bf53a9e..00000000 --- a/tools/platform/src/main/java/io/flowinquiry/logback/LoggingService.java +++ /dev/null @@ -1,5 +0,0 @@ -package io.flowinquiry.logback; - - -public class LoggingService { -} diff --git a/tools/platform/src/test/java/io/flowinquiry/logback/MaskingMessageConverterTest.java b/tools/platform/src/test/java/io/flowinquiry/logback/MaskingMessageConverterTest.java deleted file mode 100644 index 60982f6e..00000000 --- a/tools/platform/src/test/java/io/flowinquiry/logback/MaskingMessageConverterTest.java +++ /dev/null @@ -1,72 +0,0 @@ -package io.flowinquiry.logback; - -import ch.qos.logback.classic.spi.ILoggingEvent; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.Mock; -import org.mockito.junit.jupiter.MockitoExtension; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.mockito.Mockito.when; - -@ExtendWith(MockitoExtension.class) -public class MaskingMessageConverterTest { - private MaskingMessageConverter maskingMessageConverter = new MaskingMessageConverter(); - - @Mock - private ILoggingEvent mockLoggingEvent; - - @Test - public void testMaskingEmail() { - when(mockLoggingEvent.getFormattedMessage()).thenReturn("User email is john.doe@example.com"); - - String maskedMessage = maskingMessageConverter.convert(mockLoggingEvent); - - assertEquals("User email is [ANONYMIZED_EMAIL]", maskedMessage); - } - - @Test - public void testMaskingCreditCard() { - when(mockLoggingEvent.getFormattedMessage()).thenReturn("User credit card number is 1234-5678-9876-5432"); - - String maskedMessage = maskingMessageConverter.convert(mockLoggingEvent); - - assertEquals("User credit card number is [ANONYMIZED_CREDIT_CARD]", maskedMessage); - } - - @Test - public void testMaskingPhoneNumber() { - when(mockLoggingEvent.getFormattedMessage()).thenReturn("User phone number is +1-123-456-7890"); - - String maskedMessage = maskingMessageConverter.convert(mockLoggingEvent); - - assertEquals("User phone number is [ANONYMIZED_PHONE]", maskedMessage); - } - - @Test - public void testMaskingIPAddress() { - when(mockLoggingEvent.getFormattedMessage()).thenReturn("User IP address is 192.168.1.1"); - - String maskedMessage = maskingMessageConverter.convert(mockLoggingEvent); - - assertEquals("User IP address is [ANONYMIZED_IP]", maskedMessage); - } - - @Test - public void testNoMaskingNeeded() { - when(mockLoggingEvent.getFormattedMessage()).thenReturn("This is a regular log message with no sensitive data"); - - String maskedMessage = maskingMessageConverter.convert(mockLoggingEvent); - - assertEquals("This is a regular log message with no sensitive data", maskedMessage); - } - - @Test - public void testMultipleSensitiveData() { - when(mockLoggingEvent.getFormattedMessage()).thenReturn("User email is john.doe@example.com, credit card is 1234-5678-9876-5432"); - - String maskedMessage = maskingMessageConverter.convert(mockLoggingEvent); - - assertEquals("User email is [ANONYMIZED_EMAIL], credit card is [ANONYMIZED_CREDIT_CARD]", maskedMessage); - } -}