├── .gitattributes ├── .github └── workflows │ └── deploy.yml ├── .gitignore ├── README.md ├── app ├── .gitignore ├── build.gradle.kts └── src │ ├── main │ ├── kotlin │ │ └── com │ │ │ └── plcoding │ │ │ └── chirp │ │ │ ├── ChirpApplication.kt │ │ │ ├── api │ │ │ └── security │ │ │ │ └── SecurityConfig.kt │ │ │ └── infra │ │ │ └── caching │ │ │ └── RedisConfig.kt │ └── resources │ │ ├── application-dev.yml │ │ ├── application-prod.yml │ │ └── application.yml │ └── test │ └── kotlin │ └── com │ └── plcoding │ └── chirp │ └── ChirpApplicationTests.kt ├── chat ├── build.gradle.kts └── src │ └── main │ └── kotlin │ └── com │ └── plcoding │ └── chirp │ ├── api │ ├── controllers │ │ ├── ChatController.kt │ │ ├── ChatMessageController.kt │ │ └── ChatParticipantController.kt │ ├── dto │ │ ├── AddParticipantToChatDto.kt │ │ ├── ChatDto.kt │ │ ├── ChatMessageDto.kt │ │ ├── ChatParticipantDto.kt │ │ ├── ConfirmProfilePictureRequest.kt │ │ ├── CreateChatRequest.kt │ │ ├── PictureUploadResponse.kt │ │ └── ws │ │ │ ├── ChatParticipantsChangedDto.kt │ │ │ ├── DeleteMessageDto.kt │ │ │ ├── ErrorDto.kt │ │ │ ├── ProfilePictureUpdateDto.kt │ │ │ ├── SendMessageDto.kt │ │ │ └── WebSocketEvent.kt │ ├── exception_handling │ │ └── ChatExceptionHandler.kt │ ├── mappers │ │ ├── ChatDtoMappers.kt │ │ └── ProfilePictureMappers.kt │ └── websocket │ │ ├── ChatWebSocketHandler.kt │ │ └── WebSocketConfig.kt │ ├── domain │ ├── event │ │ ├── ChatCreatedEvent.kt │ │ ├── ChatParticipantLeftEvent.kt │ │ ├── ChatParticipantsJoinedEvent.kt │ │ ├── MessageDeletedEvent.kt │ │ └── ProfilePictureUpdatedEvent.kt │ ├── exception │ │ ├── ChatNotFoundException.kt │ │ ├── ChatParticipantNotFoundException.kt │ │ ├── InvalidChatSizeException.kt │ │ ├── InvalidProfilePictureException.kt │ │ ├── MessageNotFoundException.kt │ │ └── StorageException.kt │ └── models │ │ ├── Chat.kt │ │ ├── ChatMessage.kt │ │ ├── ChatParticipant.kt │ │ └── ProfilePictureUploadCredentials.kt │ ├── infra │ ├── database │ │ ├── entities │ │ │ ├── ChatEntity.kt │ │ │ ├── ChatMessageEntity.kt │ │ │ └── ChatParticipantEntity.kt │ │ ├── mappers │ │ │ └── ChatMappers.kt │ │ └── repositories │ │ │ ├── ChatMessageRepository.kt │ │ │ ├── ChatParticipantRepository.kt │ │ │ └── ChatRepository.kt │ ├── messaging │ │ └── ChatUserEventListener.kt │ └── storage │ │ ├── SupabaseRestClientConfig.kt │ │ └── SupabaseStorageService.kt │ └── service │ ├── ChatMessageService.kt │ ├── ChatParticipantService.kt │ ├── ChatService.kt │ └── ProfilePictureService.kt ├── common ├── build.gradle.kts └── src │ └── main │ └── kotlin │ └── com │ └── plcoding │ └── chirp │ ├── api │ ├── exception_handling │ │ └── CommonExceptionHandler.kt │ └── util │ │ └── requestUserId.kt │ ├── domain │ ├── events │ │ ├── ChirpEvent.kt │ │ ├── chat │ │ │ ├── ChatEvent.kt │ │ │ └── ChatEventConstants.kt │ │ └── user │ │ │ ├── UserEvent.kt │ │ │ └── UserEventConstants.kt │ ├── exception │ │ ├── ForbiddenException.kt │ │ ├── InvalidTokenException.kt │ │ └── UnauthorizedException.kt │ └── type │ │ ├── ChatId.kt │ │ ├── ChatMessageId.kt │ │ └── UserId.kt │ ├── infra │ └── message_queue │ │ ├── EventPublisher.kt │ │ ├── MessageQueues.kt │ │ └── RabbitMqConfig.kt │ └── service │ └── JwtService.kt ├── gradle ├── libs.versions.toml └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── notification ├── build.gradle.kts └── src │ └── main │ ├── kotlin │ └── com │ │ └── plcoding │ │ └── chirp │ │ ├── api │ │ ├── controllers │ │ │ └── DeviceTokenController.kt │ │ ├── dto │ │ │ ├── DeviceTokenDto.kt │ │ │ └── RegisterDeviceRequest.kt │ │ ├── exception_handling │ │ │ └── NotificationExceptionHandler.kt │ │ └── mappers │ │ │ └── DeviceTokenMappers.kt │ │ ├── domain │ │ ├── exception │ │ │ └── InvalidDeviceTokenException.kt │ │ └── model │ │ │ ├── DeviceToken.kt │ │ │ ├── PushNotification.kt │ │ │ └── PushNotificationSendResult.kt │ │ ├── infra │ │ ├── database │ │ │ ├── DeviceTokenEntity.kt │ │ │ ├── DeviceTokenRepository.kt │ │ │ └── PlatformEntity.kt │ │ ├── mappers │ │ │ ├── DeviceTokenMappers.kt │ │ │ └── PlatformMappers.kt │ │ ├── message_queue │ │ │ ├── NotificationChatEventListener.kt │ │ │ └── NotificationUserEventListener.kt │ │ └── push_notification │ │ │ └── FirebasePushNotificationService.kt │ │ └── service │ │ ├── EmailService.kt │ │ ├── EmailTemplateService.kt │ │ └── PushNotificationService.kt │ └── resources │ └── templates │ └── emails │ ├── account-verification.html │ ├── fragments │ ├── footer.html │ └── header.html │ ├── layout.html │ └── reset-password.html ├── settings.gradle.kts └── user ├── build.gradle.kts └── src └── main ├── kotlin └── com │ └── plcoding │ └── chirp │ ├── api │ ├── config │ │ ├── ApiKeyAuthFilter.kt │ │ ├── IpRateLimit.kt │ │ ├── IpRateLimitInterceptor.kt │ │ ├── JwtAuthFilter.kt │ │ └── WebMvcConfig.kt │ ├── controllers │ │ ├── ApiKeyController.kt │ │ └── AuthController.kt │ ├── dto │ │ ├── ApiKeyDto.kt │ │ ├── AuthenticatedUserDto.kt │ │ ├── ChangePasswordRequest.kt │ │ ├── CreateApiKeyRequest.kt │ │ ├── EmailRequest.kt │ │ ├── LoginRequest.kt │ │ ├── RefreshRequest.kt │ │ ├── RegisterRequest.kt │ │ ├── ResetPasswordRequest.kt │ │ └── UserDto.kt │ ├── exception_handling │ │ └── AuthExceptionHandler.kt │ ├── mappers │ │ ├── ApiKeyMappers.kt │ │ └── UserMappers.kt │ └── util │ │ └── Password.kt │ ├── domain │ ├── exception │ │ ├── EmailNotVerifiedException.kt │ │ ├── InvalidCredentialsException.kt │ │ ├── RateLimitException.kt │ │ ├── SamePasswordException.kt │ │ ├── UserAlreadyExistsException.kt │ │ └── UserNotFoundException.kt │ └── model │ │ ├── ApiKey.kt │ │ ├── AuthenticatedUser.kt │ │ ├── EmailVerificationToken.kt │ │ └── User.kt │ ├── infra │ ├── config │ │ └── NginxConfig.kt │ ├── database │ │ ├── entities │ │ │ ├── ApiKeyEntity.kt │ │ │ ├── EmailVerificationTokenEntity.kt │ │ │ ├── PasswordResetTokenEntity.kt │ │ │ ├── RefreshTokenEntity.kt │ │ │ └── UserEntity.kt │ │ ├── mappers │ │ │ ├── ApiKeyMappers.kt │ │ │ ├── EmailVerificationTokenMappers.kt │ │ │ └── UserMappers.kt │ │ └── repositories │ │ │ ├── ApiKeyRepository.kt │ │ │ ├── EmailVerificationTokenRepository.kt │ │ │ ├── PasswordResetTokenRepository.kt │ │ │ ├── RefreshTokenRepository.kt │ │ │ └── UserRepository.kt │ ├── rate_limiting │ │ ├── EmailRateLimiter.kt │ │ ├── IpRateLimiter.kt │ │ └── IpResolver.kt │ └── security │ │ ├── PasswordEncoder.kt │ │ └── TokenGenerator.kt │ └── service │ ├── ApiKeyService.kt │ ├── AuthService.kt │ ├── EmailVerificationService.kt │ └── PasswordResetService.kt └── resources ├── email_rate_limit.lua └── ip_rate_limit.lua /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/.gitattributes -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/.github/workflows/deploy.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/README.md -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/app/.gitignore -------------------------------------------------------------------------------- /app/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/app/build.gradle.kts -------------------------------------------------------------------------------- /app/src/main/kotlin/com/plcoding/chirp/ChirpApplication.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/app/src/main/kotlin/com/plcoding/chirp/ChirpApplication.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/com/plcoding/chirp/api/security/SecurityConfig.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/app/src/main/kotlin/com/plcoding/chirp/api/security/SecurityConfig.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/com/plcoding/chirp/infra/caching/RedisConfig.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/app/src/main/kotlin/com/plcoding/chirp/infra/caching/RedisConfig.kt -------------------------------------------------------------------------------- /app/src/main/resources/application-dev.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/app/src/main/resources/application-dev.yml -------------------------------------------------------------------------------- /app/src/main/resources/application-prod.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/app/src/main/resources/application-prod.yml -------------------------------------------------------------------------------- /app/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/app/src/main/resources/application.yml -------------------------------------------------------------------------------- /app/src/test/kotlin/com/plcoding/chirp/ChirpApplicationTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/app/src/test/kotlin/com/plcoding/chirp/ChirpApplicationTests.kt -------------------------------------------------------------------------------- /chat/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/build.gradle.kts -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/controllers/ChatController.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/controllers/ChatController.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/controllers/ChatMessageController.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/controllers/ChatMessageController.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/controllers/ChatParticipantController.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/controllers/ChatParticipantController.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/dto/AddParticipantToChatDto.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/dto/AddParticipantToChatDto.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/dto/ChatDto.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/dto/ChatDto.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/dto/ChatMessageDto.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/dto/ChatMessageDto.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/dto/ChatParticipantDto.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/dto/ChatParticipantDto.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/dto/ConfirmProfilePictureRequest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/dto/ConfirmProfilePictureRequest.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/dto/CreateChatRequest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/dto/CreateChatRequest.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/dto/PictureUploadResponse.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/dto/PictureUploadResponse.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/dto/ws/ChatParticipantsChangedDto.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/dto/ws/ChatParticipantsChangedDto.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/dto/ws/DeleteMessageDto.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/dto/ws/DeleteMessageDto.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/dto/ws/ErrorDto.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/dto/ws/ErrorDto.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/dto/ws/ProfilePictureUpdateDto.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/dto/ws/ProfilePictureUpdateDto.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/dto/ws/SendMessageDto.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/dto/ws/SendMessageDto.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/dto/ws/WebSocketEvent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/dto/ws/WebSocketEvent.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/exception_handling/ChatExceptionHandler.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/exception_handling/ChatExceptionHandler.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/mappers/ChatDtoMappers.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/mappers/ChatDtoMappers.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/mappers/ProfilePictureMappers.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/mappers/ProfilePictureMappers.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/websocket/ChatWebSocketHandler.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/websocket/ChatWebSocketHandler.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/api/websocket/WebSocketConfig.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/api/websocket/WebSocketConfig.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/domain/event/ChatCreatedEvent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/domain/event/ChatCreatedEvent.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/domain/event/ChatParticipantLeftEvent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/domain/event/ChatParticipantLeftEvent.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/domain/event/ChatParticipantsJoinedEvent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/domain/event/ChatParticipantsJoinedEvent.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/domain/event/MessageDeletedEvent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/domain/event/MessageDeletedEvent.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/domain/event/ProfilePictureUpdatedEvent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/domain/event/ProfilePictureUpdatedEvent.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/domain/exception/ChatNotFoundException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/domain/exception/ChatNotFoundException.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/domain/exception/ChatParticipantNotFoundException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/domain/exception/ChatParticipantNotFoundException.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/domain/exception/InvalidChatSizeException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/domain/exception/InvalidChatSizeException.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/domain/exception/InvalidProfilePictureException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/domain/exception/InvalidProfilePictureException.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/domain/exception/MessageNotFoundException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/domain/exception/MessageNotFoundException.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/domain/exception/StorageException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/domain/exception/StorageException.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/domain/models/Chat.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/domain/models/Chat.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/domain/models/ChatMessage.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/domain/models/ChatMessage.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/domain/models/ChatParticipant.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/domain/models/ChatParticipant.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/domain/models/ProfilePictureUploadCredentials.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/domain/models/ProfilePictureUploadCredentials.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/infra/database/entities/ChatEntity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/infra/database/entities/ChatEntity.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/infra/database/entities/ChatMessageEntity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/infra/database/entities/ChatMessageEntity.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/infra/database/entities/ChatParticipantEntity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/infra/database/entities/ChatParticipantEntity.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/infra/database/mappers/ChatMappers.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/infra/database/mappers/ChatMappers.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/infra/database/repositories/ChatMessageRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/infra/database/repositories/ChatMessageRepository.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/infra/database/repositories/ChatParticipantRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/infra/database/repositories/ChatParticipantRepository.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/infra/database/repositories/ChatRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/infra/database/repositories/ChatRepository.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/infra/messaging/ChatUserEventListener.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/infra/messaging/ChatUserEventListener.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/infra/storage/SupabaseRestClientConfig.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/infra/storage/SupabaseRestClientConfig.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/infra/storage/SupabaseStorageService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/infra/storage/SupabaseStorageService.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/service/ChatMessageService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/service/ChatMessageService.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/service/ChatParticipantService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/service/ChatParticipantService.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/service/ChatService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/service/ChatService.kt -------------------------------------------------------------------------------- /chat/src/main/kotlin/com/plcoding/chirp/service/ProfilePictureService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/chat/src/main/kotlin/com/plcoding/chirp/service/ProfilePictureService.kt -------------------------------------------------------------------------------- /common/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/common/build.gradle.kts -------------------------------------------------------------------------------- /common/src/main/kotlin/com/plcoding/chirp/api/exception_handling/CommonExceptionHandler.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/common/src/main/kotlin/com/plcoding/chirp/api/exception_handling/CommonExceptionHandler.kt -------------------------------------------------------------------------------- /common/src/main/kotlin/com/plcoding/chirp/api/util/requestUserId.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/common/src/main/kotlin/com/plcoding/chirp/api/util/requestUserId.kt -------------------------------------------------------------------------------- /common/src/main/kotlin/com/plcoding/chirp/domain/events/ChirpEvent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/common/src/main/kotlin/com/plcoding/chirp/domain/events/ChirpEvent.kt -------------------------------------------------------------------------------- /common/src/main/kotlin/com/plcoding/chirp/domain/events/chat/ChatEvent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/common/src/main/kotlin/com/plcoding/chirp/domain/events/chat/ChatEvent.kt -------------------------------------------------------------------------------- /common/src/main/kotlin/com/plcoding/chirp/domain/events/chat/ChatEventConstants.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/common/src/main/kotlin/com/plcoding/chirp/domain/events/chat/ChatEventConstants.kt -------------------------------------------------------------------------------- /common/src/main/kotlin/com/plcoding/chirp/domain/events/user/UserEvent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/common/src/main/kotlin/com/plcoding/chirp/domain/events/user/UserEvent.kt -------------------------------------------------------------------------------- /common/src/main/kotlin/com/plcoding/chirp/domain/events/user/UserEventConstants.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/common/src/main/kotlin/com/plcoding/chirp/domain/events/user/UserEventConstants.kt -------------------------------------------------------------------------------- /common/src/main/kotlin/com/plcoding/chirp/domain/exception/ForbiddenException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/common/src/main/kotlin/com/plcoding/chirp/domain/exception/ForbiddenException.kt -------------------------------------------------------------------------------- /common/src/main/kotlin/com/plcoding/chirp/domain/exception/InvalidTokenException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/common/src/main/kotlin/com/plcoding/chirp/domain/exception/InvalidTokenException.kt -------------------------------------------------------------------------------- /common/src/main/kotlin/com/plcoding/chirp/domain/exception/UnauthorizedException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/common/src/main/kotlin/com/plcoding/chirp/domain/exception/UnauthorizedException.kt -------------------------------------------------------------------------------- /common/src/main/kotlin/com/plcoding/chirp/domain/type/ChatId.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/common/src/main/kotlin/com/plcoding/chirp/domain/type/ChatId.kt -------------------------------------------------------------------------------- /common/src/main/kotlin/com/plcoding/chirp/domain/type/ChatMessageId.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/common/src/main/kotlin/com/plcoding/chirp/domain/type/ChatMessageId.kt -------------------------------------------------------------------------------- /common/src/main/kotlin/com/plcoding/chirp/domain/type/UserId.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/common/src/main/kotlin/com/plcoding/chirp/domain/type/UserId.kt -------------------------------------------------------------------------------- /common/src/main/kotlin/com/plcoding/chirp/infra/message_queue/EventPublisher.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/common/src/main/kotlin/com/plcoding/chirp/infra/message_queue/EventPublisher.kt -------------------------------------------------------------------------------- /common/src/main/kotlin/com/plcoding/chirp/infra/message_queue/MessageQueues.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/common/src/main/kotlin/com/plcoding/chirp/infra/message_queue/MessageQueues.kt -------------------------------------------------------------------------------- /common/src/main/kotlin/com/plcoding/chirp/infra/message_queue/RabbitMqConfig.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/common/src/main/kotlin/com/plcoding/chirp/infra/message_queue/RabbitMqConfig.kt -------------------------------------------------------------------------------- /common/src/main/kotlin/com/plcoding/chirp/service/JwtService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/common/src/main/kotlin/com/plcoding/chirp/service/JwtService.kt -------------------------------------------------------------------------------- /gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/gradle/libs.versions.toml -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/gradlew.bat -------------------------------------------------------------------------------- /notification/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/build.gradle.kts -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/api/controllers/DeviceTokenController.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/api/controllers/DeviceTokenController.kt -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/api/dto/DeviceTokenDto.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/api/dto/DeviceTokenDto.kt -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/api/dto/RegisterDeviceRequest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/api/dto/RegisterDeviceRequest.kt -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/api/exception_handling/NotificationExceptionHandler.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/api/exception_handling/NotificationExceptionHandler.kt -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/api/mappers/DeviceTokenMappers.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/api/mappers/DeviceTokenMappers.kt -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/domain/exception/InvalidDeviceTokenException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/domain/exception/InvalidDeviceTokenException.kt -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/domain/model/DeviceToken.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/domain/model/DeviceToken.kt -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/domain/model/PushNotification.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/domain/model/PushNotification.kt -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/domain/model/PushNotificationSendResult.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/domain/model/PushNotificationSendResult.kt -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/infra/database/DeviceTokenEntity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/infra/database/DeviceTokenEntity.kt -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/infra/database/DeviceTokenRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/infra/database/DeviceTokenRepository.kt -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/infra/database/PlatformEntity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/infra/database/PlatformEntity.kt -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/infra/mappers/DeviceTokenMappers.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/infra/mappers/DeviceTokenMappers.kt -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/infra/mappers/PlatformMappers.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/infra/mappers/PlatformMappers.kt -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/infra/message_queue/NotificationChatEventListener.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/infra/message_queue/NotificationChatEventListener.kt -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/infra/message_queue/NotificationUserEventListener.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/infra/message_queue/NotificationUserEventListener.kt -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/infra/push_notification/FirebasePushNotificationService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/infra/push_notification/FirebasePushNotificationService.kt -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/service/EmailService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/service/EmailService.kt -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/service/EmailTemplateService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/service/EmailTemplateService.kt -------------------------------------------------------------------------------- /notification/src/main/kotlin/com/plcoding/chirp/service/PushNotificationService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/kotlin/com/plcoding/chirp/service/PushNotificationService.kt -------------------------------------------------------------------------------- /notification/src/main/resources/templates/emails/account-verification.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/resources/templates/emails/account-verification.html -------------------------------------------------------------------------------- /notification/src/main/resources/templates/emails/fragments/footer.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/resources/templates/emails/fragments/footer.html -------------------------------------------------------------------------------- /notification/src/main/resources/templates/emails/fragments/header.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/resources/templates/emails/fragments/header.html -------------------------------------------------------------------------------- /notification/src/main/resources/templates/emails/layout.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/resources/templates/emails/layout.html -------------------------------------------------------------------------------- /notification/src/main/resources/templates/emails/reset-password.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/notification/src/main/resources/templates/emails/reset-password.html -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/settings.gradle.kts -------------------------------------------------------------------------------- /user/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/build.gradle.kts -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/config/ApiKeyAuthFilter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/config/ApiKeyAuthFilter.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/config/IpRateLimit.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/config/IpRateLimit.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/config/IpRateLimitInterceptor.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/config/IpRateLimitInterceptor.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/config/JwtAuthFilter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/config/JwtAuthFilter.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/config/WebMvcConfig.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/config/WebMvcConfig.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/controllers/ApiKeyController.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/controllers/ApiKeyController.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/controllers/AuthController.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/controllers/AuthController.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/dto/ApiKeyDto.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/dto/ApiKeyDto.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/dto/AuthenticatedUserDto.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/dto/AuthenticatedUserDto.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/dto/ChangePasswordRequest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/dto/ChangePasswordRequest.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/dto/CreateApiKeyRequest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/dto/CreateApiKeyRequest.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/dto/EmailRequest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/dto/EmailRequest.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/dto/LoginRequest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/dto/LoginRequest.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/dto/RefreshRequest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/dto/RefreshRequest.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/dto/RegisterRequest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/dto/RegisterRequest.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/dto/ResetPasswordRequest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/dto/ResetPasswordRequest.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/dto/UserDto.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/dto/UserDto.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/exception_handling/AuthExceptionHandler.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/exception_handling/AuthExceptionHandler.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/mappers/ApiKeyMappers.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/mappers/ApiKeyMappers.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/mappers/UserMappers.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/mappers/UserMappers.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/api/util/Password.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/api/util/Password.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/domain/exception/EmailNotVerifiedException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/domain/exception/EmailNotVerifiedException.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/domain/exception/InvalidCredentialsException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/domain/exception/InvalidCredentialsException.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/domain/exception/RateLimitException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/domain/exception/RateLimitException.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/domain/exception/SamePasswordException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/domain/exception/SamePasswordException.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/domain/exception/UserAlreadyExistsException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/domain/exception/UserAlreadyExistsException.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/domain/exception/UserNotFoundException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/domain/exception/UserNotFoundException.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/domain/model/ApiKey.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/domain/model/ApiKey.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/domain/model/AuthenticatedUser.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/domain/model/AuthenticatedUser.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/domain/model/EmailVerificationToken.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/domain/model/EmailVerificationToken.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/domain/model/User.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/domain/model/User.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/infra/config/NginxConfig.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/infra/config/NginxConfig.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/infra/database/entities/ApiKeyEntity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/infra/database/entities/ApiKeyEntity.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/infra/database/entities/EmailVerificationTokenEntity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/infra/database/entities/EmailVerificationTokenEntity.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/infra/database/entities/PasswordResetTokenEntity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/infra/database/entities/PasswordResetTokenEntity.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/infra/database/entities/RefreshTokenEntity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/infra/database/entities/RefreshTokenEntity.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/infra/database/entities/UserEntity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/infra/database/entities/UserEntity.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/infra/database/mappers/ApiKeyMappers.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/infra/database/mappers/ApiKeyMappers.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/infra/database/mappers/EmailVerificationTokenMappers.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/infra/database/mappers/EmailVerificationTokenMappers.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/infra/database/mappers/UserMappers.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/infra/database/mappers/UserMappers.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/infra/database/repositories/ApiKeyRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/infra/database/repositories/ApiKeyRepository.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/infra/database/repositories/EmailVerificationTokenRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/infra/database/repositories/EmailVerificationTokenRepository.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/infra/database/repositories/PasswordResetTokenRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/infra/database/repositories/PasswordResetTokenRepository.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/infra/database/repositories/RefreshTokenRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/infra/database/repositories/RefreshTokenRepository.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/infra/database/repositories/UserRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/infra/database/repositories/UserRepository.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/infra/rate_limiting/EmailRateLimiter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/infra/rate_limiting/EmailRateLimiter.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/infra/rate_limiting/IpRateLimiter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/infra/rate_limiting/IpRateLimiter.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/infra/rate_limiting/IpResolver.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/infra/rate_limiting/IpResolver.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/infra/security/PasswordEncoder.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/infra/security/PasswordEncoder.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/infra/security/TokenGenerator.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/infra/security/TokenGenerator.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/service/ApiKeyService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/service/ApiKeyService.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/service/AuthService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/service/AuthService.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/service/EmailVerificationService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/service/EmailVerificationService.kt -------------------------------------------------------------------------------- /user/src/main/kotlin/com/plcoding/chirp/service/PasswordResetService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/kotlin/com/plcoding/chirp/service/PasswordResetService.kt -------------------------------------------------------------------------------- /user/src/main/resources/email_rate_limit.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/resources/email_rate_limit.lua -------------------------------------------------------------------------------- /user/src/main/resources/ip_rate_limit.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipplackner/chirp-api/HEAD/user/src/main/resources/ip_rate_limit.lua --------------------------------------------------------------------------------