Add expense/income filtering to categories
Signed-off-by: William Brawner <me@wbrawner.com>
This commit is contained in:
parent
d80ade5ef6
commit
412c4b5edf
2 changed files with 8 additions and 1 deletions
|
@ -31,6 +31,7 @@ class CategoryController @Autowired constructor(
|
||||||
@GetMapping("", produces = [MediaType.APPLICATION_JSON_VALUE])
|
@GetMapping("", produces = [MediaType.APPLICATION_JSON_VALUE])
|
||||||
@ApiOperation(value = "getCategories", nickname = "getCategories", tags = ["Categories"])
|
@ApiOperation(value = "getCategories", nickname = "getCategories", tags = ["Categories"])
|
||||||
fun getCategories(budgetId: Long? = null,
|
fun getCategories(budgetId: Long? = null,
|
||||||
|
isExpense: Boolean? = null,
|
||||||
count: Int?,
|
count: Int?,
|
||||||
page: Int?,
|
page: Int?,
|
||||||
sortBy: String?,
|
sortBy: String?,
|
||||||
|
@ -46,7 +47,12 @@ class CategoryController @Autowired constructor(
|
||||||
count?: 1000,
|
count?: 1000,
|
||||||
Sort(sortOrder?: Sort.Direction.ASC, sortBy?: "title")
|
Sort(sortOrder?: Sort.Direction.ASC, sortBy?: "title")
|
||||||
)
|
)
|
||||||
return ResponseEntity.ok(categoryRepository.findAllByBudgetIn(budgets, pageRequest).map { CategoryResponse(it) })
|
val categories = if (isExpense == null) {
|
||||||
|
categoryRepository.findAllByBudgetIn(budgets, pageRequest)
|
||||||
|
} else {
|
||||||
|
categoryRepository.findAllByBudgetInAndExpense(budgets, isExpense, pageRequest)
|
||||||
|
}
|
||||||
|
return ResponseEntity.ok(categories.map { CategoryResponse(it) })
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/{id}", produces = [MediaType.APPLICATION_JSON_VALUE])
|
@GetMapping("/{id}", produces = [MediaType.APPLICATION_JSON_VALUE])
|
||||||
|
|
|
@ -8,6 +8,7 @@ import java.util.*
|
||||||
interface CategoryRepository: PagingAndSortingRepository<Category, Long> {
|
interface CategoryRepository: PagingAndSortingRepository<Category, Long> {
|
||||||
fun findAllByBudget(budget: Budget, pageable: Pageable): List<Category>
|
fun findAllByBudget(budget: Budget, pageable: Pageable): List<Category>
|
||||||
fun findAllByBudgetIn(budgets: List<Budget>, pageable: Pageable? = null): List<Category>
|
fun findAllByBudgetIn(budgets: List<Budget>, pageable: Pageable? = null): List<Category>
|
||||||
|
fun findAllByBudgetInAndExpense(budgets: List<Budget>, isExpense: Boolean, pageable: Pageable? = null): List<Category>
|
||||||
fun findByBudgetAndId(budget: Budget, id: Long): Optional<Category>
|
fun findByBudgetAndId(budget: Budget, id: Long): Optional<Category>
|
||||||
fun findAllByBudgetInAndIdIn(budgets: List<Budget>, ids: List<Long>, pageable: Pageable? = null): List<Category>
|
fun findAllByBudgetInAndIdIn(budgets: List<Budget>, ids: List<Long>, pageable: Pageable? = null): List<Category>
|
||||||
}
|
}
|
Loading…
Reference in a new issue