Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions src/main/kotlin/Main.kt
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
package org.qudus.squad


import org.qudus.squad.testCases.testDeleteCategoryFunction
import org.qudus.squad.testCases.testMonthlyTransactionsCases


fun main() {
/*TODO*/

Expand Down
18 changes: 9 additions & 9 deletions src/main/kotlin/dataSource/FinanceTrackerDataSourceImpl.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,37 +7,37 @@ import org.qudus.squad.logic.models.TransactionType

class FinanceTrackerDataSourceImpl : FinanceTrackerDataSource {

private val categories: MutableList<Category> = emptyList<Category>().toMutableList()
private val _categories: MutableList<Category> =
mutableListOf<Category>(Category(name = "Rent") , Category(name = "Salary") , Category(name = "Food"))
private val transactions: MutableList<Transaction> = emptyList<Transaction>().toMutableList()
val categories get() = this._categories

val _categories
get() = categories
override fun addCategory(category: Category): Boolean {
if (category.name.isNotEmpty()) {
categories.add(category)
this._categories.add(category)
return true
}
return false
}

override fun removeCategory(categoryId: Int): Boolean {
return categories.removeIf {
return this._categories.removeIf {
it.id == categoryId
}
}

override fun getCategories(): List<Category> {
return categories
return this._categories
}

override fun getCategoryById(categoryId: Int): Category? {
return categories.find { it.id == categoryId }
return this._categories.find { it.id == categoryId }
}

override fun updateCategory(category: Category): Boolean {
val index = categories.indexOfFirst { it.id == category.id }
val index = this._categories.indexOfFirst { it.id == category.id }
return if (index != -1) {
categories[index] = category
this._categories[index] = category
true
} else {
false
Expand Down
8 changes: 2 additions & 6 deletions src/main/kotlin/logic/models/Category.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,10 @@ package org.qudus.squad.logic.models

data class Category(
val id: Int = CategoryIdGenerator.nextId(),
var name: String

val name: String
)


object CategoryIdGenerator {
private var counter = 0
fun nextId(): Int = ++counter
}


}
16 changes: 7 additions & 9 deletions src/main/kotlin/logic/models/Transaction.kt
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package org.qudus.squad.logic.models

data class Transaction(
val id: Int? = TransactionIdGenerator.nextId(),
var type: TransactionType,
var amount: Double,
var timeStamp: Long,
var category: Category
val id: Int = TransactionIdGenerator.nextId(), //not nullable
val type: TransactionType,
val amount: Double,
val timeStamp: Long,
val category: Category
)

object TransactionIdGenerator {
Expand All @@ -14,7 +14,5 @@ object TransactionIdGenerator {
}

enum class TransactionType {
Deposit , Withdraw
}


Deposit, Withdraw
}
7 changes: 1 addition & 6 deletions src/main/kotlin/logic/transactions/AddNewTransaction.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,12 @@ import org.qudus.squad.logic.models.Transaction
class AddNewTransaction(
private val dataSource: FinanceTrackerDataSource
) {




fun CompleteTransaction(transaction: Transaction) {
fun addNewTransaction(transaction: Transaction) {
if (isAmountValid(transaction)) {
dataSource.addTransaction(transaction)
}
}

fun isAmountValid(transaction: Transaction): Boolean = transaction.amount < 0

}

4 changes: 1 addition & 3 deletions src/main/kotlin/testCases/TestCasesA.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
/*
package org.qudus.squad.testCases

package org.qudus.squad.testCases/*
fun main() {

*/
Expand Down
Loading