diff --git a/src/main/kotlin/space/luminic/budgerapp/controllers/TransferController.kt b/src/main/kotlin/space/luminic/budgerapp/controllers/TransferController.kt index bd894b3..cc598c6 100644 --- a/src/main/kotlin/space/luminic/budgerapp/controllers/TransferController.kt +++ b/src/main/kotlin/space/luminic/budgerapp/controllers/TransferController.kt @@ -6,6 +6,7 @@ import org.springframework.web.bind.annotation.RestController import reactor.core.publisher.Mono import space.luminic.budgerapp.models.Budget import space.luminic.budgerapp.models.Category +import space.luminic.budgerapp.models.Recurrent import space.luminic.budgerapp.models.Transaction import space.luminic.budgerapp.services.TransferService @@ -23,6 +24,11 @@ class TransferController(private val transferService: TransferService) { return transferService.getCategories() } + @GetMapping("/recurrents") + fun recurrentTransactions(): Mono> { + return transferService.recurrents() + } + @GetMapping("/budgets") fun budgets(): Mono> { return transferService.transferBudgets() diff --git a/src/main/kotlin/space/luminic/budgerapp/repos/RecurrentRepoOld.kt b/src/main/kotlin/space/luminic/budgerapp/repos/RecurrentRepoOld.kt new file mode 100644 index 0000000..75558da --- /dev/null +++ b/src/main/kotlin/space/luminic/budgerapp/repos/RecurrentRepoOld.kt @@ -0,0 +1,6 @@ +package space.luminic.budgerapp.repos + +import org.springframework.data.mongodb.repository.MongoRepository +import space.luminic.budgerapp.models.Recurrent + +interface RecurrentRepoOld : MongoRepository \ No newline at end of file diff --git a/src/main/kotlin/space/luminic/budgerapp/repos/sqlrepo/RecurrentRepoSQL.kt b/src/main/kotlin/space/luminic/budgerapp/repos/sqlrepo/RecurrentRepoSQL.kt index f5d3735..a7752c3 100644 --- a/src/main/kotlin/space/luminic/budgerapp/repos/sqlrepo/RecurrentRepoSQL.kt +++ b/src/main/kotlin/space/luminic/budgerapp/repos/sqlrepo/RecurrentRepoSQL.kt @@ -7,13 +7,14 @@ import org.springframework.stereotype.Repository import space.luminic.budgerapp.models.Recurrent import space.luminic.budgerapp.models.Transaction import space.luminic.budgerapp.models.TransactionType -import space.luminic.budgerapp.services.CategoryService +import space.luminic.budgerapp.repos.CategoryRepoOld + @Repository class RecurrentRepoSQL( private val jdbcTemplate: JdbcTemplate, - private val categoryService: CategoryService + private val categoryRepoOld: CategoryRepoOld ) { private val logger = LoggerFactory.getLogger(RecurrentRepoSQL::class.java) @@ -26,7 +27,7 @@ class RecurrentRepoSQL( val recurrent = Recurrent( atDay = rs.getInt("at_day"), - category = categoryService.getCategoryByName(rs.getString("c_name")).block()!!, + category = categoryRepoOld.findByName(rs.getString("c_name"))!!, name = rs.getString("name"), description = rs.getString("description"), amount = rs.getInt("amount") diff --git a/src/main/kotlin/space/luminic/budgerapp/services/TransferService.kt b/src/main/kotlin/space/luminic/budgerapp/services/TransferService.kt index dbe6558..52a2c00 100644 --- a/src/main/kotlin/space/luminic/budgerapp/services/TransferService.kt +++ b/src/main/kotlin/space/luminic/budgerapp/services/TransferService.kt @@ -5,21 +5,26 @@ import reactor.core.publisher.Flux import reactor.core.publisher.Mono import space.luminic.budgerapp.models.Budget import space.luminic.budgerapp.models.Category +import space.luminic.budgerapp.models.Recurrent import space.luminic.budgerapp.models.Transaction import space.luminic.budgerapp.repos.BudgetRepo import space.luminic.budgerapp.repos.CategoryRepo +import space.luminic.budgerapp.repos.RecurrentRepo import space.luminic.budgerapp.repos.TransactionRepo import space.luminic.budgerapp.repos.sqlrepo.BudgetRepoSQL import space.luminic.budgerapp.repos.sqlrepo.CategoriesRepoSQL +import space.luminic.budgerapp.repos.sqlrepo.RecurrentRepoSQL import space.luminic.budgerapp.repos.sqlrepo.TransactionsRepoSQl @Service class TransferService( private val transactionsRepoSQl: TransactionsRepoSQl, private val categoriesRepoSQL: CategoriesRepoSQL, + private val recurrentRepoSQL: RecurrentRepoSQL, private val budgetRepoSQL: BudgetRepoSQL, private val categoryRepo: CategoryRepo, private val transactionRepo: TransactionRepo, + private val recurrentRepo: RecurrentRepo, private val budgetService: BudgetService ) { @@ -37,6 +42,13 @@ class TransferService( .collectList() // Преобразуем Flux в Mono> } + fun recurrents(): Mono> { + val recurrents = recurrentRepoSQL.getRecurrents() + return Flux.fromIterable(recurrents).flatMap { recurrent -> + recurrentRepo.save(recurrent) + }.collectList() + } + fun transferBudgets(): Mono> { val budgets = budgetRepoSQL.getBudgets() diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties index 8a78cc8..75bdc84 100644 --- a/src/main/resources/application-dev.properties +++ b/src/main/resources/application-dev.properties @@ -1,8 +1,11 @@ spring.application.name=budger-app -spring.data.mongodb.host=127.0.0.1 +spring.data.mongodb.host=213.226.71.138 spring.data.mongodb.port=27017 spring.data.mongodb.database=budger-app +spring.data.mongodb.username=budger-app +spring.data.mongodb.password=BA1q2w3e4r! +spring.data.mongodb.authentication-database=admin management.endpoints.web.exposure.include=* diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties index 853bb20..e797ccc 100644 --- a/src/main/resources/application-prod.properties +++ b/src/main/resources/application-prod.properties @@ -1,7 +1,7 @@ spring.application.name=budger-app -spring.data.mongodb.host=213.226.71.138 +spring.data.mongodb.host=127.0.0.1 spring.data.mongodb.port=27017 spring.data.mongodb.database=budger-app spring.data.mongodb.username=budger-app @@ -19,7 +19,7 @@ logging.level.org.springframework.data = INFO logging.level.org.springframework.data.mongodb.core.ReactiveMongoTemplate=INFO logging.level.org.springframework.security = INFO logging.level.org.springframework.data.mongodb.code = INFO -logging.level.org.springframework.web.reactive=INFO +logging.level.org.springframework.web.reactive=INFO§ diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index ae76798..4debb45 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -4,7 +4,7 @@ server.port=8082 #server.servlet.context-path=/api spring.webflux.base-path=/api -spring.profiles.active=prod +spring.profiles.active=dev spring.main.web-application-type=reactive