Routes
interfaces.expense.routes
Summary
Expense REST handlers — thin API entry points for the expense resource, wired to openapi.yaml operationIds by the OpenAPI-first router. All handlers delegate to ExpenseCrudsService via request.app.state.db_resources.
Classes
Functions
create_expense
async
Create a new expense.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request |
Request
|
Incoming HTTP request; carries app.state.db_resources. |
required |
body |
dict
|
Expense payload forwarded to the service. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
ExpenseDocument |
The created expense. |
delete_expense
async
Delete an expense by id.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request |
Request
|
Incoming HTTP request; carries app.state.db_resources. |
required |
id |
str
|
Expense id. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
Response |
Empty 204 response on successful delete. |
Raises:
| Type | Description |
|---|---|
HTTPException
|
404 when no expense matches the id. |
get_expense
async
Get an expense by id.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request |
Request
|
Incoming HTTP request; carries app.state.db_resources. |
required |
id |
str
|
Expense id. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
ExpenseDocument |
The matching expense. |
Raises:
| Type | Description |
|---|---|
HTTPException
|
404 when no expense matches the id. |
list_expenses
async
List expenses with pagination, excluding self-transfers.
Expenses tagged with a self-transfer tag are filtered out. The start_date and end_date parameters are accepted by the signature but not applied to the underlying search filter.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request |
Request
|
Incoming HTTP request; carries app.state.db_resources. |
required |
offset |
int
|
Number of expenses to skip (offset). Defaults to 0. |
0
|
limit |
int
|
Maximum number of expenses to return. Defaults to 10. |
10
|
start_date |
str
|
Accepted date-range start; not applied to the search. |
''
|
end_date |
str
|
Accepted date-range end; not applied to the search. |
''
|
Returns:
| Type | Description |
|---|---|
|
list[ExpenseDocument]: Matching expenses from ExpenseCrudsService.search. |
update_expense
async
Update an expense by id.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request |
Request
|
Incoming HTTP request; carries app.state.db_resources. |
required |
id |
str
|
Expense id. |
required |
body |
dict
|
Fields to update, forwarded to the service. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
ExpenseDocument |
The updated expense. |
Raises:
| Type | Description |
|---|---|
HTTPException
|
404 when no expense matches the id. |