From c528022c34cf622e22479d2db8b903d2272dce98 Mon Sep 17 00:00:00 2001 From: binchoo <079111w@gmail.com> Date: Fri, 22 Jul 2022 03:17:44 +0900 Subject: [PATCH 1/2] Resolve #20 Reconstruct hexagonal architecture --- Makefile | 17 ++-- PaimonGanyu/application/build.gradle | 99 ------------------- PaimonGanyu/build.gradle | 12 +-- PaimonGanyu/domain/build.gradle | 9 -- .../{application => paimonganyu-app}/LICENSE | 4 +- PaimonGanyu/paimonganyu-app/build.gradle | 3 + .../paimonganyu-skill/build.gradle | 59 +++++++++++ .../paimonganyu/chatbot/PaimonGanyu.java | 0 .../chatbot/PaimonGanyuLambda.java | 1 + .../configs/YamlPropertySourceFactory.java | 0 .../configs/aws/DynamoDBClientConfig.java | 0 .../configs/aws/DynamoTableConfig.java | 0 .../chatbot/configs/aws/SsmClientConfig.java | 0 .../configs/aws/TestDynamoDBTable.java | 0 .../chatbot/configs/aws/TimeZoneConfig.java | 0 .../configs/error/ErrorExplainConfig.java | 0 .../resource/BlockQuickReplyConfig.java | 4 +- .../chatbot/configs/resource/ImageConfig.java | 2 +- .../chatbot/configs/view/ViewConfig.java | 0 .../chatbot/configs/web/WebConfig.java | 2 +- .../controllers/DailyCheckController.java | 0 .../controllers/ExceptionExplainAdvice.java | 4 +- .../controllers/HealthCheckController.java | 0 .../controllers/HoyopassController.java | 1 - .../controllers/TravelerController.java | 0 .../filters/ContentCachingFilter.java | 0 .../resolvers/CachedSkillPayloadResolver.java | 0 .../resolvers/SkillPayloadResolver.java | 0 .../resolvers/clientextra/ClientExtra.java | 0 .../clientextra/ClientExtraResolver.java | 2 +- .../controllers/resolvers/id/UserId.java | 0 .../resolvers/id/UserIdResolver.java | 0 .../resolvers/param/ActionParam.java | 0 .../resolvers/param/ActionParamResolver.java | 0 .../errorbinders/CryptoExceptionBinder.java | 0 .../errorbinders/ErrorContextBinders.java | 0 .../errorbinders/HoyopassExceptionBinder.java | 0 .../chatbot/resources/BlockSpec.java | 0 .../paimonganyu/chatbot/resources/Blocks.java | 0 .../chatbot/resources/FallbackMethods.java | 0 .../paimonganyu/chatbot/resources/Images.java | 0 .../chatbot/resources/QuickReplies.java | 0 .../chatbot/views/SkillResponseView.java | 8 +- .../views/dailycheck/DailyCheckListView.java | 10 +- .../views/error/DefaultErrorExplain.java | 0 .../views/error/ErrorResponseView.java | 0 .../views/hoyopass/HoyopassListView.java | 10 +- .../views/traveler/TravelerStatusView.java | 10 +- .../chatbot/views/uid/UidListView.java | 8 +- .../src/main/resources/blocks.yaml | 0 .../src/main/resources/images.yaml | 0 .../chatbot/PaimonGanyuLambdaTest.java | 0 .../paimonganyu/chatbot/PaimonGanyuTest.java | 0 ...ecuredHoyopassRegistryLocalSystemTest.java | 4 +- .../ssm/SsmSigningKeyManagerIntegTest.java | 3 +- .../GameRecordApiAdapterIntegTest.java | 3 +- .../web/UidSearchClientAdapterIntegTest.java | 5 +- .../redeem}/RedeemClientAdapterIntegTest.java | 3 +- .../testconfig/TestAmazonClientsConfig.java | 0 .../TestHoyopassCredentialsConfig.java | 0 .../paimonganyu-app/paimonganyu/build.gradle | 41 ++++++++ .../lambda/DailyCheckBatchRequesterMain.java | 0 .../lambda/DailyCheckHitoriRequesterMain.java | 0 .../lambda/DailyCheckWorkerMain.java | 0 .../lambda/RedeemCodeDeliveryMain.java | 0 .../lambda/RedeemUserDeliveryMain.java | 0 .../paimonganyu/lambda/RedeemWorkerMain.java | 0 .../lambda/config/DynamoDBClientConfig.java | 0 .../lambda/config/S3ClientConfig.java | 0 .../lambda/config/SqsClientConfig.java | 0 .../lambda/config/SsmClientConfig.java | 0 .../config/UserDailyCheckTableConfig.java | 0 .../config/UserHoyopassTableConfig.java | 0 .../lambda/config/UserRedeemTableConfig.java | 0 .../DailyCheckBatchRequesterLambda.java | 0 .../DailyCheckHitoriRequesterLambda.java | 0 .../lambda/dailycheck/DailyCheckTaskSpec.java | 0 .../dailycheck/DailyCheckWorkerLambda.java | 0 .../dailycheck/dto/UserHoyopassMessage.java | 0 .../fanout/UserHoyopassFanoutLambda.java | 0 .../redeem/RedeemCodeDeliveryLambda.java | 0 .../redeem/RedeemUserDeliveryLambda.java | 0 .../lambda/redeem/RedeemWorkerLambda.java | 0 .../DailyCheckBatchRequesterLambdaTest.java | 0 .../DailyCheckHitoriRequesterLambdaTest.java | 0 .../DailyCheckWorkerLambdaTest.java | 0 .../fanout/UserHoyopassFanoutLambdaTest.java | 0 .../redeem/RedeemCodeDeliveryLambdaTest.java | 0 .../redeem/RedeemUserDeliveryLambdaTest.java | 2 - .../lambda/redeem/RedeemWorkerLambdaTest.java | 2 - .../{domain => paimonganyu-domain}/LICENSE | 0 PaimonGanyu/paimonganyu-domain/build.gradle | 8 ++ .../paimonganyu/algorithm/BloomFilter.java | 0 .../paimonganyu/algorithm/MultiHashable.java | 0 .../dailycheck/DailyCheckRequestResult.java | 0 .../dailycheck/UserDailyCheck.java | 0 .../dailycheck/UserDailyCheckStatus.java | 0 .../driven/DailyCheckClientPort.java | 0 .../driven/UserDailyCheckCrudPort.java | 0 .../dailycheck/driving/DailyCheckPort.java | 0 .../exception/NoUserDailyCheckException.java | 0 .../paimonganyu/error/ErrorContextBinder.java | 0 .../paimonganyu/error/ErrorExplain.java | 0 .../paimonganyu/error/FallbackMethod.java | 0 .../paimonganyu/error/ThrowerAware.java | 0 .../paimonganyu/hoyopass/Hoyopass.java | 0 .../hoyopass/HoyopassCredentials.java | 0 .../binchoo/paimonganyu/hoyopass/Region.java | 0 .../hoyopass/SecureHoyopassCredentials.java | 0 .../org/binchoo/paimonganyu/hoyopass/Uid.java | 0 .../paimonganyu/hoyopass/UserHoyopass.java | 0 .../hoyopass/driven/SigningKeyManagePort.java | 0 .../hoyopass/driven/UidSearchClientPort.java | 0 .../hoyopass/driven/UserHoyopassCrudPort.java | 0 .../driving/HoyopassRegisterPort.java | 0 .../driving/SecureHoyopassRegisterPort.java | 0 .../hoyopass/exception/CryptoException.java | 0 .../exception/DuplicationException.java | 0 .../exception/InactiveStateException.java | 0 .../exception/QuantityExceedException.java | 0 .../exception/QuantityZeroException.java | 0 .../exception/UserHoyopassException.java | 0 .../paimonganyu/redeem/RedeemCode.java | 0 .../redeem/RedeemResultCallback.java | 0 .../paimonganyu/redeem/RedeemTask.java | 6 +- .../paimonganyu/redeem/UserRedeem.java | 0 .../redeem/driven/RedeemCodeCrudPort.java | 0 .../redeem/driven/RedemptionClientPort.java | 0 .../redeem/driven/UserRedeemCrudPort.java | 0 .../redeem/driving/RedeemHistoryPort.java | 0 .../driving/RedeemTaskEstimationPort.java | 0 .../redeem/driving/RedemptionPort.java | 0 .../options/RedeemTaskEstimationOption.java | 0 .../service/dailycheck/DailyCheckService.java | 0 .../service/hoyopass/HoyopassRegister.java | 0 .../hoyopass/SecureHoyopassRegister.java | 0 .../service/redeem/RedeemAllCodesOption.java | 0 .../service/redeem/RedeemAllUsersOption.java | 0 .../service/redeem/RedeemBloomFilter.java | 0 .../service/redeem/RedeemTaskEstimator.java | 0 .../paimonganyu/service/redeem/Redeemer.java | 0 .../traveler/TravelerStatusService.java | 0 .../paimonganyu/traveler/TravelerStatus.java | 0 .../traveler/driven/GameRecordClientPort.java | 0 .../traveler/driving/TravelerStatusPort.java | 0 .../dailycheck/UserDailyCheckTest.java | 0 .../hoyopass/UserHoyopassTest.java | 0 .../dailycheck/DailyCheckServiceTest.java | 0 .../service/redeem/RedeemBloomFilterTest.java | 0 .../hoyopass/HoyopassMockUtils.java | 0 .../{hoyoapi => paimonganyu-hoyoapi}/LICENSE | 0 .../build.gradle | 4 +- .../hoyoapi/DataSwitchConfigurer.java | 0 .../hoyoapi/HoyoCodeRedemptionApi.java | 0 .../hoyoapi/HoyolabAccountApi.java | 0 .../paimonganyu/hoyoapi/HoyolabApi.java | 0 .../paimonganyu/hoyoapi/HoyolabConstant.java | 0 .../hoyoapi/HoyolabDailyCheckApi.java | 0 .../hoyoapi/HoyolabGameRecordApi.java | 0 .../HoyoApiWebClientConfigurer.java | 0 .../paimonganyu/hoyoapi/ds/DsGenerator.java | 0 .../paimonganyu/hoyoapi/error/Retcode.java | 0 .../hoyoapi/error/RetcodeException.java | 0 .../error/RetcodeExceptionBootstrapper.java | 0 .../error/RetcodeExceptionMappings.java | 0 .../error/aspect/HoyoResponseInspector.java | 0 .../aspect/HoyoResponseMonoInspector.java | 0 .../exceptions/AccountNotFoundError.java | 0 .../CodeRedemptionRequestException.java | 0 .../CodeRedemptionThrottledException.java | 0 .../error/exceptions/DataNotPublicError.java | 0 .../error/exceptions/InvalidRequestError.java | 0 .../error/exceptions/NotLoggedInError.java | 0 .../hoyoapi/error/exceptions/ParamsError.java | 0 .../error/exceptions/SignInException.java | 0 .../exceptions/TooManyRequestsError.java | 0 .../hoyoapi/pojo/AccountIdCookieToken.java | 0 .../hoyoapi/pojo/ChangeDataSwitchResult.java | 0 .../hoyoapi/pojo/CodeRedemptionResult.java | 0 .../hoyoapi/pojo/DailyCheckMonthlyReport.java | 0 .../hoyoapi/pojo/DailyCheckResult.java | 0 .../paimonganyu/hoyoapi/pojo/DailyNote.java | 0 .../hoyoapi/pojo/GenshinAvatar.java | 0 .../hoyoapi/pojo/GenshinAvatars.java | 0 .../hoyoapi/pojo/HoyoResponse.java | 0 .../paimonganyu/hoyoapi/pojo/LtuidLtoken.java | 0 .../paimonganyu/hoyoapi/pojo/UidRegion.java | 0 .../hoyoapi/pojo/UserGameRole.java | 0 .../hoyoapi/pojo/UserGameRoles.java | 0 .../hoyoapi/pojo/enums/DataSwitch.java | 0 .../hoyoapi/pojo/enums/HoyoGame.java | 0 .../support/DefaultDataSwitchConfigurer.java | 0 .../hoyoapi/support/DefaultDsGenerator.java | 0 .../hoyoapi/support/DsHeaderGenerator.java | 0 .../webclient/HoyolabAccountWebClient.java | 0 .../webclient/HoyolabDailyCheckWebClient.java | 0 .../webclient/HoyolabGameRecordWebClient.java | 0 .../async/CodeRedemptionWebClient.java | 0 .../hoyoapi/webclient/async/Retriable.java | 0 .../main/resources/META-INF/spring.factories | 0 .../aspect/HoyoResponseInspectorTest.java | 0 .../hoyoapi/testconfig/TestAccountConfig.java | 0 .../testconfig/TestAccountDetails.java | 0 .../HoyolabAccountWebClientTest.java | 0 .../HoyolabDailyCheckWebClientTest.java | 0 .../HoyolabGameRecordWebClientTest.java | 0 .../async/CodeRedemptionWebClientTest.java | 0 PaimonGanyu/paimonganyu-infra/build.gradle | 30 ++++++ .../dynamo/item/UserDailyCheckItem.java | 0 .../UserDailyCheckDynamoAdapter.java | 2 - .../UserDailyCheckDynamoRepository.java | 0 .../web/DailyCheckClientAdapter.java | 0 .../dynamo/item/HoyopassDocument.java | 0 .../hoyopass/dynamo/item/UidDocument.java | 0 .../dynamo/item/UserHoyopassItem.java | 0 .../repository/UserHoyopassDynamoAdapter.java | 0 .../UserHoyopassDynamoRepository.java | 0 .../hoyopass/ssm/SsmSigningKeyManage.java | 0 .../hoyopass/web/UidSearchClientAdapter.java | 0 .../redeem/dynamo/item/UserRedeemItem.java | 0 .../repository/UserRedeemDynamoAdapter.java | 0 .../UserRedeemDynamoRepository.java | 0 .../s3/repository/RedeemCodeS3Adapter.java | 0 .../redeem/web/RedemptionClientAdapter.java | 0 .../traveler/web/GameRecordApiAdapter.java | 0 .../utils/LocalDateTimeStringConverter.java | 0 .../UserDailyCheckDynamoAdapterTest.java | 0 .../web/DailyCheckClientAdapterTest.java | 0 .../UserHoyopassDynamoAdapterTest.java | 0 .../ssm/SsmSigningKeyManagerTest.java | 0 .../web/UidSearchClientAdapterTest.java | 2 - .../UserRedeemDynamoAdapterTest.java | 0 .../web/RedemptionClientAdapterTest.java | 0 .../web/GameRecordApiAdapterTest.java | 2 - PaimonGanyu/settings.gradle | 5 +- 235 files changed, 202 insertions(+), 185 deletions(-) delete mode 100644 PaimonGanyu/application/build.gradle delete mode 100644 PaimonGanyu/domain/build.gradle rename PaimonGanyu/{application => paimonganyu-app}/LICENSE (99%) create mode 100644 PaimonGanyu/paimonganyu-app/build.gradle create mode 100644 PaimonGanyu/paimonganyu-app/paimonganyu-skill/build.gradle rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/PaimonGanyu.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/PaimonGanyuLambda.java (97%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/configs/YamlPropertySourceFactory.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/DynamoDBClientConfig.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/DynamoTableConfig.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/SsmClientConfig.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/TestDynamoDBTable.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/TimeZoneConfig.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/configs/error/ErrorExplainConfig.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/configs/resource/BlockQuickReplyConfig.java (91%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/configs/resource/ImageConfig.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/configs/view/ViewConfig.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/configs/web/WebConfig.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/DailyCheckController.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/ExceptionExplainAdvice.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/HealthCheckController.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/HoyopassController.java (97%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/TravelerController.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/filters/ContentCachingFilter.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/CachedSkillPayloadResolver.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/SkillPayloadResolver.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/clientextra/ClientExtra.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/clientextra/ClientExtraResolver.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/id/UserId.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/id/UserIdResolver.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/param/ActionParam.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/param/ActionParamResolver.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/errorbinders/CryptoExceptionBinder.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/errorbinders/ErrorContextBinders.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/errorbinders/HoyopassExceptionBinder.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/resources/BlockSpec.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/resources/Blocks.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/resources/FallbackMethods.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/resources/Images.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/resources/QuickReplies.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/views/SkillResponseView.java (95%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/views/dailycheck/DailyCheckListView.java (94%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/views/error/DefaultErrorExplain.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/views/error/ErrorResponseView.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/views/hoyopass/HoyopassListView.java (91%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/views/traveler/TravelerStatusView.java (95%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/java/org/binchoo/paimonganyu/chatbot/views/uid/UidListView.java (94%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/resources/blocks.yaml (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/main/resources/images.yaml (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/test/java/org/binchoo/paimonganyu/chatbot/PaimonGanyuLambdaTest.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/test/java/org/binchoo/paimonganyu/chatbot/PaimonGanyuTest.java (100%) rename PaimonGanyu/{application/src/test/java/org/binchoo/paimonganyu/infra => paimonganyu-app/paimonganyu-skill/src/test/java/org/binchoo/paimonganyu/integration}/hoyopass/SecuredHoyopassRegistryLocalSystemTest.java (99%) rename PaimonGanyu/{application/src/test/java/org/binchoo/paimonganyu/infra => paimonganyu-app/paimonganyu-skill/src/test/java/org/binchoo/paimonganyu/integration}/hoyopass/ssm/SsmSigningKeyManagerIntegTest.java (94%) rename PaimonGanyu/{application/src/test/java/org/binchoo/paimonganyu/infra/traveler/web => paimonganyu-app/paimonganyu-skill/src/test/java/org/binchoo/paimonganyu/integration/hoyopass/traveler}/GameRecordApiAdapterIntegTest.java (97%) rename PaimonGanyu/{application/src/test/java/org/binchoo/paimonganyu/infra => paimonganyu-app/paimonganyu-skill/src/test/java/org/binchoo/paimonganyu/integration}/hoyopass/web/UidSearchClientAdapterIntegTest.java (96%) rename PaimonGanyu/{application/src/test/java/org/binchoo/paimonganyu/infra/redeem/web => paimonganyu-app/paimonganyu-skill/src/test/java/org/binchoo/paimonganyu/integration/redeem}/RedeemClientAdapterIntegTest.java (94%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/test/java/org/binchoo/paimonganyu/testconfig/TestAmazonClientsConfig.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu-skill}/src/test/java/org/binchoo/paimonganyu/testconfig/TestHoyopassCredentialsConfig.java (100%) create mode 100644 PaimonGanyu/paimonganyu-app/paimonganyu/build.gradle rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/DailyCheckBatchRequesterMain.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/DailyCheckHitoriRequesterMain.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/DailyCheckWorkerMain.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/RedeemCodeDeliveryMain.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/RedeemUserDeliveryMain.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/RedeemWorkerMain.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/config/DynamoDBClientConfig.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/config/S3ClientConfig.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/config/SqsClientConfig.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/config/SsmClientConfig.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/config/UserDailyCheckTableConfig.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/config/UserHoyopassTableConfig.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/config/UserRedeemTableConfig.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/dailycheck/DailyCheckBatchRequesterLambda.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/dailycheck/DailyCheckHitoriRequesterLambda.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/dailycheck/DailyCheckTaskSpec.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/dailycheck/DailyCheckWorkerLambda.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/dailycheck/dto/UserHoyopassMessage.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/fanout/UserHoyopassFanoutLambda.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/redeem/RedeemCodeDeliveryLambda.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/redeem/RedeemUserDeliveryLambda.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/main/java/org/binchoo/paimonganyu/lambda/redeem/RedeemWorkerLambda.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/test/java/org/binchoo/paimonganyu/lambda/dailycheck/DailyCheckBatchRequesterLambdaTest.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/test/java/org/binchoo/paimonganyu/lambda/dailycheck/DailyCheckHitoriRequesterLambdaTest.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/test/java/org/binchoo/paimonganyu/lambda/dailycheck/DailyCheckWorkerLambdaTest.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/test/java/org/binchoo/paimonganyu/lambda/fanout/UserHoyopassFanoutLambdaTest.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/test/java/org/binchoo/paimonganyu/lambda/redeem/RedeemCodeDeliveryLambdaTest.java (100%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/test/java/org/binchoo/paimonganyu/lambda/redeem/RedeemUserDeliveryLambdaTest.java (83%) rename PaimonGanyu/{application => paimonganyu-app/paimonganyu}/src/test/java/org/binchoo/paimonganyu/lambda/redeem/RedeemWorkerLambdaTest.java (82%) rename PaimonGanyu/{domain => paimonganyu-domain}/LICENSE (100%) create mode 100644 PaimonGanyu/paimonganyu-domain/build.gradle rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/algorithm/BloomFilter.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/algorithm/MultiHashable.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/dailycheck/DailyCheckRequestResult.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/dailycheck/UserDailyCheck.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/dailycheck/UserDailyCheckStatus.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/dailycheck/driven/DailyCheckClientPort.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/dailycheck/driven/UserDailyCheckCrudPort.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/dailycheck/driving/DailyCheckPort.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/dailycheck/exception/NoUserDailyCheckException.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/error/ErrorContextBinder.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/error/ErrorExplain.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/error/FallbackMethod.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/error/ThrowerAware.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/hoyopass/Hoyopass.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/hoyopass/HoyopassCredentials.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/hoyopass/Region.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/hoyopass/SecureHoyopassCredentials.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/hoyopass/Uid.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/hoyopass/UserHoyopass.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/hoyopass/driven/SigningKeyManagePort.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/hoyopass/driven/UidSearchClientPort.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/hoyopass/driven/UserHoyopassCrudPort.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/hoyopass/driving/HoyopassRegisterPort.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/hoyopass/driving/SecureHoyopassRegisterPort.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/hoyopass/exception/CryptoException.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/hoyopass/exception/DuplicationException.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/hoyopass/exception/InactiveStateException.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/hoyopass/exception/QuantityExceedException.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/hoyopass/exception/QuantityZeroException.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/hoyopass/exception/UserHoyopassException.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/redeem/RedeemCode.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/redeem/RedeemResultCallback.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/redeem/RedeemTask.java (97%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/redeem/UserRedeem.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/redeem/driven/RedeemCodeCrudPort.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/redeem/driven/RedemptionClientPort.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/redeem/driven/UserRedeemCrudPort.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/redeem/driving/RedeemHistoryPort.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/redeem/driving/RedeemTaskEstimationPort.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/redeem/driving/RedemptionPort.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/redeem/options/RedeemTaskEstimationOption.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/service/dailycheck/DailyCheckService.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/service/hoyopass/HoyopassRegister.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/service/hoyopass/SecureHoyopassRegister.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/service/redeem/RedeemAllCodesOption.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/service/redeem/RedeemAllUsersOption.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/service/redeem/RedeemBloomFilter.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/service/redeem/RedeemTaskEstimator.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/service/redeem/Redeemer.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/service/traveler/TravelerStatusService.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/traveler/TravelerStatus.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/traveler/driven/GameRecordClientPort.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/main/java/org/binchoo/paimonganyu/traveler/driving/TravelerStatusPort.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/test/java/org/binchoo/paimonganyu/dailycheck/UserDailyCheckTest.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/test/java/org/binchoo/paimonganyu/hoyopass/UserHoyopassTest.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/test/java/org/binchoo/paimonganyu/service/dailycheck/DailyCheckServiceTest.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/test/java/org/binchoo/paimonganyu/service/redeem/RedeemBloomFilterTest.java (100%) rename PaimonGanyu/{domain => paimonganyu-domain}/src/testFixtures/java/org/binchoo/paimonganyu/testfixture/hoyopass/HoyopassMockUtils.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/LICENSE (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/build.gradle (83%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/DataSwitchConfigurer.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/HoyoCodeRedemptionApi.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/HoyolabAccountApi.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/HoyolabApi.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/HoyolabConstant.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/HoyolabDailyCheckApi.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/HoyolabGameRecordApi.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/autoconfig/HoyoApiWebClientConfigurer.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/ds/DsGenerator.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/error/Retcode.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/error/RetcodeException.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/error/RetcodeExceptionBootstrapper.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/error/RetcodeExceptionMappings.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/error/aspect/HoyoResponseInspector.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/error/aspect/HoyoResponseMonoInspector.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/error/exceptions/AccountNotFoundError.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/error/exceptions/CodeRedemptionRequestException.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/error/exceptions/CodeRedemptionThrottledException.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/error/exceptions/DataNotPublicError.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/error/exceptions/InvalidRequestError.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/error/exceptions/NotLoggedInError.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/error/exceptions/ParamsError.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/error/exceptions/SignInException.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/error/exceptions/TooManyRequestsError.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/pojo/AccountIdCookieToken.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/pojo/ChangeDataSwitchResult.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/pojo/CodeRedemptionResult.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/pojo/DailyCheckMonthlyReport.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/pojo/DailyCheckResult.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/pojo/DailyNote.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/pojo/GenshinAvatar.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/pojo/GenshinAvatars.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/pojo/HoyoResponse.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/pojo/LtuidLtoken.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/pojo/UidRegion.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/pojo/UserGameRole.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/pojo/UserGameRoles.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/pojo/enums/DataSwitch.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/pojo/enums/HoyoGame.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/support/DefaultDataSwitchConfigurer.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/support/DefaultDsGenerator.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/support/DsHeaderGenerator.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/webclient/HoyolabAccountWebClient.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/webclient/HoyolabDailyCheckWebClient.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/webclient/HoyolabGameRecordWebClient.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/webclient/async/CodeRedemptionWebClient.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/java/org/binchoo/paimonganyu/hoyoapi/webclient/async/Retriable.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/main/resources/META-INF/spring.factories (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/test/java/org/binchoo/paimonganyu/hoyoapi/error/aspect/HoyoResponseInspectorTest.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/test/java/org/binchoo/paimonganyu/hoyoapi/testconfig/TestAccountConfig.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/test/java/org/binchoo/paimonganyu/hoyoapi/testconfig/TestAccountDetails.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/test/java/org/binchoo/paimonganyu/hoyoapi/webclient/HoyolabAccountWebClientTest.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/test/java/org/binchoo/paimonganyu/hoyoapi/webclient/HoyolabDailyCheckWebClientTest.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/test/java/org/binchoo/paimonganyu/hoyoapi/webclient/HoyolabGameRecordWebClientTest.java (100%) rename PaimonGanyu/{hoyoapi => paimonganyu-hoyoapi}/src/test/java/org/binchoo/paimonganyu/hoyoapi/webclient/async/CodeRedemptionWebClientTest.java (100%) create mode 100644 PaimonGanyu/paimonganyu-infra/build.gradle rename PaimonGanyu/{application => paimonganyu-infra}/src/main/java/org/binchoo/paimonganyu/infra/dailycheck/dynamo/item/UserDailyCheckItem.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/main/java/org/binchoo/paimonganyu/infra/dailycheck/dynamo/repository/UserDailyCheckDynamoAdapter.java (93%) rename PaimonGanyu/{application => paimonganyu-infra}/src/main/java/org/binchoo/paimonganyu/infra/dailycheck/dynamo/repository/UserDailyCheckDynamoRepository.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/main/java/org/binchoo/paimonganyu/infra/dailycheck/web/DailyCheckClientAdapter.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/main/java/org/binchoo/paimonganyu/infra/hoyopass/dynamo/item/HoyopassDocument.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/main/java/org/binchoo/paimonganyu/infra/hoyopass/dynamo/item/UidDocument.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/main/java/org/binchoo/paimonganyu/infra/hoyopass/dynamo/item/UserHoyopassItem.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/main/java/org/binchoo/paimonganyu/infra/hoyopass/dynamo/repository/UserHoyopassDynamoAdapter.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/main/java/org/binchoo/paimonganyu/infra/hoyopass/dynamo/repository/UserHoyopassDynamoRepository.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/main/java/org/binchoo/paimonganyu/infra/hoyopass/ssm/SsmSigningKeyManage.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/main/java/org/binchoo/paimonganyu/infra/hoyopass/web/UidSearchClientAdapter.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/main/java/org/binchoo/paimonganyu/infra/redeem/dynamo/item/UserRedeemItem.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/main/java/org/binchoo/paimonganyu/infra/redeem/dynamo/repository/UserRedeemDynamoAdapter.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/main/java/org/binchoo/paimonganyu/infra/redeem/dynamo/repository/UserRedeemDynamoRepository.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/main/java/org/binchoo/paimonganyu/infra/redeem/s3/repository/RedeemCodeS3Adapter.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/main/java/org/binchoo/paimonganyu/infra/redeem/web/RedemptionClientAdapter.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/main/java/org/binchoo/paimonganyu/infra/traveler/web/GameRecordApiAdapter.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/main/java/org/binchoo/paimonganyu/infra/utils/LocalDateTimeStringConverter.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/test/java/org/binchoo/paimonganyu/infra/dailycheck/dynamo/repository/UserDailyCheckDynamoAdapterTest.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/test/java/org/binchoo/paimonganyu/infra/dailycheck/web/DailyCheckClientAdapterTest.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/test/java/org/binchoo/paimonganyu/infra/hoyopass/dynamo/repository/UserHoyopassDynamoAdapterTest.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/test/java/org/binchoo/paimonganyu/infra/hoyopass/ssm/SsmSigningKeyManagerTest.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/test/java/org/binchoo/paimonganyu/infra/hoyopass/web/UidSearchClientAdapterTest.java (94%) rename PaimonGanyu/{application => paimonganyu-infra}/src/test/java/org/binchoo/paimonganyu/infra/redeem/dynamo/repository/UserRedeemDynamoAdapterTest.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/test/java/org/binchoo/paimonganyu/infra/redeem/web/RedemptionClientAdapterTest.java (100%) rename PaimonGanyu/{application => paimonganyu-infra}/src/test/java/org/binchoo/paimonganyu/infra/traveler/web/GameRecordApiAdapterTest.java (97%) diff --git a/Makefile b/Makefile index abe7bd44..a9afccfb 100644 --- a/Makefile +++ b/Makefile @@ -1,32 +1,33 @@ main: -paimonganyu-skill-prod: build +paimonganyu-skill-prod: build-paimonganyu-skill cd sam/paimonganyu-skill; sam deploy --guided \ --stack-name paimonganyu-skill \ --profile serverless \ --region ap-northeast-2 \ --parameter-overrides Env=prod -paimonganyu-prod: build +paimonganyu-prod: build-paimonganyu cd sam/paimonganyu; sam deploy --guided \ --stack-name paimonganyu \ --profile serverless \ --region ap-northeast-2 \ --parameter-overrides Env=prod -paimonganyu-test: build +paimonganyu-test: build-paimonganyu cd sam/paimonganyu; sam deploy --guided \ --stack-name paimonganyu-test --profile serverless \ --region ap-northeast-1 \ --parameter-overrides Env=test -build: build-template - cd PaimonGanyu; ./gradlew -Pversion=$(version) -x test clean :application:copyBuiltZipNoTomcat :application:copyBootJar - -build-template: +build-paimonganyu: cd sam/paimonganyu; sam build --profile serverless + cd PaimonGanyu; ./gradlew -Pversion=$(version) -x test clean :paimonganyu-app:paimonganyu:copyZipNoTomcat + +build-paimonganyu-skill: cd sam/paimonganyu-skill; sam build --profile serverless + cd PaimonGanyu; ./gradlew -Pversion=$(version) -x test clean :paimonganyu-app:paimonganyu-skill:copyBootJar localtest: - cd PaimonGanyu; ./gradlew -PlocalTest=true :application:test + cd PaimonGanyu; ./gradlew -PlocalTest=true clean test diff --git a/PaimonGanyu/application/build.gradle b/PaimonGanyu/application/build.gradle deleted file mode 100644 index 1448e947..00000000 --- a/PaimonGanyu/application/build.gradle +++ /dev/null @@ -1,99 +0,0 @@ -plugins { - id "org.springframework.boot" version "${bootVersion}" - id "io.spring.dependency-management" version '1.0.11.RELEASE' -} - -dependencies { - implementation 'org.springframework.boot:spring-boot-starter-data-jpa' - - implementation ("com.amazonaws:aws-java-sdk-dynamodb:${awsSdkVersion}") { - because 'All workflows use the Amazon DynamoDB as their persistence system.' - } - implementation ('com.github.derjust:spring-data-dynamodb:5.1.0') { - because 'To automatically create some DynamoDB repositories.' - } - - implementation ("com.amazonaws:aws-java-sdk-sns:${awsSdkVersion}") { - because 'Hoyopass fanout leverages an SNS topic.' - } - - implementation ("com.amazonaws:aws-java-sdk-ssm:${awsSdkVersion}") { - because 'Hoyopass could digest secured (RSA-signed) hoyopass strings.' - } - - implementation 'com.amazonaws:aws-lambda-java-core:1.2.1' - implementation 'com.amazonaws:aws-lambda-java-events:3.11.0' - implementation 'com.amazonaws.serverless:aws-serverless-java-container-springboot2:1.8.1' - - testImplementation('org.springframework.boot:spring-boot-starter-test') { - exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' - } -} - -bootJar { - archiveBaseName='paimonganyu-skill' -} - -task buildZipNoTomcat(type: Zip) { - from compileJava - from processResources - into('lib') { - from (configurations.runtimeClasspath) { - exclude 'tomcat-embed-*' - } - } -} - -def samBuildDir(String stackName) { - '../'.repeat(project.depth + 1) + "sam/${stackName}/.aws-sam/build" -} - -task copyBuiltZipNoTomcat(type: Copy) { - def dest = samBuildDir('paimonganyu') - from buildZipNoTomcat - into(dest) - doLast { - println "$project.name:$name has moved fat-zip into $dest" - } -} - -task copyBootJar(type: Copy) { - def dest = samBuildDir('paimonganyu-skill') - from bootJar - into(dest) - doLast { - println "$project.name:$name has moved bootJar into $dest" - } -} - -task stopRunningDynamoDBContainer(type: Exec) { - standardOutput = new ByteArrayOutputStream() - commandLine = ['bash', '-c', - 'docker ps -q | while read line; do if [[ $(docker port $line) == *"3306"* ]]; then docker stop $line; fi; done;'] - doLast { - println "Container stopped: ${standardOutput.toString()}" - } -} - -task startDynamoDBContainer(type: Exec) { - dependsOn stopRunningDynamoDBContainer - standardOutput = new ByteArrayOutputStream() - commandLine = ['docker', 'run', '-p', '3306:8000', '-d', 'amazon/dynamodb-local'] - doLast { - println "Container started: ${standardOutput.toString()}" - } -} - -/** - * @param -PlocalTest=true|false - */ -test { - def isLocalTest = Boolean.parseBoolean(project.findProperty("localTest")) - if (isLocalTest) - dependsOn startDynamoDBContainer - else { - filter { - excludeTestsMatching("org.binchoo.paimonganyu.infra.hoyopass.SecuredHoyopassRegistryLocalSystemTest") - } - } -} \ No newline at end of file diff --git a/PaimonGanyu/build.gradle b/PaimonGanyu/build.gradle index 1d54a4cd..4e1c50d7 100644 --- a/PaimonGanyu/build.gradle +++ b/PaimonGanyu/build.gradle @@ -12,7 +12,7 @@ allprojects { bootVersion = '2.4.2' awsSdkVersion = '1.11.914' jacksonVersion = '2.11.4' - lombokVersion = '1.18.22' + lombokVersion = '1.18.24' } repositories { @@ -40,14 +40,4 @@ allprojects { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 -} - -project(':application').dependencies { - implementation project(':hoyoapi') - implementation project(':awsutils') - implementation (project(':ikakao')) { - because 'to render skill response of kakao chatbot' - } - implementation project(':domain') - testImplementation(testFixtures(project(':domain'))) } \ No newline at end of file diff --git a/PaimonGanyu/domain/build.gradle b/PaimonGanyu/domain/build.gradle deleted file mode 100644 index f08de035..00000000 --- a/PaimonGanyu/domain/build.gradle +++ /dev/null @@ -1,9 +0,0 @@ -plugins { - id "java-library" - id "java-test-fixtures" -} - -dependencies { - api "org.springframework.boot:spring-boot-starter-web:${bootVersion}" - api "org.springframework.boot:spring-boot-starter-data-jpa:${bootVersion}" -} \ No newline at end of file diff --git a/PaimonGanyu/application/LICENSE b/PaimonGanyu/paimonganyu-app/LICENSE similarity index 99% rename from PaimonGanyu/application/LICENSE rename to PaimonGanyu/paimonganyu-app/LICENSE index c845bbd4..ae17a03e 100644 --- a/PaimonGanyu/application/LICENSE +++ b/PaimonGanyu/paimonganyu-app/LICENSE @@ -631,7 +631,7 @@ to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. - PaimonGanyu :application module + PaimonGanyu :paimonganyu-app module Copyright (C) 2022 jbinchoo This program is free software: you can redistribute it and/or modify @@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: - PaimonGanyu :application module Copyright (C) 2022 jbinchoo + PaimonGanyu :paimonganyu-app module Copyright (C) 2022 jbinchoo This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. diff --git a/PaimonGanyu/paimonganyu-app/build.gradle b/PaimonGanyu/paimonganyu-app/build.gradle new file mode 100644 index 00000000..70cb704d --- /dev/null +++ b/PaimonGanyu/paimonganyu-app/build.gradle @@ -0,0 +1,3 @@ +def samBuildDir(Project project, String stackName) { + '../'.repeat(project.depth + 1) + "sam/${stackName}/.aws-sam/build" +} \ No newline at end of file diff --git a/PaimonGanyu/paimonganyu-app/paimonganyu-skill/build.gradle b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/build.gradle new file mode 100644 index 00000000..f9b04188 --- /dev/null +++ b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/build.gradle @@ -0,0 +1,59 @@ +plugins { + id "org.springframework.boot" version "${bootVersion}" + id "io.spring.dependency-management" version '1.0.11.RELEASE' +} + +dependencies { + implementation project(':paimonganyu-infra') + implementation project(':ikakao') + + implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'com.amazonaws.serverless:aws-serverless-java-container-springboot2:1.8.1' + + testImplementation(testFixtures(project(':paimonganyu-domain'))) + testImplementation('org.springframework.boot:spring-boot-starter-test') { + exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' + } +} + +bootJar { + archiveBaseName='paimonganyu-skill' +} + +task copyBootJar(type: Copy) { + def dest = samBuildDir(project, 'paimonganyu-skill') + from bootJar + into(dest) + doLast { + println "$project.name:$name has moved bootJar into $dest" + } +} + +task stopRunningDynamoDBContainer(type: Exec) { + standardOutput = new ByteArrayOutputStream() + commandLine = ['bash', '-c', + 'docker ps -q | while read line; do if [[ $(docker port $line) == *"3306"* ]]; then docker stop $line; fi; done;'] + doLast { + println "Container stopped: ${standardOutput.toString()}" + } +} + +task startDynamoDBContainer(type: Exec) { + dependsOn stopRunningDynamoDBContainer + standardOutput = new ByteArrayOutputStream() + commandLine = ['docker', 'run', '-p', '3306:8000', '-d', 'amazon/dynamodb-local'] + doLast { + println "Container started: ${standardOutput.toString()}" + } +} + +test { + def isLocalTest = Boolean.parseBoolean(project.findProperty('localTest')) + if (isLocalTest) { + dependsOn startDynamoDBContainer + } else { + filter { + excludeTestsMatching("org.binchoo.paimonganyu.integration.hoyopass.SecuredHoyopassRegistryLocalSystemTest") + } + } +} \ No newline at end of file diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/PaimonGanyu.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/PaimonGanyu.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/PaimonGanyu.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/PaimonGanyu.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/PaimonGanyuLambda.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/PaimonGanyuLambda.java similarity index 97% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/PaimonGanyuLambda.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/PaimonGanyuLambda.java index c342f057..1be7220c 100644 --- a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/PaimonGanyuLambda.java +++ b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/PaimonGanyuLambda.java @@ -17,6 +17,7 @@ * @author jbinchoo * @since 2022/06/12 */ +@Deprecated(forRemoval = true) @Slf4j public class PaimonGanyuLambda implements RequestStreamHandler { diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/YamlPropertySourceFactory.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/YamlPropertySourceFactory.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/YamlPropertySourceFactory.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/YamlPropertySourceFactory.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/DynamoDBClientConfig.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/DynamoDBClientConfig.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/DynamoDBClientConfig.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/DynamoDBClientConfig.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/DynamoTableConfig.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/DynamoTableConfig.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/DynamoTableConfig.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/DynamoTableConfig.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/SsmClientConfig.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/SsmClientConfig.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/SsmClientConfig.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/SsmClientConfig.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/TestDynamoDBTable.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/TestDynamoDBTable.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/TestDynamoDBTable.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/TestDynamoDBTable.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/TimeZoneConfig.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/TimeZoneConfig.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/TimeZoneConfig.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/aws/TimeZoneConfig.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/error/ErrorExplainConfig.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/error/ErrorExplainConfig.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/error/ErrorExplainConfig.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/error/ErrorExplainConfig.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/resource/BlockQuickReplyConfig.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/resource/BlockQuickReplyConfig.java similarity index 91% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/resource/BlockQuickReplyConfig.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/resource/BlockQuickReplyConfig.java index acb67e0d..e57bbc9b 100644 --- a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/resource/BlockQuickReplyConfig.java +++ b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/resource/BlockQuickReplyConfig.java @@ -1,12 +1,10 @@ package org.binchoo.paimonganyu.chatbot.configs.resource; -import lombok.Setter; import org.binchoo.paimonganyu.chatbot.configs.YamlPropertySourceFactory; import org.binchoo.paimonganyu.chatbot.resources.BlockSpec; import org.binchoo.paimonganyu.chatbot.resources.Blocks; -import org.binchoo.paimonganyu.chatbot.resources.FallbackMethods; +import lombok.Setter; import org.binchoo.paimonganyu.chatbot.resources.QuickReplies; -import org.binchoo.paimonganyu.ikakao.type.QuickReply; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/resource/ImageConfig.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/resource/ImageConfig.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/resource/ImageConfig.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/resource/ImageConfig.java index 51791f76..f8b8886b 100644 --- a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/resource/ImageConfig.java +++ b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/resource/ImageConfig.java @@ -1,8 +1,8 @@ package org.binchoo.paimonganyu.chatbot.configs.resource; -import lombok.Setter; import org.binchoo.paimonganyu.chatbot.configs.YamlPropertySourceFactory; import org.binchoo.paimonganyu.chatbot.resources.Images; +import lombok.Setter; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/view/ViewConfig.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/view/ViewConfig.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/view/ViewConfig.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/view/ViewConfig.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/web/WebConfig.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/web/WebConfig.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/web/WebConfig.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/web/WebConfig.java index fb702f64..9855b7a7 100644 --- a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/configs/web/WebConfig.java +++ b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/configs/web/WebConfig.java @@ -1,7 +1,7 @@ package org.binchoo.paimonganyu.chatbot.configs.web; -import org.binchoo.paimonganyu.chatbot.controllers.resolvers.clientextra.ClientExtraResolver; import org.binchoo.paimonganyu.chatbot.controllers.resolvers.id.UserIdResolver; +import org.binchoo.paimonganyu.chatbot.controllers.resolvers.clientextra.ClientExtraResolver; import org.binchoo.paimonganyu.chatbot.controllers.resolvers.param.ActionParamResolver; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/DailyCheckController.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/DailyCheckController.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/DailyCheckController.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/DailyCheckController.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/ExceptionExplainAdvice.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/ExceptionExplainAdvice.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/ExceptionExplainAdvice.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/ExceptionExplainAdvice.java index 6259c110..eeca5a6f 100644 --- a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/ExceptionExplainAdvice.java +++ b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/ExceptionExplainAdvice.java @@ -1,9 +1,9 @@ package org.binchoo.paimonganyu.chatbot.controllers; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; import org.binchoo.paimonganyu.chatbot.errorbinders.ErrorContextBinders; import org.binchoo.paimonganyu.chatbot.views.error.DefaultErrorExplain; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.binchoo.paimonganyu.chatbot.views.error.ErrorResponseView; import org.binchoo.paimonganyu.error.ErrorContextBinder; import org.binchoo.paimonganyu.error.ErrorExplain; diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/HealthCheckController.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/HealthCheckController.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/HealthCheckController.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/HealthCheckController.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/HoyopassController.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/HoyopassController.java similarity index 97% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/HoyopassController.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/HoyopassController.java index 879340d4..3b03041e 100644 --- a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/HoyopassController.java +++ b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/HoyopassController.java @@ -1,6 +1,5 @@ package org.binchoo.paimonganyu.chatbot.controllers; -import com.fasterxml.jackson.databind.ObjectMapper; import lombok.RequiredArgsConstructor; import org.binchoo.paimonganyu.chatbot.controllers.resolvers.clientextra.ClientExtra; import org.binchoo.paimonganyu.chatbot.controllers.resolvers.id.UserId; diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/TravelerController.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/TravelerController.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/TravelerController.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/TravelerController.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/filters/ContentCachingFilter.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/filters/ContentCachingFilter.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/filters/ContentCachingFilter.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/filters/ContentCachingFilter.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/CachedSkillPayloadResolver.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/CachedSkillPayloadResolver.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/CachedSkillPayloadResolver.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/CachedSkillPayloadResolver.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/SkillPayloadResolver.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/SkillPayloadResolver.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/SkillPayloadResolver.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/SkillPayloadResolver.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/clientextra/ClientExtra.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/clientextra/ClientExtra.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/clientextra/ClientExtra.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/clientextra/ClientExtra.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/clientextra/ClientExtraResolver.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/clientextra/ClientExtraResolver.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/clientextra/ClientExtraResolver.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/clientextra/ClientExtraResolver.java index 4d568d26..f17891cd 100644 --- a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/clientextra/ClientExtraResolver.java +++ b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/clientextra/ClientExtraResolver.java @@ -1,7 +1,7 @@ package org.binchoo.paimonganyu.chatbot.controllers.resolvers.clientextra; -import lombok.RequiredArgsConstructor; import org.binchoo.paimonganyu.chatbot.controllers.resolvers.SkillPayloadResolver; +import lombok.RequiredArgsConstructor; import org.binchoo.paimonganyu.ikakao.SkillPayload; import org.springframework.core.MethodParameter; import org.springframework.stereotype.Component; diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/id/UserId.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/id/UserId.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/id/UserId.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/id/UserId.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/id/UserIdResolver.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/id/UserIdResolver.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/id/UserIdResolver.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/id/UserIdResolver.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/param/ActionParam.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/param/ActionParam.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/param/ActionParam.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/param/ActionParam.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/param/ActionParamResolver.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/param/ActionParamResolver.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/param/ActionParamResolver.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/controllers/resolvers/param/ActionParamResolver.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/errorbinders/CryptoExceptionBinder.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/errorbinders/CryptoExceptionBinder.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/errorbinders/CryptoExceptionBinder.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/errorbinders/CryptoExceptionBinder.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/errorbinders/ErrorContextBinders.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/errorbinders/ErrorContextBinders.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/errorbinders/ErrorContextBinders.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/errorbinders/ErrorContextBinders.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/errorbinders/HoyopassExceptionBinder.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/errorbinders/HoyopassExceptionBinder.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/errorbinders/HoyopassExceptionBinder.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/errorbinders/HoyopassExceptionBinder.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/resources/BlockSpec.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/resources/BlockSpec.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/resources/BlockSpec.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/resources/BlockSpec.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/resources/Blocks.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/resources/Blocks.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/resources/Blocks.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/resources/Blocks.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/resources/FallbackMethods.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/resources/FallbackMethods.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/resources/FallbackMethods.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/resources/FallbackMethods.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/resources/Images.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/resources/Images.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/resources/Images.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/resources/Images.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/resources/QuickReplies.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/resources/QuickReplies.java similarity index 100% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/resources/QuickReplies.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/resources/QuickReplies.java diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/views/SkillResponseView.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/views/SkillResponseView.java similarity index 95% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/views/SkillResponseView.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/views/SkillResponseView.java index ff8ec022..4b8b5b31 100644 --- a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/views/SkillResponseView.java +++ b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/views/SkillResponseView.java @@ -1,7 +1,7 @@ package org.binchoo.paimonganyu.chatbot.views; -import com.fasterxml.jackson.databind.ObjectMapper; import org.binchoo.paimonganyu.chatbot.resources.Blocks; +import com.fasterxml.jackson.databind.ObjectMapper; import org.binchoo.paimonganyu.chatbot.resources.Images; import org.binchoo.paimonganyu.chatbot.resources.QuickReplies; import org.binchoo.paimonganyu.ikakao.SkillResponse; @@ -60,15 +60,15 @@ public void render(Map model, */ protected abstract SkillResponse renderSkillResponse(Object modelContent); - public Images imageRepo() { + public Images images() { return images; } - public Blocks blockIdRepo() { + public Blocks blocks() { return blocks; } - public QuickReplies quickReplyRepo() { + public QuickReplies quickReplies() { return quickReplies; } } diff --git a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/views/dailycheck/DailyCheckListView.java b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/views/dailycheck/DailyCheckListView.java similarity index 94% rename from PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/views/dailycheck/DailyCheckListView.java rename to PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/views/dailycheck/DailyCheckListView.java index 2ad5df34..5f244ded 100644 --- a/PaimonGanyu/application/src/main/java/org/binchoo/paimonganyu/chatbot/views/dailycheck/DailyCheckListView.java +++ b/PaimonGanyu/paimonganyu-app/paimonganyu-skill/src/main/java/org/binchoo/paimonganyu/chatbot/views/dailycheck/DailyCheckListView.java @@ -51,7 +51,7 @@ public SkillResponse renderSkillResponse(List> dailyCheckCo .addOutput(CarouselView.builder() .carousel(renderCarousel(dailyCheckCollection)) .build()) - .quickReplies(quickReplyRepo().findByFallbackMethod(getFallbacks())) + .quickReplies(quickReplies().findByFallbackMethod(getFallbacks())) .build()) .build(); } @@ -104,15 +104,15 @@ private ListItem renderListItem(UserDailyCheck userDailyCheck) { if (status.isDuplicate()) { title = "중복"; description = "이미 출석 했었네...?"; - imageUrl = imageRepo().findByName(THUMB_DUPL); + imageUrl = images().findByName(THUMB_DUPL); } else if (status.isFailed()) { title = "실패.."; description = "아잇.. 왜 오류가 난거야"; - imageUrl = imageRepo().findByName(THUMB_FAIL); + imageUrl = images().findByName(THUMB_FAIL); } else if (status.isCompleted()) { title = "성공!"; description = "페이몬이 대신 출첵해줬어!"; - imageUrl = imageRepo().findByName(THUMB_COMPL); + imageUrl = images().findByName(THUMB_COMPL); } else { throw new RuntimeException("UserDailyCheckStatus of [" + status + "] is not supported."); } @@ -141,7 +141,7 @@ private List