cash_available был bare Decimal | None в Query(...) — pydantic отдаёт для Decimal anyOf[number, pattern-string], который openapi-generator не умеет свернуть в один тип и вместо этого синтезирует пустой класс CashAvailable без полей (синтаксически битый .dart, компиляция всего пакета падает). Остальные Decimal-поля в API давно оборачиваются в Money/MoneyOpt (api/schemas/common.py) ровно за счёт этого — anyOf[string, null] генератор понимает. cash_available обошёл соглашение, потому что это единственный Decimal-параметр запроса во всём API, а не тело ответа.
4.6 KiB
4.6 KiB
fintracker_api.api.RebalanceApi
Load the API package
import 'package:fintracker_api/api.dart';
All URIs are relative to http://localhost
| Method | HTTP request | Description |
|---|---|---|
| rebalanceRebalance | GET /api/v1/portfolios/{portfolio_id}/rebalance | Rebalance |
| rebalanceSetTargets | PUT /api/v1/portfolios/{portfolio_id}/targets | Set Targets |
| rebalanceTargets | GET /api/v1/portfolios/{portfolio_id}/targets | Targets |
rebalanceRebalance
RebalanceOut rebalanceRebalance(portfolioId, dimension, cashAvailable)
Rebalance
Example
import 'package:fintracker_api/api.dart';
final api = FintrackerApi().getRebalanceApi();
final int portfolioId = 56; // int |
final String dimension = dimension_example; // String | asset_class | sector | country | currency
final String cashAvailable = cashAvailable_example; // String | переопределяет остаток на счетах для what-if
try {
final response = api.rebalanceRebalance(portfolioId, dimension, cashAvailable);
print(response);
} on DioException catch (e) {
print('Exception when calling RebalanceApi->rebalanceRebalance: $e\n');
}
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| portfolioId | int | ||
| dimension | String | asset_class | sector |
| cashAvailable | String | переопределяет остаток на счетах для what-if | [optional] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json, application/problem+json
[Back to top] [Back to API list] [Back to Model list] [Back to README]
rebalanceSetTargets
TargetsOut rebalanceSetTargets(portfolioId, targetsIn)
Set Targets
Replace the whole set for one dimension. The weights must add up to 1 within WEIGHT_TOLERANCE; otherwise the request is refused with the actual sum in the message, so the user can see by how much the plan misses rather than being handed a silently rescaled one.
Example
import 'package:fintracker_api/api.dart';
final api = FintrackerApi().getRebalanceApi();
final int portfolioId = 56; // int |
final TargetsIn targetsIn = ; // TargetsIn |
try {
final response = api.rebalanceSetTargets(portfolioId, targetsIn);
print(response);
} on DioException catch (e) {
print('Exception when calling RebalanceApi->rebalanceSetTargets: $e\n');
}
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| portfolioId | int | ||
| targetsIn | TargetsIn |
Return type
Authorization
HTTP request headers
- Content-Type: application/json
- Accept: application/json, application/problem+json
[Back to top] [Back to API list] [Back to Model list] [Back to README]
rebalanceTargets
TargetsOut rebalanceTargets(portfolioId, dimension)
Targets
Example
import 'package:fintracker_api/api.dart';
final api = FintrackerApi().getRebalanceApi();
final int portfolioId = 56; // int |
final String dimension = dimension_example; // String | asset_class | sector | country | currency
try {
final response = api.rebalanceTargets(portfolioId, dimension);
print(response);
} on DioException catch (e) {
print('Exception when calling RebalanceApi->rebalanceTargets: $e\n');
}
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| portfolioId | int | ||
| dimension | String | asset_class | sector |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json, application/problem+json
[Back to top] [Back to API list] [Back to Model list] [Back to README]