Use Sets instead of Lists for collections and correct capitalization in naming
This commit is contained in:
parent
4755b30a11
commit
6191ed9fe4
3 changed files with 14 additions and 14 deletions
|
@ -19,9 +19,9 @@ data class Budget(
|
||||||
@ManyToOne val owner: User
|
@ManyToOne val owner: User
|
||||||
)
|
)
|
||||||
|
|
||||||
data class NewBudgetRequest(val name: String, val description: String?, val userIds: List<Long>)
|
data class NewBudgetRequest(val name: String, val description: String?, val userIds: Set<Long>)
|
||||||
|
|
||||||
data class UpdateBudgetRequest(val name: String?, val description: String?, val userIds: List<Long>?)
|
data class UpdateBudgetRequest(val name: String?, val description: String?, val userIds: Set<Long>?)
|
||||||
|
|
||||||
data class BudgetResponse(val id: Long, val name: String, val description: String?, val users: List<UserResponse>) {
|
data class BudgetResponse(val id: Long, val name: String, val description: String?, val users: List<UserResponse>) {
|
||||||
constructor(budget: Budget) : this(budget.id!!, budget.name, budget.description, budget.users.map { UserResponse(it) })
|
constructor(budget: Budget) : this(budget.id!!, budget.name, budget.description, budget.users.map { UserResponse(it) })
|
||||||
|
|
|
@ -56,30 +56,30 @@ class BudgetController @Autowired constructor(
|
||||||
fun newBudget(@RequestBody request: NewBudgetRequest): ResponseEntity<BudgetResponse> {
|
fun newBudget(@RequestBody request: NewBudgetRequest): ResponseEntity<BudgetResponse> {
|
||||||
val users = request.userIds
|
val users = request.userIds
|
||||||
.map { id -> userRepository.findById(id).orElse(null) }
|
.map { id -> userRepository.findById(id).orElse(null) }
|
||||||
.filter { user -> user != null }
|
.filterNotNull()
|
||||||
.toMutableSet()
|
.toMutableSet()
|
||||||
.apply { this.add(getCurrentUser()) }
|
.apply { this.add(getCurrentUser()!!) }
|
||||||
val Budget = budgetRepository.save(Budget(name = request.name, description = request.description, users = users, owner = getCurrentUser()!!))
|
val budget = budgetRepository.save(Budget(name = request.name, description = request.description, users = users, owner = getCurrentUser()!!))
|
||||||
return ResponseEntity.ok(BudgetResponse(Budget))
|
return ResponseEntity.ok(BudgetResponse(budget))
|
||||||
}
|
}
|
||||||
|
|
||||||
@PutMapping("/{id}", consumes = [MediaType.APPLICATION_JSON_VALUE], produces = [MediaType.APPLICATION_JSON_VALUE])
|
@PutMapping("/{id}", consumes = [MediaType.APPLICATION_JSON_VALUE], produces = [MediaType.APPLICATION_JSON_VALUE])
|
||||||
@ApiOperation(value = "updateBudget", nickname = "updateBudget", tags = ["Budgets"])
|
@ApiOperation(value = "updateBudget", nickname = "updateBudget", tags = ["Budgets"])
|
||||||
fun updateBudget(@PathVariable id: Long, request: UpdateBudgetRequest): ResponseEntity<BudgetResponse> {
|
fun updateBudget(@PathVariable id: Long, request: UpdateBudgetRequest): ResponseEntity<BudgetResponse> {
|
||||||
var Budget = budgetRepository.findByUsersContainsAndId(getCurrentUser()!!, id).orElse(null)
|
var budget = budgetRepository.findByUsersContainsAndId(getCurrentUser()!!, id).orElse(null)
|
||||||
?: return ResponseEntity.notFound().build()
|
?: return ResponseEntity.notFound().build()
|
||||||
if (request.name != null) Budget = Budget.copy(name = request.name)
|
if (request.name != null) budget = budget.copy(name = request.name)
|
||||||
if (request.description != null) Budget = Budget.copy(description = request.description)
|
if (request.description != null) budget = budget.copy(description = request.description)
|
||||||
if (request.userIds != null) Budget = Budget.copy(users = userRepository.findAllById(request.userIds).toSet())
|
if (request.userIds != null) budget = budget.copy(users = userRepository.findAllById(request.userIds).toSet())
|
||||||
return ResponseEntity.ok(BudgetResponse(budgetRepository.save(Budget)))
|
return ResponseEntity.ok(BudgetResponse(budgetRepository.save(budget)))
|
||||||
}
|
}
|
||||||
|
|
||||||
@DeleteMapping("/{id}", produces = [MediaType.TEXT_PLAIN_VALUE])
|
@DeleteMapping("/{id}", produces = [MediaType.TEXT_PLAIN_VALUE])
|
||||||
@ApiOperation(value = "deleteBudget", nickname = "deleteBudget", tags = ["Budgets"])
|
@ApiOperation(value = "deleteBudget", nickname = "deleteBudget", tags = ["Budgets"])
|
||||||
fun deleteBudget(@PathVariable id: Long): ResponseEntity<Unit> {
|
fun deleteBudget(@PathVariable id: Long): ResponseEntity<Unit> {
|
||||||
val Budget = budgetRepository.findByUsersContainsAndId(getCurrentUser()!!, id).orElse(null)
|
val budget = budgetRepository.findByUsersContainsAndId(getCurrentUser()!!, id).orElse(null)
|
||||||
?: return ResponseEntity.notFound().build()
|
?: return ResponseEntity.notFound().build()
|
||||||
budgetRepository.delete(Budget)
|
budgetRepository.delete(budget)
|
||||||
return ResponseEntity.ok().build()
|
return ResponseEntity.ok().build()
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -12,7 +12,7 @@ data class Category(
|
||||||
val description: String? = null,
|
val description: String? = null,
|
||||||
val amount: Long = 0,
|
val amount: Long = 0,
|
||||||
@ManyToOne val budget: Budget,
|
@ManyToOne val budget: Budget,
|
||||||
@OneToMany(mappedBy = "category") val transactions: List<Transaction> = emptyList(),
|
@OneToMany(mappedBy = "category") val transactions: Set<Transaction> = emptySet(),
|
||||||
val expense: Boolean? = true
|
val expense: Boolean? = true
|
||||||
) : Comparable<Category> {
|
) : Comparable<Category> {
|
||||||
override fun compareTo(other: Category): Int = title.compareTo(other.title)
|
override fun compareTo(other: Category): Int = title.compareTo(other.title)
|
||||||
|
|
Loading…
Reference in a new issue