From 6ae4d574753b17784edb29049a27b56875c935a1 Mon Sep 17 00:00:00 2001 From: Joachim Ansorg Date: Sat, 3 Jun 2023 13:28:38 +0200 Subject: [PATCH] implement application --- .gitignore | 3 +- .idea/copyright/AGPL_3_0.xml | 6 + .idea/copyright/profiles_settings.xml | 47 ++ .idea/gradle.xml | 3 +- .idea/kotlinc.xml | 2 +- .idea/modules.xml | 1 + .idea/modules/marketplace-stats.iml | 8 + .idea/runConfigurations/Application.xml | 11 + COPYING | 661 ++++++++++++++++++ README.md | 15 + build.gradle.kts | 19 +- config-template.json | 4 + gradle.properties | 7 +- gradle/wrapper/gradle-wrapper.properties | 2 +- .../client/KtorMarketplaceClient.kt | 12 +- .../ja}/marketplace/client/Marketplace.kt | 14 +- .../marketplace/client/MarketplaceClient.kt | 7 +- .../ja}/marketplace/client/YearMonthDay.kt | 33 +- .../ja}/marketplace/client/serializers.kt | 7 +- .../ja}/marketplace/client/types.kt | 43 +- .../ja}/marketplace/churn/ChurnProcessor.kt | 9 +- .../ja}/marketplace/churn/ChurnResult.kt | 9 +- .../marketplace/churn/SimpleChurnProcessor.kt | 14 +- .../kotlin/dev/ja/marketplace/data/Amounts.kt | 21 + .../ja}/marketplace/data/DataTable.kt | 17 +- .../ja}/marketplace/data/LicenseInfo.kt | 25 +- .../marketplace/data/MarketplaceDataSink.kt | 16 + .../data/MarketplaceDataSinkFactory.kt | 12 + .../marketplace/data/PaymentAmountTracker.kt | 39 ++ .../dev/ja/marketplace/data/PluginData.kt | 19 + .../dev/ja/marketplace/data/SaleCalculator.kt | 55 ++ .../ja}/marketplace/data/SplitAmount.kt | 9 +- .../dev/ja/marketplace/data/WithDateRange.kt | 12 + .../data/currentWeek/CurrentWeekFactory.kt | 17 + .../data/currentWeek/CurrentWeekTable.kt | 45 +- .../data/customerType/CustomerTypeFactory.kt | 16 + .../data/customerType/CustomerTypeTable.kt | 17 +- .../data/customers/CustomerTable.kt | 53 +- .../data/customers/CustomerTableFactory.kt | 16 +- .../marketplace/data/licenses/LicenseTable.kt | 13 +- .../data/licenses/LicenseTableFactory.kt | 17 + .../data/overview/CustomerTracker.kt | 13 +- .../data/overview/OverviewTable.kt | 89 ++- .../data/overview/OverviewTableFactory.kt | 17 + .../data/topCountries/TopCountriesFactory.kt | 16 + .../data/topCountries/TopCountriesTable.kt | 21 +- .../TopTrialCountriesFactory.kt | 16 + .../TopTrialCountriesTable.kt | 64 ++ .../ja/marketplace/data/trials/TrialsTable.kt | 65 ++ .../data/trials/TrialsTableFactory.kt | 16 + .../dev => dev/ja}/marketplace/data/types.kt | 11 +- .../data/yearSummary/YearlySummaryFactory.kt | 16 + .../data/yearSummary/YearlySummaryTable.kt | 68 ++ .../marketplace/data/MarketplaceDataSink.kt | 11 - .../data/MarketplaceDataSinkFactory.kt | 7 - .../ja/dev/marketplace/data/WithDateRange.kt | 7 - .../data/currentWeek/CurrentWeekFactory.kt | 11 - .../data/customerType/CustomerTypeFactory.kt | 11 - .../data/licenses/LicenseTableFactory.kt | 11 - .../data/overview/OverviewTableFactory.kt | 11 - .../data/topCountries/TopCountriesFactory.kt | 11 - .../data/yearSummary/YearlySummaryFactory.kt | 11 - .../data/yearSummary/YearlySummaryTable.kt | 82 --- .../churn/SimpleChurnProcessorTest.kt | 31 +- .../client/YearMonthDayRangeTest.kt | 7 +- .../kotlin/dev/ja/marketplace/Application.kt | 31 + .../dev/ja/marketplace/ApplicationConfig.kt | 18 + .../DefaultPluginPageDefinition.kt | 20 +- .../ja}/marketplace/MarketplaceStatsServer.kt | 44 +- .../ja}/marketplace/PluginDataLoader.kt | 34 +- .../ja/marketplace/PluginPageDefinition.kt | 10 + .../dev/marketplace/PluginPageDefinition.kt | 5 - src/main/resources/js/sortable.min.css | 1 + src/main/resources/js/sortable.min.js | 2 + src/main/resources/styles/main.css | 5 + src/main/resources/styles/print.css | 5 + src/main/resources/templates/dataRowGroup.kte | 35 +- src/main/resources/templates/dataTable.kte | 24 +- .../resources/templates/dataTableSection.kte | 28 +- src/main/resources/templates/main.kte | 32 +- src/main/resources/templates/render.kte | 4 +- .../resources/templates/tableColumnsRow.kte | 2 +- src/main/resources/templates/titleRow.kte | 3 +- 83 files changed, 1875 insertions(+), 407 deletions(-) create mode 100644 .idea/copyright/AGPL_3_0.xml create mode 100644 .idea/copyright/profiles_settings.xml create mode 100644 .idea/modules/marketplace-stats.iml create mode 100644 .idea/runConfigurations/Application.xml create mode 100644 COPYING create mode 100644 README.md create mode 100644 config-template.json rename marketplace-client/src/main/kotlin/{ja/dev => dev/ja}/marketplace/client/KtorMarketplaceClient.kt (91%) rename marketplace-client/src/main/kotlin/{ja/dev => dev/ja}/marketplace/client/Marketplace.kt (56%) rename marketplace-client/src/main/kotlin/{ja/dev => dev/ja}/marketplace/client/MarketplaceClient.kt (89%) rename marketplace-client/src/main/kotlin/{ja/dev => dev/ja}/marketplace/client/YearMonthDay.kt (86%) rename marketplace-client/src/main/kotlin/{ja/dev => dev/ja}/marketplace/client/serializers.kt (92%) rename marketplace-client/src/main/kotlin/{ja/dev => dev/ja}/marketplace/client/types.kt (90%) rename marketplace-data/src/main/kotlin/{ja/dev => dev/ja}/marketplace/churn/ChurnProcessor.kt (51%) rename marketplace-data/src/main/kotlin/{ja/dev => dev/ja}/marketplace/churn/ChurnResult.kt (74%) rename marketplace-data/src/main/kotlin/{ja/dev => dev/ja}/marketplace/churn/SimpleChurnProcessor.kt (80%) create mode 100644 marketplace-data/src/main/kotlin/dev/ja/marketplace/data/Amounts.kt rename marketplace-data/src/main/kotlin/{ja/dev => dev/ja}/marketplace/data/DataTable.kt (81%) rename marketplace-data/src/main/kotlin/{ja/dev => dev/ja}/marketplace/data/LicenseInfo.kt (78%) create mode 100644 marketplace-data/src/main/kotlin/dev/ja/marketplace/data/MarketplaceDataSink.kt create mode 100644 marketplace-data/src/main/kotlin/dev/ja/marketplace/data/MarketplaceDataSinkFactory.kt create mode 100644 marketplace-data/src/main/kotlin/dev/ja/marketplace/data/PaymentAmountTracker.kt create mode 100644 marketplace-data/src/main/kotlin/dev/ja/marketplace/data/PluginData.kt create mode 100644 marketplace-data/src/main/kotlin/dev/ja/marketplace/data/SaleCalculator.kt rename marketplace-data/src/main/kotlin/{ja/dev => dev/ja}/marketplace/data/SplitAmount.kt (87%) create mode 100644 marketplace-data/src/main/kotlin/dev/ja/marketplace/data/WithDateRange.kt create mode 100644 marketplace-data/src/main/kotlin/dev/ja/marketplace/data/currentWeek/CurrentWeekFactory.kt rename marketplace-data/src/main/kotlin/{ja/dev => dev/ja}/marketplace/data/currentWeek/CurrentWeekTable.kt (58%) create mode 100644 marketplace-data/src/main/kotlin/dev/ja/marketplace/data/customerType/CustomerTypeFactory.kt rename marketplace-data/src/main/kotlin/{ja/dev => dev/ja}/marketplace/data/customerType/CustomerTypeTable.kt (83%) rename marketplace-data/src/main/kotlin/{ja/dev => dev/ja}/marketplace/data/customers/CustomerTable.kt (56%) rename marketplace-data/src/main/kotlin/{ja/dev => dev/ja}/marketplace/data/customers/CustomerTableFactory.kt (53%) rename marketplace-data/src/main/kotlin/{ja/dev => dev/ja}/marketplace/data/licenses/LicenseTable.kt (89%) create mode 100644 marketplace-data/src/main/kotlin/dev/ja/marketplace/data/licenses/LicenseTableFactory.kt rename marketplace-data/src/main/kotlin/{ja/dev => dev/ja}/marketplace/data/overview/CustomerTracker.kt (71%) rename marketplace-data/src/main/kotlin/{ja/dev => dev/ja}/marketplace/data/overview/OverviewTable.kt (70%) create mode 100644 marketplace-data/src/main/kotlin/dev/ja/marketplace/data/overview/OverviewTableFactory.kt create mode 100644 marketplace-data/src/main/kotlin/dev/ja/marketplace/data/topCountries/TopCountriesFactory.kt rename marketplace-data/src/main/kotlin/{ja/dev => dev/ja}/marketplace/data/topCountries/TopCountriesTable.kt (76%) create mode 100644 marketplace-data/src/main/kotlin/dev/ja/marketplace/data/topTrialCountries/TopTrialCountriesFactory.kt create mode 100644 marketplace-data/src/main/kotlin/dev/ja/marketplace/data/topTrialCountries/TopTrialCountriesTable.kt create mode 100644 marketplace-data/src/main/kotlin/dev/ja/marketplace/data/trials/TrialsTable.kt create mode 100644 marketplace-data/src/main/kotlin/dev/ja/marketplace/data/trials/TrialsTableFactory.kt rename marketplace-data/src/main/kotlin/{ja/dev => dev/ja}/marketplace/data/types.kt (73%) create mode 100644 marketplace-data/src/main/kotlin/dev/ja/marketplace/data/yearSummary/YearlySummaryFactory.kt create mode 100644 marketplace-data/src/main/kotlin/dev/ja/marketplace/data/yearSummary/YearlySummaryTable.kt delete mode 100644 marketplace-data/src/main/kotlin/ja/dev/marketplace/data/MarketplaceDataSink.kt delete mode 100644 marketplace-data/src/main/kotlin/ja/dev/marketplace/data/MarketplaceDataSinkFactory.kt delete mode 100644 marketplace-data/src/main/kotlin/ja/dev/marketplace/data/WithDateRange.kt delete mode 100644 marketplace-data/src/main/kotlin/ja/dev/marketplace/data/currentWeek/CurrentWeekFactory.kt delete mode 100644 marketplace-data/src/main/kotlin/ja/dev/marketplace/data/customerType/CustomerTypeFactory.kt delete mode 100644 marketplace-data/src/main/kotlin/ja/dev/marketplace/data/licenses/LicenseTableFactory.kt delete mode 100644 marketplace-data/src/main/kotlin/ja/dev/marketplace/data/overview/OverviewTableFactory.kt delete mode 100644 marketplace-data/src/main/kotlin/ja/dev/marketplace/data/topCountries/TopCountriesFactory.kt delete mode 100644 marketplace-data/src/main/kotlin/ja/dev/marketplace/data/yearSummary/YearlySummaryFactory.kt delete mode 100644 marketplace-data/src/main/kotlin/ja/dev/marketplace/data/yearSummary/YearlySummaryTable.kt rename marketplace-data/src/test/kotlin/{ja/dev => dev/ja}/marketplace/churn/SimpleChurnProcessorTest.kt (62%) rename marketplace-data/src/test/kotlin/{ja/dev => dev/ja}/marketplace/client/YearMonthDayRangeTest.kt (91%) create mode 100644 src/main/kotlin/dev/ja/marketplace/Application.kt create mode 100644 src/main/kotlin/dev/ja/marketplace/ApplicationConfig.kt rename src/main/kotlin/{ja/dev => dev/ja}/marketplace/DefaultPluginPageDefinition.kt (69%) rename src/main/kotlin/{ja/dev => dev/ja}/marketplace/MarketplaceStatsServer.kt (64%) rename src/main/kotlin/{ja/dev => dev/ja}/marketplace/PluginDataLoader.kt (56%) create mode 100644 src/main/kotlin/dev/ja/marketplace/PluginPageDefinition.kt delete mode 100644 src/main/kotlin/ja/dev/marketplace/PluginPageDefinition.kt create mode 100644 src/main/resources/js/sortable.min.css create mode 100644 src/main/resources/js/sortable.min.js diff --git a/.gitignore b/.gitignore index e949d22..d05c527 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ build/ .gradle/ -jte-classes/ \ No newline at end of file +jte-classes/ +/config.json diff --git a/.idea/copyright/AGPL_3_0.xml b/.idea/copyright/AGPL_3_0.xml new file mode 100644 index 0000000..3f74a50 --- /dev/null +++ b/.idea/copyright/AGPL_3_0.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..8a30f3e --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 3614b45..d043efa 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -5,7 +5,8 @@