//app/dev.atick.compose.repository.expenses/ExpensesRepositoryImpl
ExpensesRepositoryImpl
class ExpensesRepositoryImpl@Injectconstructor(geminiDataSource: GeminiDataSource, geminiRateLimiter: GeminiRateLimiter, smsDataSource: SMSDataSource, expenseDataSource: ExpenseDataSource, budgetDataSource: BudgetDataSource, taskManager: TaskManager) : ExpensesRepository
Implementation of ExpensesRepository that fetches data from the ExpenseDataSource, BudgetDataSource, SMSDataSource, and GeminiDataSource.
Parameters
androidJvm
geminiDataSource | The data source for Gemini data. |
geminiRateLimiter | The rate limiter for Gemini API requests. |
smsDataSource | The data source for SMS data. |
expenseDataSource | The data source for expense data. |
budgetDataSource | The data source for budget data. |
taskManager | The task manager for syncing and notifications. |
Constructors
ExpensesRepositoryImpl | [androidJvm] @Inject constructor(geminiDataSource: GeminiDataSource, geminiRateLimiter: GeminiRateLimiter, smsDataSource: SMSDataSource, expenseDataSource: ExpenseDataSource, budgetDataSource: BudgetDataSource, taskManager: TaskManager) |
Properties
Name | Summary |
---|---|
isSyncing | [androidJvm] open override val isSyncing: Flow<Boolean> Flow of Boolean that indicates whether the repository is syncing. |
Functions
Name | Summary |
---|---|
deleteExpense | [androidJvm] open suspend override fun deleteExpense(expense: UiExpense): Result<Unit> Deletes the expense. |
getAllExpenses | [androidJvm] open override fun getAllExpenses(startDate: Long, endDate: Long): Flow<List<UiExpense>> Gets all the expenses. |
getExpenseById | [androidJvm] open override fun getExpenseById(id: Long): Flow<UiExpense> Gets the expense by ID. |
requestSync | [androidJvm] @RequiresPermission(value = "android.permission.READ_SMS") open override fun requestSync(): Result<Unit> Requests a sync of the expenses. |
setRecurringType | [androidJvm] open suspend override fun setRecurringType(merchant: String, recurringType: UiRecurringType): Result<Unit> Sets the recurring type for the merchant. |
syncExpensesFromSms | [androidJvm] @RequiresPermission(value = "android.permission.READ_SMS") open override fun syncExpensesFromSms(): Flow<SyncProgress> Syncs the expenses from the SMS. |
updateExpense | [androidJvm] open suspend override fun updateExpense(expense: UiExpense): Result<Unit> Updates the expense. |