chore(app): сгенерированный Dart-клиент из OpenAPI
openapi-generator-cli -g dart-dio. Генерируется, но коммитится: CI ловит дрейф openapi/openapi.json, а приложение собирается без запуска генератора. Пересобирается через just gen-client после любого изменения роутов.
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
# keep our config and ignore-file; everything else is regenerated
|
||||
openapi-config.yaml
|
||||
.openapi-generator-ignore
|
||||
README.md
|
||||
.gitignore
|
||||
@@ -0,0 +1,129 @@
|
||||
analysis_options.yaml
|
||||
build.yaml
|
||||
doc/AccountBalance.md
|
||||
doc/AccountKind.md
|
||||
doc/AccountOut.md
|
||||
doc/AccountPatch.md
|
||||
doc/AccountRole.md
|
||||
doc/AccountsApi.md
|
||||
doc/AuthApi.md
|
||||
doc/Broker.md
|
||||
doc/CashFlowMonth.md
|
||||
doc/CashflowApi.md
|
||||
doc/CategoriesApi.md
|
||||
doc/CategoryOut.md
|
||||
doc/DataQualityRow.md
|
||||
doc/EventSource.md
|
||||
doc/FlowType.md
|
||||
doc/Health.md
|
||||
doc/HealthApi.md
|
||||
doc/JobStatus.md
|
||||
doc/LoginRequest.md
|
||||
doc/MetricsApi.md
|
||||
doc/NetWorthBreakdown.md
|
||||
doc/NetWorthDay.md
|
||||
doc/NetworthApi.md
|
||||
doc/Problem.md
|
||||
doc/RefreshLogOut.md
|
||||
doc/RefreshRequest.md
|
||||
doc/RuleCreate.md
|
||||
doc/RuleKind.md
|
||||
doc/RuleMatchType.md
|
||||
doc/RuleOut.md
|
||||
doc/RulePatch.md
|
||||
doc/RulesApi.md
|
||||
doc/RunStatus.md
|
||||
doc/RunwayOut.md
|
||||
doc/SourceStatus.md
|
||||
doc/SpendingRow.md
|
||||
doc/SyncApi.md
|
||||
doc/SyncJobOut.md
|
||||
doc/SyncRunOut.md
|
||||
doc/TokenPair.md
|
||||
doc/TransactionOut.md
|
||||
doc/TransactionPage.md
|
||||
doc/TransactionsApi.md
|
||||
doc/UserOut.md
|
||||
lib/fintracker_api.dart
|
||||
lib/src/api.dart
|
||||
lib/src/api/accounts_api.dart
|
||||
lib/src/api/auth_api.dart
|
||||
lib/src/api/cashflow_api.dart
|
||||
lib/src/api/categories_api.dart
|
||||
lib/src/api/health_api.dart
|
||||
lib/src/api/metrics_api.dart
|
||||
lib/src/api/networth_api.dart
|
||||
lib/src/api/rules_api.dart
|
||||
lib/src/api/sync_api.dart
|
||||
lib/src/api/transactions_api.dart
|
||||
lib/src/auth/api_key_auth.dart
|
||||
lib/src/auth/auth.dart
|
||||
lib/src/auth/basic_auth.dart
|
||||
lib/src/auth/bearer_auth.dart
|
||||
lib/src/auth/oauth.dart
|
||||
lib/src/deserialize.dart
|
||||
lib/src/model/account_balance.dart
|
||||
lib/src/model/account_kind.dart
|
||||
lib/src/model/account_out.dart
|
||||
lib/src/model/account_patch.dart
|
||||
lib/src/model/account_role.dart
|
||||
lib/src/model/broker.dart
|
||||
lib/src/model/cash_flow_month.dart
|
||||
lib/src/model/category_out.dart
|
||||
lib/src/model/data_quality_row.dart
|
||||
lib/src/model/event_source.dart
|
||||
lib/src/model/flow_type.dart
|
||||
lib/src/model/health.dart
|
||||
lib/src/model/job_status.dart
|
||||
lib/src/model/login_request.dart
|
||||
lib/src/model/net_worth_breakdown.dart
|
||||
lib/src/model/net_worth_day.dart
|
||||
lib/src/model/problem.dart
|
||||
lib/src/model/refresh_log_out.dart
|
||||
lib/src/model/refresh_request.dart
|
||||
lib/src/model/rule_create.dart
|
||||
lib/src/model/rule_kind.dart
|
||||
lib/src/model/rule_match_type.dart
|
||||
lib/src/model/rule_out.dart
|
||||
lib/src/model/rule_patch.dart
|
||||
lib/src/model/run_status.dart
|
||||
lib/src/model/runway_out.dart
|
||||
lib/src/model/source_status.dart
|
||||
lib/src/model/spending_row.dart
|
||||
lib/src/model/sync_job_out.dart
|
||||
lib/src/model/sync_run_out.dart
|
||||
lib/src/model/token_pair.dart
|
||||
lib/src/model/transaction_out.dart
|
||||
lib/src/model/transaction_page.dart
|
||||
lib/src/model/user_out.dart
|
||||
pubspec.yaml
|
||||
test/account_balance_test.dart
|
||||
test/account_kind_test.dart
|
||||
test/account_out_test.dart
|
||||
test/account_patch_test.dart
|
||||
test/account_role_test.dart
|
||||
test/accounts_api_test.dart
|
||||
test/broker_test.dart
|
||||
test/cash_flow_month_test.dart
|
||||
test/cashflow_api_test.dart
|
||||
test/categories_api_test.dart
|
||||
test/category_out_test.dart
|
||||
test/data_quality_row_test.dart
|
||||
test/event_source_test.dart
|
||||
test/flow_type_test.dart
|
||||
test/metrics_api_test.dart
|
||||
test/net_worth_breakdown_test.dart
|
||||
test/net_worth_day_test.dart
|
||||
test/networth_api_test.dart
|
||||
test/refresh_log_out_test.dart
|
||||
test/rule_create_test.dart
|
||||
test/rule_kind_test.dart
|
||||
test/rule_match_type_test.dart
|
||||
test/rule_out_test.dart
|
||||
test/rule_patch_test.dart
|
||||
test/rules_api_test.dart
|
||||
test/runway_out_test.dart
|
||||
test/spending_row_test.dart
|
||||
test/transaction_out_test.dart
|
||||
test/transaction_page_test.dart
|
||||
test/transactions_api_test.dart
|
||||
@@ -0,0 +1 @@
|
||||
7.25.0
|
||||
@@ -0,0 +1,10 @@
|
||||
analyzer:
|
||||
language:
|
||||
strict-inference: true
|
||||
strict-raw-types: true
|
||||
strict-casts: false
|
||||
exclude:
|
||||
- test/*.dart
|
||||
- lib/src/model/*.g.dart
|
||||
errors:
|
||||
deprecated_member_use_from_same_package: ignore
|
||||
@@ -0,0 +1,18 @@
|
||||
targets:
|
||||
$default:
|
||||
builders:
|
||||
json_serializable:
|
||||
options:
|
||||
# Options configure how source code is generated for every
|
||||
# `@JsonSerializable`-annotated class in the package.
|
||||
#
|
||||
# The default value for each is listed.
|
||||
any_map: false
|
||||
checked: true
|
||||
create_factory: true
|
||||
create_to_json: true
|
||||
disallow_unrecognized_keys: true
|
||||
explicit_to_json: true
|
||||
field_rename: none
|
||||
ignore_unannotated: false
|
||||
include_if_null: false
|
||||
@@ -0,0 +1,20 @@
|
||||
# fintracker_api.model.AccountBalance
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**accountId** | **int** | |
|
||||
**balance** | **String** | decimal as string |
|
||||
**balanceRub** | **String** | decimal as string |
|
||||
**currency** | **String** | |
|
||||
**name** | **String** | |
|
||||
**role** | [**AccountRole**](AccountRole.md) | |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# fintracker_api.model.AccountKind
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
# fintracker_api.model.AccountOut
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**archived** | **bool** | |
|
||||
**balance** | **String** | decimal as string |
|
||||
**balanceAsOf** | [**DateTime**](DateTime.md) | |
|
||||
**broker** | [**Broker**](Broker.md) | |
|
||||
**creditLimit** | **String** | decimal as string |
|
||||
**currency** | **String** | |
|
||||
**id** | **int** | |
|
||||
**includeInNetWorth** | **bool** | |
|
||||
**kind** | [**AccountKind**](AccountKind.md) | |
|
||||
**mirrorOfAccountId** | **int** | |
|
||||
**name** | **String** | |
|
||||
**openedAt** | [**DateTime**](DateTime.md) | |
|
||||
**primaryEventSource** | [**EventSource**](EventSource.md) | |
|
||||
**role** | [**AccountRole**](AccountRole.md) | |
|
||||
**source_** | **String** | |
|
||||
**sourceId** | **String** | |
|
||||
**startBalance** | **String** | decimal as string |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
# fintracker_api.model.AccountPatch
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**includeInNetWorth** | **bool** | | [optional]
|
||||
**mirrorOfAccountId** | **int** | | [optional]
|
||||
**name** | **String** | | [optional]
|
||||
**primaryEventSource** | [**EventSource**](EventSource.md) | | [optional]
|
||||
**role** | [**AccountRole**](AccountRole.md) | | [optional]
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# fintracker_api.model.AccountRole
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
# fintracker_api.api.AccountsApi
|
||||
|
||||
## Load the API package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
All URIs are relative to *http://localhost*
|
||||
|
||||
Method | HTTP request | Description
|
||||
------------- | ------------- | -------------
|
||||
[**accountsList**](AccountsApi.md#accountslist) | **GET** /api/v1/accounts | List
|
||||
[**accountsPatch**](AccountsApi.md#accountspatch) | **PATCH** /api/v1/accounts/{account_id} | Patch
|
||||
|
||||
|
||||
# **accountsList**
|
||||
> List<AccountOut> accountsList()
|
||||
|
||||
List
|
||||
|
||||
Every account, archived ones included — the client decides what to show.
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getAccountsApi();
|
||||
|
||||
try {
|
||||
final response = api.accountsList();
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling AccountsApi->accountsList: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
This endpoint does not need any parameter.
|
||||
|
||||
### Return type
|
||||
|
||||
[**List<AccountOut>**](AccountOut.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **accountsPatch**
|
||||
> AccountOut accountsPatch(accountId, accountPatch)
|
||||
|
||||
Patch
|
||||
|
||||
Update the user-owned fields. Everything else is overwritten by the next sync.
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getAccountsApi();
|
||||
final int accountId = 56; // int |
|
||||
final AccountPatch accountPatch = ; // AccountPatch |
|
||||
|
||||
try {
|
||||
final response = api.accountsPatch(accountId, accountPatch);
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling AccountsApi->accountsPatch: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------- | ------------- | ------------- | -------------
|
||||
**accountId** | **int**| |
|
||||
**accountPatch** | [**AccountPatch**](AccountPatch.md)| |
|
||||
|
||||
### Return type
|
||||
|
||||
[**AccountOut**](AccountOut.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: application/json
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
@@ -0,0 +1,176 @@
|
||||
# fintracker_api.api.AuthApi
|
||||
|
||||
## Load the API package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
All URIs are relative to *http://localhost*
|
||||
|
||||
Method | HTTP request | Description
|
||||
------------- | ------------- | -------------
|
||||
[**authLogin**](AuthApi.md#authlogin) | **POST** /api/v1/auth/login | Login
|
||||
[**authLogout**](AuthApi.md#authlogout) | **POST** /api/v1/auth/logout | Logout
|
||||
[**authMe**](AuthApi.md#authme) | **GET** /api/v1/auth/me | Me
|
||||
[**authRefresh**](AuthApi.md#authrefresh) | **POST** /api/v1/auth/refresh | Refresh
|
||||
|
||||
|
||||
# **authLogin**
|
||||
> TokenPair authLogin(loginRequest)
|
||||
|
||||
Login
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getAuthApi();
|
||||
final LoginRequest loginRequest = ; // LoginRequest |
|
||||
|
||||
try {
|
||||
final response = api.authLogin(loginRequest);
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling AuthApi->authLogin: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------- | ------------- | ------------- | -------------
|
||||
**loginRequest** | [**LoginRequest**](LoginRequest.md)| |
|
||||
|
||||
### Return type
|
||||
|
||||
[**TokenPair**](TokenPair.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
No authorization required
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: application/json
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **authLogout**
|
||||
> authLogout(refreshRequest)
|
||||
|
||||
Logout
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getAuthApi();
|
||||
final RefreshRequest refreshRequest = ; // RefreshRequest |
|
||||
|
||||
try {
|
||||
api.authLogout(refreshRequest);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling AuthApi->authLogout: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------- | ------------- | ------------- | -------------
|
||||
**refreshRequest** | [**RefreshRequest**](RefreshRequest.md)| |
|
||||
|
||||
### Return type
|
||||
|
||||
void (empty response body)
|
||||
|
||||
### Authorization
|
||||
|
||||
No authorization required
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: application/json
|
||||
- **Accept**: application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **authMe**
|
||||
> UserOut authMe()
|
||||
|
||||
Me
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getAuthApi();
|
||||
|
||||
try {
|
||||
final response = api.authMe();
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling AuthApi->authMe: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
This endpoint does not need any parameter.
|
||||
|
||||
### Return type
|
||||
|
||||
[**UserOut**](UserOut.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **authRefresh**
|
||||
> TokenPair authRefresh(refreshRequest)
|
||||
|
||||
Refresh
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getAuthApi();
|
||||
final RefreshRequest refreshRequest = ; // RefreshRequest |
|
||||
|
||||
try {
|
||||
final response = api.authRefresh(refreshRequest);
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling AuthApi->authRefresh: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------- | ------------- | ------------- | -------------
|
||||
**refreshRequest** | [**RefreshRequest**](RefreshRequest.md)| |
|
||||
|
||||
### Return type
|
||||
|
||||
[**TokenPair**](TokenPair.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
No authorization required
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: application/json
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# fintracker_api.model.Broker
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# fintracker_api.model.CashFlowMonth
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**baselineRub** | **String** | decimal as string |
|
||||
**expenseRub** | **String** | decimal as string |
|
||||
**incomeRub** | **String** | decimal as string |
|
||||
**month** | [**DateTime**](DateTime.md) | |
|
||||
**oneOffRub** | **String** | decimal as string |
|
||||
**savingsRate** | **String** | decimal as string |
|
||||
**savingsTransferRub** | **String** | decimal as string |
|
||||
**txnCount** | **int** | |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,141 @@
|
||||
# fintracker_api.api.CashflowApi
|
||||
|
||||
## Load the API package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
All URIs are relative to *http://localhost*
|
||||
|
||||
Method | HTTP request | Description
|
||||
------------- | ------------- | -------------
|
||||
[**cashflowMonthly**](CashflowApi.md#cashflowmonthly) | **GET** /api/v1/cashflow/monthly | Monthly
|
||||
[**cashflowRunway**](CashflowApi.md#cashflowrunway) | **GET** /api/v1/runway | Runway
|
||||
[**cashflowSpending**](CashflowApi.md#cashflowspending) | **GET** /api/v1/spending/categories | Spending
|
||||
|
||||
|
||||
# **cashflowMonthly**
|
||||
> List<CashFlowMonth> cashflowMonthly(months)
|
||||
|
||||
Monthly
|
||||
|
||||
The last `months` months, oldest first.
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getCashflowApi();
|
||||
final int months = 56; // int |
|
||||
|
||||
try {
|
||||
final response = api.cashflowMonthly(months);
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling CashflowApi->cashflowMonthly: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------- | ------------- | ------------- | -------------
|
||||
**months** | **int**| | [optional] [default to 12]
|
||||
|
||||
### Return type
|
||||
|
||||
[**List<CashFlowMonth>**](CashFlowMonth.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **cashflowRunway**
|
||||
> RunwayOut cashflowRunway()
|
||||
|
||||
Runway
|
||||
|
||||
How many months the liquid reserve covers; null before the first refresh.
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getCashflowApi();
|
||||
|
||||
try {
|
||||
final response = api.cashflowRunway();
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling CashflowApi->cashflowRunway: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
This endpoint does not need any parameter.
|
||||
|
||||
### Return type
|
||||
|
||||
[**RunwayOut**](RunwayOut.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **cashflowSpending**
|
||||
> List<SpendingRow> cashflowSpending(month)
|
||||
|
||||
Spending
|
||||
|
||||
Expenses of one month by category, largest first.
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getCashflowApi();
|
||||
final String month = month_example; // String | YYYY-MM; defaults to the latest month
|
||||
|
||||
try {
|
||||
final response = api.cashflowSpending(month);
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling CashflowApi->cashflowSpending: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------- | ------------- | ------------- | -------------
|
||||
**month** | **String**| YYYY-MM; defaults to the latest month | [optional]
|
||||
|
||||
### Return type
|
||||
|
||||
[**List<SpendingRow>**](SpendingRow.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
# fintracker_api.api.CategoriesApi
|
||||
|
||||
## Load the API package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
All URIs are relative to *http://localhost*
|
||||
|
||||
Method | HTTP request | Description
|
||||
------------- | ------------- | -------------
|
||||
[**categoriesList**](CategoriesApi.md#categorieslist) | **GET** /api/v1/categories | List
|
||||
|
||||
|
||||
# **categoriesList**
|
||||
> List<CategoryOut> categoriesList()
|
||||
|
||||
List
|
||||
|
||||
Flat list of the ZenMoney tag tree; the client nests it by `parent_id`.
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getCategoriesApi();
|
||||
|
||||
try {
|
||||
final response = api.categoriesList();
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling CategoriesApi->categoriesList: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
This endpoint does not need any parameter.
|
||||
|
||||
### Return type
|
||||
|
||||
[**List<CategoryOut>**](CategoryOut.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# fintracker_api.model.CategoryOut
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**archived** | **bool** | |
|
||||
**color** | **int** | |
|
||||
**icon** | **String** | |
|
||||
**id** | **int** | |
|
||||
**name** | **String** | |
|
||||
**parentId** | **int** | |
|
||||
**showIncome** | **bool** | |
|
||||
**showOutcome** | **bool** | |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
# fintracker_api.model.DataQualityRow
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**checkName** | **String** | |
|
||||
**computedAt** | [**DateTime**](DateTime.md) | |
|
||||
**count** | **int** | |
|
||||
**detail** | **String** | |
|
||||
**id** | **int** | |
|
||||
**ref** | **Map<String, Object>** | |
|
||||
**severity** | **String** | |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# fintracker_api.model.EventSource
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# fintracker_api.model.FlowType
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# fintracker_api.model.Health
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**database** | **String** | |
|
||||
**status** | **String** | |
|
||||
**version** | **String** | |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
# fintracker_api.api.HealthApi
|
||||
|
||||
## Load the API package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
All URIs are relative to *http://localhost*
|
||||
|
||||
Method | HTTP request | Description
|
||||
------------- | ------------- | -------------
|
||||
[**healthCheck**](HealthApi.md#healthcheck) | **GET** /api/v1/health | Check
|
||||
|
||||
|
||||
# **healthCheck**
|
||||
> Health healthCheck()
|
||||
|
||||
Check
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getHealthApi();
|
||||
|
||||
try {
|
||||
final response = api.healthCheck();
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling HealthApi->healthCheck: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
This endpoint does not need any parameter.
|
||||
|
||||
### Return type
|
||||
|
||||
[**Health**](Health.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
No authorization required
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# fintracker_api.model.JobStatus
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
# fintracker_api.model.LoginRequest
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**email** | **String** | |
|
||||
**password** | **String** | |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,133 @@
|
||||
# fintracker_api.api.MetricsApi
|
||||
|
||||
## Load the API package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
All URIs are relative to *http://localhost*
|
||||
|
||||
Method | HTTP request | Description
|
||||
------------- | ------------- | -------------
|
||||
[**metricsDataQuality**](MetricsApi.md#metricsdataquality) | **GET** /api/v1/data-quality | Data Quality
|
||||
[**metricsRefresh**](MetricsApi.md#metricsrefresh) | **POST** /api/v1/metrics/refresh | Refresh
|
||||
[**metricsStatus**](MetricsApi.md#metricsstatus) | **GET** /api/v1/metrics/status | Status
|
||||
|
||||
|
||||
# **metricsDataQuality**
|
||||
> List<DataQualityRow> metricsDataQuality()
|
||||
|
||||
Data Quality
|
||||
|
||||
Findings of the latest refresh, most serious first.
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getMetricsApi();
|
||||
|
||||
try {
|
||||
final response = api.metricsDataQuality();
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling MetricsApi->metricsDataQuality: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
This endpoint does not need any parameter.
|
||||
|
||||
### Return type
|
||||
|
||||
[**List<DataQualityRow>**](DataQualityRow.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **metricsRefresh**
|
||||
> RefreshLogOut metricsRefresh()
|
||||
|
||||
Refresh
|
||||
|
||||
Rebuild every metric_* table inline (seconds at personal volumes).
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getMetricsApi();
|
||||
|
||||
try {
|
||||
final response = api.metricsRefresh();
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling MetricsApi->metricsRefresh: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
This endpoint does not need any parameter.
|
||||
|
||||
### Return type
|
||||
|
||||
[**RefreshLogOut**](RefreshLogOut.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **metricsStatus**
|
||||
> RefreshLogOut metricsStatus()
|
||||
|
||||
Status
|
||||
|
||||
When the metric tables were last rebuilt, and whether it failed.
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getMetricsApi();
|
||||
|
||||
try {
|
||||
final response = api.metricsStatus();
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling MetricsApi->metricsStatus: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
This endpoint does not need any parameter.
|
||||
|
||||
### Return type
|
||||
|
||||
[**RefreshLogOut**](RefreshLogOut.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# fintracker_api.model.NetWorthBreakdown
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**accounts** | [**List<AccountBalance>**](AccountBalance.md) | |
|
||||
**byCurrency** | **Map<String, String>** | |
|
||||
**d** | [**DateTime**](DateTime.md) | |
|
||||
**debtRub** | **String** | decimal as string |
|
||||
**investmentRub** | **String** | decimal as string |
|
||||
**liquidRub** | **String** | decimal as string |
|
||||
**missingFxCount** | **int** | |
|
||||
**savingsRub** | **String** | decimal as string |
|
||||
**totalRub** | **String** | decimal as string |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# fintracker_api.model.NetWorthDay
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**byCurrency** | **Map<String, String>** | |
|
||||
**d** | [**DateTime**](DateTime.md) | |
|
||||
**debtRub** | **String** | decimal as string |
|
||||
**investmentRub** | **String** | decimal as string |
|
||||
**liquidRub** | **String** | decimal as string |
|
||||
**missingFxCount** | **int** | |
|
||||
**savingsRub** | **String** | decimal as string |
|
||||
**totalRub** | **String** | decimal as string |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
# fintracker_api.api.NetworthApi
|
||||
|
||||
## Load the API package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
All URIs are relative to *http://localhost*
|
||||
|
||||
Method | HTTP request | Description
|
||||
------------- | ------------- | -------------
|
||||
[**networthBreakdown**](NetworthApi.md#networthbreakdown) | **GET** /api/v1/networth/breakdown | Breakdown
|
||||
[**networthSeries**](NetworthApi.md#networthseries) | **GET** /api/v1/networth/series | Series
|
||||
|
||||
|
||||
# **networthBreakdown**
|
||||
> NetWorthBreakdown networthBreakdown()
|
||||
|
||||
Breakdown
|
||||
|
||||
The latest day's buckets, plus every account's current balance native and in RUB.
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getNetworthApi();
|
||||
|
||||
try {
|
||||
final response = api.networthBreakdown();
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling NetworthApi->networthBreakdown: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
This endpoint does not need any parameter.
|
||||
|
||||
### Return type
|
||||
|
||||
[**NetWorthBreakdown**](NetWorthBreakdown.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **networthSeries**
|
||||
> List<NetWorthDay> networthSeries(from, to)
|
||||
|
||||
Series
|
||||
|
||||
Daily net worth; defaults to the last 365 days.
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getNetworthApi();
|
||||
final DateTime from = 2013-10-20; // DateTime |
|
||||
final DateTime to = 2013-10-20; // DateTime |
|
||||
|
||||
try {
|
||||
final response = api.networthSeries(from, to);
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling NetworthApi->networthSeries: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------- | ------------- | ------------- | -------------
|
||||
**from** | **DateTime**| | [optional]
|
||||
**to** | **DateTime**| | [optional]
|
||||
|
||||
### Return type
|
||||
|
||||
[**List<NetWorthDay>**](NetWorthDay.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# fintracker_api.model.Problem
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**detail** | **String** | | [optional]
|
||||
**errors** | **List<Object>** | | [optional]
|
||||
**status** | **int** | |
|
||||
**title** | **String** | |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
# fintracker_api.model.RefreshLogOut
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**error** | **String** | |
|
||||
**finishedAt** | [**DateTime**](DateTime.md) | |
|
||||
**id** | **int** | |
|
||||
**startedAt** | [**DateTime**](DateTime.md) | |
|
||||
**trigger** | **String** | |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# fintracker_api.model.RefreshRequest
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**refreshToken** | **String** | |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
# fintracker_api.model.RuleCreate
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**enabled** | **bool** | | [optional] [default to true]
|
||||
**kind** | [**RuleKind**](RuleKind.md) | |
|
||||
**matchType** | [**RuleMatchType**](RuleMatchType.md) | |
|
||||
**note** | **String** | | [optional]
|
||||
**pattern** | **String** | |
|
||||
**priority** | **int** | | [optional] [default to 100]
|
||||
**value** | **String** | | [optional]
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# fintracker_api.model.RuleKind
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# fintracker_api.model.RuleMatchType
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# fintracker_api.model.RuleOut
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**enabled** | **bool** | |
|
||||
**id** | **int** | |
|
||||
**kind** | [**RuleKind**](RuleKind.md) | |
|
||||
**lastMatchedAt** | [**DateTime**](DateTime.md) | |
|
||||
**matchCount** | **int** | |
|
||||
**matchType** | [**RuleMatchType**](RuleMatchType.md) | |
|
||||
**note** | **String** | |
|
||||
**pattern** | **String** | |
|
||||
**priority** | **int** | |
|
||||
**value** | **String** | |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
# fintracker_api.model.RulePatch
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**enabled** | **bool** | | [optional]
|
||||
**kind** | [**RuleKind**](RuleKind.md) | | [optional]
|
||||
**matchType** | [**RuleMatchType**](RuleMatchType.md) | | [optional]
|
||||
**note** | **String** | | [optional]
|
||||
**pattern** | **String** | | [optional]
|
||||
**priority** | **int** | | [optional]
|
||||
**value** | **String** | | [optional]
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,258 @@
|
||||
# fintracker_api.api.RulesApi
|
||||
|
||||
## Load the API package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
All URIs are relative to *http://localhost*
|
||||
|
||||
Method | HTTP request | Description
|
||||
------------- | ------------- | -------------
|
||||
[**rulesApply**](RulesApi.md#rulesapply) | **POST** /api/v1/rules/apply | Apply
|
||||
[**rulesCreate**](RulesApi.md#rulescreate) | **POST** /api/v1/rules | Create
|
||||
[**rulesDelete**](RulesApi.md#rulesdelete) | **DELETE** /api/v1/rules/{rule_id} | Delete
|
||||
[**rulesList**](RulesApi.md#ruleslist) | **GET** /api/v1/rules | List
|
||||
[**rulesPatch**](RulesApi.md#rulespatch) | **PATCH** /api/v1/rules/{rule_id} | Patch
|
||||
[**rulesStale**](RulesApi.md#rulesstale) | **GET** /api/v1/rules/stale | Stale
|
||||
|
||||
|
||||
# **rulesApply**
|
||||
> RefreshLogOut rulesApply()
|
||||
|
||||
Apply
|
||||
|
||||
Re-run the whole metric refresh so edited rules take effect everywhere at once.
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getRulesApi();
|
||||
|
||||
try {
|
||||
final response = api.rulesApply();
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling RulesApi->rulesApply: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
This endpoint does not need any parameter.
|
||||
|
||||
### Return type
|
||||
|
||||
[**RefreshLogOut**](RefreshLogOut.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **rulesCreate**
|
||||
> RuleOut rulesCreate(ruleCreate)
|
||||
|
||||
Create
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getRulesApi();
|
||||
final RuleCreate ruleCreate = ; // RuleCreate |
|
||||
|
||||
try {
|
||||
final response = api.rulesCreate(ruleCreate);
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling RulesApi->rulesCreate: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------- | ------------- | ------------- | -------------
|
||||
**ruleCreate** | [**RuleCreate**](RuleCreate.md)| |
|
||||
|
||||
### Return type
|
||||
|
||||
[**RuleOut**](RuleOut.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: application/json
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **rulesDelete**
|
||||
> rulesDelete(ruleId)
|
||||
|
||||
Delete
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getRulesApi();
|
||||
final int ruleId = 56; // int |
|
||||
|
||||
try {
|
||||
api.rulesDelete(ruleId);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling RulesApi->rulesDelete: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------- | ------------- | ------------- | -------------
|
||||
**ruleId** | **int**| |
|
||||
|
||||
### Return type
|
||||
|
||||
void (empty response body)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **rulesList**
|
||||
> List<RuleOut> rulesList()
|
||||
|
||||
List
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getRulesApi();
|
||||
|
||||
try {
|
||||
final response = api.rulesList();
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling RulesApi->rulesList: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
This endpoint does not need any parameter.
|
||||
|
||||
### Return type
|
||||
|
||||
[**List<RuleOut>**](RuleOut.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **rulesPatch**
|
||||
> RuleOut rulesPatch(ruleId, rulePatch)
|
||||
|
||||
Patch
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getRulesApi();
|
||||
final int ruleId = 56; // int |
|
||||
final RulePatch rulePatch = ; // RulePatch |
|
||||
|
||||
try {
|
||||
final response = api.rulesPatch(ruleId, rulePatch);
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling RulesApi->rulesPatch: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------- | ------------- | ------------- | -------------
|
||||
**ruleId** | **int**| |
|
||||
**rulePatch** | [**RulePatch**](RulePatch.md)| |
|
||||
|
||||
### Return type
|
||||
|
||||
[**RuleOut**](RuleOut.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: application/json
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **rulesStale**
|
||||
> List<RuleOut> rulesStale()
|
||||
|
||||
Stale
|
||||
|
||||
Enabled rules that matched nothing in the latest refresh: the payee was renamed, or the transaction was re-categorised in ZenMoney.
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getRulesApi();
|
||||
|
||||
try {
|
||||
final response = api.rulesStale();
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling RulesApi->rulesStale: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
This endpoint does not need any parameter.
|
||||
|
||||
### Return type
|
||||
|
||||
[**List<RuleOut>**](RuleOut.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# fintracker_api.model.RunStatus
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# fintracker_api.model.RunwayOut
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**asOf** | [**DateTime**](DateTime.md) | |
|
||||
**avgBaseline3mRub** | **String** | decimal as string |
|
||||
**liquidReserveRub** | **String** | decimal as string |
|
||||
**runwayMonths** | **String** | decimal as string |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
# fintracker_api.model.SourceStatus
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**cursor** | **String** | |
|
||||
**lastRunAt** | [**DateTime**](DateTime.md) | |
|
||||
**lastRunStatus** | [**RunStatus**](RunStatus.md) | |
|
||||
**lastSuccessAt** | [**DateTime**](DateTime.md) | |
|
||||
**queued** | **bool** | |
|
||||
**source_** | **String** | |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
# fintracker_api.model.SpendingRow
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**amountRub** | **String** | decimal as string |
|
||||
**categoryId** | **int** | |
|
||||
**categoryName** | **String** | |
|
||||
**month** | [**DateTime**](DateTime.md) | |
|
||||
**rootCategoryId** | **int** | |
|
||||
**rootCategoryName** | **String** | |
|
||||
**txnCount** | **int** | |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
# fintracker_api.api.SyncApi
|
||||
|
||||
## Load the API package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
All URIs are relative to *http://localhost*
|
||||
|
||||
Method | HTTP request | Description
|
||||
------------- | ------------- | -------------
|
||||
[**syncRuns**](SyncApi.md#syncruns) | **GET** /api/v1/sync/runs | Runs
|
||||
[**syncStatus**](SyncApi.md#syncstatus) | **GET** /api/v1/sync/status | Status
|
||||
[**syncTrigger**](SyncApi.md#synctrigger) | **POST** /api/v1/sync/{source} | Trigger
|
||||
|
||||
|
||||
# **syncRuns**
|
||||
> List<SyncRunOut> syncRuns(source_, limit)
|
||||
|
||||
Runs
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getSyncApi();
|
||||
final String source_ = source__example; // String |
|
||||
final int limit = 56; // int |
|
||||
|
||||
try {
|
||||
final response = api.syncRuns(source_, limit);
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling SyncApi->syncRuns: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------- | ------------- | ------------- | -------------
|
||||
**source_** | **String**| | [optional]
|
||||
**limit** | **int**| | [optional] [default to 20]
|
||||
|
||||
### Return type
|
||||
|
||||
[**List<SyncRunOut>**](SyncRunOut.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **syncStatus**
|
||||
> List<SourceStatus> syncStatus()
|
||||
|
||||
Status
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getSyncApi();
|
||||
|
||||
try {
|
||||
final response = api.syncStatus();
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling SyncApi->syncStatus: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
This endpoint does not need any parameter.
|
||||
|
||||
### Return type
|
||||
|
||||
[**List<SourceStatus>**](SourceStatus.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **syncTrigger**
|
||||
> SyncJobOut syncTrigger(source_)
|
||||
|
||||
Trigger
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getSyncApi();
|
||||
final String source_ = source__example; // String |
|
||||
|
||||
try {
|
||||
final response = api.syncTrigger(source_);
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling SyncApi->syncTrigger: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------- | ------------- | ------------- | -------------
|
||||
**source_** | **String**| |
|
||||
|
||||
### Return type
|
||||
|
||||
[**SyncJobOut**](SyncJobOut.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# fintracker_api.model.SyncJobOut
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**id** | **String** | |
|
||||
**requestedAt** | [**DateTime**](DateTime.md) | |
|
||||
**source_** | **String** | |
|
||||
**status** | [**JobStatus**](JobStatus.md) | |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# fintracker_api.model.SyncRunOut
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**counts** | **Map<String, Object>** | |
|
||||
**cursorAfter** | **String** | |
|
||||
**cursorBefore** | **String** | |
|
||||
**error** | **String** | |
|
||||
**finishedAt** | [**DateTime**](DateTime.md) | |
|
||||
**id** | **String** | |
|
||||
**source_** | **String** | |
|
||||
**startedAt** | [**DateTime**](DateTime.md) | |
|
||||
**status** | [**RunStatus**](RunStatus.md) | |
|
||||
**triggeredBy** | **String** | |
|
||||
**warnings** | **List<Object>** | |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# fintracker_api.model.TokenPair
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**accessToken** | **String** | |
|
||||
**expiresIn** | **int** | |
|
||||
**refreshToken** | **String** | |
|
||||
**tokenType** | **String** | | [optional] [default to 'bearer']
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
# fintracker_api.model.TransactionOut
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**categoryId** | **int** | |
|
||||
**comment** | **String** | |
|
||||
**date** | [**DateTime**](DateTime.md) | |
|
||||
**deleted** | **bool** | |
|
||||
**flowType** | [**FlowType**](FlowType.md) | |
|
||||
**hold** | **bool** | |
|
||||
**id** | **int** | |
|
||||
**income** | **String** | decimal as string |
|
||||
**incomeAccountId** | **int** | |
|
||||
**incomeCurrency** | **String** | |
|
||||
**incomeRub** | **String** | decimal as string |
|
||||
**isOneOff** | **bool** | |
|
||||
**mcc** | **int** | |
|
||||
**outcome** | **String** | decimal as string |
|
||||
**outcomeAccountId** | **int** | |
|
||||
**outcomeCurrency** | **String** | |
|
||||
**outcomeRub** | **String** | decimal as string |
|
||||
**payee** | **String** | |
|
||||
**payeeCanonical** | **String** | |
|
||||
**sourceId** | **String** | |
|
||||
**tags** | **List<int>** | |
|
||||
**tripId** | **int** | |
|
||||
**ts** | [**DateTime**](DateTime.md) | |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# fintracker_api.model.TransactionPage
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**items** | [**List<TransactionOut>**](TransactionOut.md) | |
|
||||
**page** | **int** | |
|
||||
**pageSize** | **int** | |
|
||||
**total** | **int** | |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
# fintracker_api.api.TransactionsApi
|
||||
|
||||
## Load the API package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
All URIs are relative to *http://localhost*
|
||||
|
||||
Method | HTTP request | Description
|
||||
------------- | ------------- | -------------
|
||||
[**transactionsList**](TransactionsApi.md#transactionslist) | **GET** /api/v1/transactions | List
|
||||
|
||||
|
||||
# **transactionsList**
|
||||
> TransactionPage transactionsList(from, to, accountId, categoryId, flowType, q, includeDeleted, page, pageSize)
|
||||
|
||||
List
|
||||
|
||||
One page of transactions, newest first, with RUB amounts at each own date's rate.
|
||||
|
||||
### Example
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
|
||||
final api = FintrackerApi().getTransactionsApi();
|
||||
final DateTime from = 2013-10-20; // DateTime |
|
||||
final DateTime to = 2013-10-20; // DateTime |
|
||||
final int accountId = 56; // int |
|
||||
final int categoryId = 56; // int |
|
||||
final FlowType flowType = ; // FlowType |
|
||||
final String q = q_example; // String | substring of payee or comment
|
||||
final bool includeDeleted = true; // bool |
|
||||
final int page = 56; // int |
|
||||
final int pageSize = 56; // int |
|
||||
|
||||
try {
|
||||
final response = api.transactionsList(from, to, accountId, categoryId, flowType, q, includeDeleted, page, pageSize);
|
||||
print(response);
|
||||
} on DioException catch (e) {
|
||||
print('Exception when calling TransactionsApi->transactionsList: $e\n');
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------- | ------------- | ------------- | -------------
|
||||
**from** | **DateTime**| | [optional]
|
||||
**to** | **DateTime**| | [optional]
|
||||
**accountId** | **int**| | [optional]
|
||||
**categoryId** | **int**| | [optional]
|
||||
**flowType** | [**FlowType**](.md)| | [optional]
|
||||
**q** | **String**| substring of payee or comment | [optional]
|
||||
**includeDeleted** | **bool**| | [optional] [default to false]
|
||||
**page** | **int**| | [optional] [default to 1]
|
||||
**pageSize** | **int**| | [optional] [default to 50]
|
||||
|
||||
### Return type
|
||||
|
||||
[**TransactionPage**](TransactionPage.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[HTTPBearer](../README.md#HTTPBearer)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json, application/problem+json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
# fintracker_api.model.UserOut
|
||||
|
||||
## Load the model package
|
||||
```dart
|
||||
import 'package:fintracker_api/api.dart';
|
||||
```
|
||||
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**email** | **String** | |
|
||||
**id** | **int** | |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
export 'package:fintracker_api/src/api.dart';
|
||||
export 'package:fintracker_api/src/auth/api_key_auth.dart';
|
||||
export 'package:fintracker_api/src/auth/basic_auth.dart';
|
||||
export 'package:fintracker_api/src/auth/bearer_auth.dart';
|
||||
export 'package:fintracker_api/src/auth/oauth.dart';
|
||||
|
||||
|
||||
export 'package:fintracker_api/src/api/accounts_api.dart';
|
||||
export 'package:fintracker_api/src/api/auth_api.dart';
|
||||
export 'package:fintracker_api/src/api/cashflow_api.dart';
|
||||
export 'package:fintracker_api/src/api/categories_api.dart';
|
||||
export 'package:fintracker_api/src/api/health_api.dart';
|
||||
export 'package:fintracker_api/src/api/metrics_api.dart';
|
||||
export 'package:fintracker_api/src/api/networth_api.dart';
|
||||
export 'package:fintracker_api/src/api/rules_api.dart';
|
||||
export 'package:fintracker_api/src/api/sync_api.dart';
|
||||
export 'package:fintracker_api/src/api/transactions_api.dart';
|
||||
|
||||
export 'package:fintracker_api/src/model/account_balance.dart';
|
||||
export 'package:fintracker_api/src/model/account_kind.dart';
|
||||
export 'package:fintracker_api/src/model/account_out.dart';
|
||||
export 'package:fintracker_api/src/model/account_patch.dart';
|
||||
export 'package:fintracker_api/src/model/account_role.dart';
|
||||
export 'package:fintracker_api/src/model/broker.dart';
|
||||
export 'package:fintracker_api/src/model/cash_flow_month.dart';
|
||||
export 'package:fintracker_api/src/model/category_out.dart';
|
||||
export 'package:fintracker_api/src/model/data_quality_row.dart';
|
||||
export 'package:fintracker_api/src/model/event_source.dart';
|
||||
export 'package:fintracker_api/src/model/flow_type.dart';
|
||||
export 'package:fintracker_api/src/model/health.dart';
|
||||
export 'package:fintracker_api/src/model/job_status.dart';
|
||||
export 'package:fintracker_api/src/model/login_request.dart';
|
||||
export 'package:fintracker_api/src/model/net_worth_breakdown.dart';
|
||||
export 'package:fintracker_api/src/model/net_worth_day.dart';
|
||||
export 'package:fintracker_api/src/model/problem.dart';
|
||||
export 'package:fintracker_api/src/model/refresh_log_out.dart';
|
||||
export 'package:fintracker_api/src/model/refresh_request.dart';
|
||||
export 'package:fintracker_api/src/model/rule_create.dart';
|
||||
export 'package:fintracker_api/src/model/rule_kind.dart';
|
||||
export 'package:fintracker_api/src/model/rule_match_type.dart';
|
||||
export 'package:fintracker_api/src/model/rule_out.dart';
|
||||
export 'package:fintracker_api/src/model/rule_patch.dart';
|
||||
export 'package:fintracker_api/src/model/run_status.dart';
|
||||
export 'package:fintracker_api/src/model/runway_out.dart';
|
||||
export 'package:fintracker_api/src/model/source_status.dart';
|
||||
export 'package:fintracker_api/src/model/spending_row.dart';
|
||||
export 'package:fintracker_api/src/model/sync_job_out.dart';
|
||||
export 'package:fintracker_api/src/model/sync_run_out.dart';
|
||||
export 'package:fintracker_api/src/model/token_pair.dart';
|
||||
export 'package:fintracker_api/src/model/transaction_out.dart';
|
||||
export 'package:fintracker_api/src/model/transaction_page.dart';
|
||||
export 'package:fintracker_api/src/model/user_out.dart';
|
||||
|
||||
@@ -0,0 +1,171 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:fintracker_api/src/auth/api_key_auth.dart';
|
||||
import 'package:fintracker_api/src/auth/basic_auth.dart';
|
||||
import 'package:fintracker_api/src/auth/bearer_auth.dart';
|
||||
import 'package:fintracker_api/src/auth/oauth.dart';
|
||||
import 'package:fintracker_api/src/api/accounts_api.dart';
|
||||
import 'package:fintracker_api/src/api/auth_api.dart';
|
||||
import 'package:fintracker_api/src/api/cashflow_api.dart';
|
||||
import 'package:fintracker_api/src/api/categories_api.dart';
|
||||
import 'package:fintracker_api/src/api/health_api.dart';
|
||||
import 'package:fintracker_api/src/api/metrics_api.dart';
|
||||
import 'package:fintracker_api/src/api/networth_api.dart';
|
||||
import 'package:fintracker_api/src/api/rules_api.dart';
|
||||
import 'package:fintracker_api/src/api/sync_api.dart';
|
||||
import 'package:fintracker_api/src/api/transactions_api.dart';
|
||||
|
||||
class FintrackerApi {
|
||||
static const String basePath = r'http://localhost';
|
||||
|
||||
final Dio dio;
|
||||
FintrackerApi({
|
||||
Dio? dio,
|
||||
String? basePathOverride,
|
||||
List<Interceptor>? interceptors,
|
||||
}) :
|
||||
this.dio = dio ??
|
||||
Dio(BaseOptions(
|
||||
baseUrl: basePathOverride ?? basePath,
|
||||
connectTimeout: const Duration(milliseconds: 5000),
|
||||
receiveTimeout: const Duration(milliseconds: 3000),
|
||||
)) {
|
||||
if (interceptors == null) {
|
||||
this.dio.interceptors.addAll([
|
||||
OAuthInterceptor(),
|
||||
BasicAuthInterceptor(),
|
||||
BearerAuthInterceptor(),
|
||||
ApiKeyAuthInterceptor(),
|
||||
]);
|
||||
} else {
|
||||
this.dio.interceptors.addAll(interceptors);
|
||||
}
|
||||
}
|
||||
|
||||
void setOAuthToken(String name, String token) {
|
||||
if (this.dio.interceptors.any((i) => i is OAuthInterceptor)) {
|
||||
(this.dio.interceptors.firstWhere((i) => i is OAuthInterceptor) as OAuthInterceptor).tokens[name] = token;
|
||||
}
|
||||
}
|
||||
|
||||
/// Removes the OAuth token associated with the given [name].
|
||||
///
|
||||
/// If no [OAuthInterceptor] is registered or no token exists for the given
|
||||
/// [name], this method has no effect.
|
||||
void removeOAuthToken(String name) {
|
||||
if (this.dio.interceptors.any((i) => i is OAuthInterceptor)) {
|
||||
(this.dio.interceptors.firstWhere((i) => i is OAuthInterceptor) as OAuthInterceptor).tokens.remove(name);
|
||||
}
|
||||
}
|
||||
|
||||
void setBearerAuth(String name, String token) {
|
||||
if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
|
||||
(this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens[name] = token;
|
||||
}
|
||||
}
|
||||
|
||||
/// Removes the bearer authentication token associated with the given [name].
|
||||
///
|
||||
/// If no [BearerAuthInterceptor] is registered or no token exists for the
|
||||
/// given [name], this method has no effect.
|
||||
void removeBearerAuth(String name) {
|
||||
if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
|
||||
(this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens.remove(name);
|
||||
}
|
||||
}
|
||||
|
||||
void setBasicAuth(String name, String username, String password) {
|
||||
if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
|
||||
(this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo[name] = BasicAuthInfo(username, password);
|
||||
}
|
||||
}
|
||||
|
||||
/// Removes the basic authentication credentials associated with the given [name].
|
||||
///
|
||||
/// If no [BasicAuthInterceptor] is registered or no credentials exist for the
|
||||
/// given [name], this method has no effect.
|
||||
void removeBasicAuth(String name) {
|
||||
if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
|
||||
(this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo.remove(name);
|
||||
}
|
||||
}
|
||||
|
||||
void setApiKey(String name, String apiKey) {
|
||||
if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
|
||||
(this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys[name] = apiKey;
|
||||
}
|
||||
}
|
||||
|
||||
/// Removes the API key associated with the given [name].
|
||||
///
|
||||
/// If no [ApiKeyAuthInterceptor] is registered or no API key exists for the
|
||||
/// given [name], this method has no effect.
|
||||
void removeApiKey(String name) {
|
||||
if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
|
||||
(this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys.remove(name);
|
||||
}
|
||||
}
|
||||
|
||||
/// Get AccountsApi instance, base route and serializer can be overridden by a given but be careful,
|
||||
/// by doing that all interceptors will not be executed
|
||||
AccountsApi getAccountsApi() {
|
||||
return AccountsApi(dio);
|
||||
}
|
||||
|
||||
/// Get AuthApi instance, base route and serializer can be overridden by a given but be careful,
|
||||
/// by doing that all interceptors will not be executed
|
||||
AuthApi getAuthApi() {
|
||||
return AuthApi(dio);
|
||||
}
|
||||
|
||||
/// Get CashflowApi instance, base route and serializer can be overridden by a given but be careful,
|
||||
/// by doing that all interceptors will not be executed
|
||||
CashflowApi getCashflowApi() {
|
||||
return CashflowApi(dio);
|
||||
}
|
||||
|
||||
/// Get CategoriesApi instance, base route and serializer can be overridden by a given but be careful,
|
||||
/// by doing that all interceptors will not be executed
|
||||
CategoriesApi getCategoriesApi() {
|
||||
return CategoriesApi(dio);
|
||||
}
|
||||
|
||||
/// Get HealthApi instance, base route and serializer can be overridden by a given but be careful,
|
||||
/// by doing that all interceptors will not be executed
|
||||
HealthApi getHealthApi() {
|
||||
return HealthApi(dio);
|
||||
}
|
||||
|
||||
/// Get MetricsApi instance, base route and serializer can be overridden by a given but be careful,
|
||||
/// by doing that all interceptors will not be executed
|
||||
MetricsApi getMetricsApi() {
|
||||
return MetricsApi(dio);
|
||||
}
|
||||
|
||||
/// Get NetworthApi instance, base route and serializer can be overridden by a given but be careful,
|
||||
/// by doing that all interceptors will not be executed
|
||||
NetworthApi getNetworthApi() {
|
||||
return NetworthApi(dio);
|
||||
}
|
||||
|
||||
/// Get RulesApi instance, base route and serializer can be overridden by a given but be careful,
|
||||
/// by doing that all interceptors will not be executed
|
||||
RulesApi getRulesApi() {
|
||||
return RulesApi(dio);
|
||||
}
|
||||
|
||||
/// Get SyncApi instance, base route and serializer can be overridden by a given but be careful,
|
||||
/// by doing that all interceptors will not be executed
|
||||
SyncApi getSyncApi() {
|
||||
return SyncApi(dio);
|
||||
}
|
||||
|
||||
/// Get TransactionsApi instance, base route and serializer can be overridden by a given but be careful,
|
||||
/// by doing that all interceptors will not be executed
|
||||
TransactionsApi getTransactionsApi() {
|
||||
return TransactionsApi(dio);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,197 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
import 'dart:async';
|
||||
|
||||
// ignore: unused_import
|
||||
import 'dart:convert';
|
||||
import 'package:fintracker_api/src/deserialize.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
|
||||
import 'package:fintracker_api/src/model/account_out.dart';
|
||||
import 'package:fintracker_api/src/model/account_patch.dart';
|
||||
import 'package:fintracker_api/src/model/problem.dart';
|
||||
|
||||
class AccountsApi {
|
||||
|
||||
final Dio _dio;
|
||||
|
||||
const AccountsApi(this._dio);
|
||||
|
||||
/// List
|
||||
/// Every account, archived ones included — the client decides what to show.
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [List<AccountOut>] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<List<AccountOut>>> accountsList({
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/accounts';
|
||||
final _options = Options(
|
||||
method: r'GET',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
List<AccountOut>? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<List<AccountOut>, AccountOut>(rawData, 'List<AccountOut>', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<List<AccountOut>>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
/// Patch
|
||||
/// Update the user-owned fields. Everything else is overwritten by the next sync.
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [accountId]
|
||||
/// * [accountPatch]
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [AccountOut] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<AccountOut>> accountsPatch({
|
||||
required int accountId,
|
||||
required AccountPatch accountPatch,
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/accounts/{account_id}'.replaceAll('{' r'account_id' '}', accountId.toString());
|
||||
final _options = Options(
|
||||
method: r'PATCH',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
contentType: 'application/json',
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
dynamic _bodyData;
|
||||
|
||||
try {
|
||||
_bodyData = jsonEncode(accountPatch);
|
||||
|
||||
} catch(error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _options.compose(
|
||||
_dio.options,
|
||||
_path,
|
||||
),
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
data: _bodyData,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
AccountOut? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<AccountOut, AccountOut>(rawData, 'AccountOut', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<AccountOut>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,348 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
import 'dart:async';
|
||||
|
||||
// ignore: unused_import
|
||||
import 'dart:convert';
|
||||
import 'package:fintracker_api/src/deserialize.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
|
||||
import 'package:fintracker_api/src/model/login_request.dart';
|
||||
import 'package:fintracker_api/src/model/problem.dart';
|
||||
import 'package:fintracker_api/src/model/refresh_request.dart';
|
||||
import 'package:fintracker_api/src/model/token_pair.dart';
|
||||
import 'package:fintracker_api/src/model/user_out.dart';
|
||||
|
||||
class AuthApi {
|
||||
|
||||
final Dio _dio;
|
||||
|
||||
const AuthApi(this._dio);
|
||||
|
||||
/// Login
|
||||
///
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [loginRequest]
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [TokenPair] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<TokenPair>> authLogin({
|
||||
required LoginRequest loginRequest,
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/auth/login';
|
||||
final _options = Options(
|
||||
method: r'POST',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[],
|
||||
...?extra,
|
||||
},
|
||||
contentType: 'application/json',
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
dynamic _bodyData;
|
||||
|
||||
try {
|
||||
_bodyData = jsonEncode(loginRequest);
|
||||
|
||||
} catch(error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _options.compose(
|
||||
_dio.options,
|
||||
_path,
|
||||
),
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
data: _bodyData,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
TokenPair? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<TokenPair, TokenPair>(rawData, 'TokenPair', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<TokenPair>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
/// Logout
|
||||
///
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [refreshRequest]
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future]
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<void>> authLogout({
|
||||
required RefreshRequest refreshRequest,
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/auth/logout';
|
||||
final _options = Options(
|
||||
method: r'POST',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[],
|
||||
...?extra,
|
||||
},
|
||||
contentType: 'application/json',
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
dynamic _bodyData;
|
||||
|
||||
try {
|
||||
_bodyData = jsonEncode(refreshRequest);
|
||||
|
||||
} catch(error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _options.compose(
|
||||
_dio.options,
|
||||
_path,
|
||||
),
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
data: _bodyData,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
return _response;
|
||||
}
|
||||
|
||||
/// Me
|
||||
///
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [UserOut] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<UserOut>> authMe({
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/auth/me';
|
||||
final _options = Options(
|
||||
method: r'GET',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
UserOut? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<UserOut, UserOut>(rawData, 'UserOut', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<UserOut>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
/// Refresh
|
||||
///
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [refreshRequest]
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [TokenPair] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<TokenPair>> authRefresh({
|
||||
required RefreshRequest refreshRequest,
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/auth/refresh';
|
||||
final _options = Options(
|
||||
method: r'POST',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[],
|
||||
...?extra,
|
||||
},
|
||||
contentType: 'application/json',
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
dynamic _bodyData;
|
||||
|
||||
try {
|
||||
_bodyData = jsonEncode(refreshRequest);
|
||||
|
||||
} catch(error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _options.compose(
|
||||
_dio.options,
|
||||
_path,
|
||||
),
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
data: _bodyData,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
TokenPair? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<TokenPair, TokenPair>(rawData, 'TokenPair', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<TokenPair>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,265 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
import 'dart:async';
|
||||
|
||||
// ignore: unused_import
|
||||
import 'dart:convert';
|
||||
import 'package:fintracker_api/src/deserialize.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
|
||||
import 'package:fintracker_api/src/model/cash_flow_month.dart';
|
||||
import 'package:fintracker_api/src/model/problem.dart';
|
||||
import 'package:fintracker_api/src/model/runway_out.dart';
|
||||
import 'package:fintracker_api/src/model/spending_row.dart';
|
||||
|
||||
class CashflowApi {
|
||||
|
||||
final Dio _dio;
|
||||
|
||||
const CashflowApi(this._dio);
|
||||
|
||||
/// Monthly
|
||||
/// The last `months` months, oldest first.
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [months]
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [List<CashFlowMonth>] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<List<CashFlowMonth>>> cashflowMonthly({
|
||||
int? months = 12,
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/cashflow/monthly';
|
||||
final _options = Options(
|
||||
method: r'GET',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _queryParameters = <String, dynamic>{
|
||||
if (months != null) r'months': months,
|
||||
};
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
queryParameters: _queryParameters,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
List<CashFlowMonth>? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<List<CashFlowMonth>, CashFlowMonth>(rawData, 'List<CashFlowMonth>', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<List<CashFlowMonth>>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
/// Runway
|
||||
/// How many months the liquid reserve covers; null before the first refresh.
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [RunwayOut] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<RunwayOut>> cashflowRunway({
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/runway';
|
||||
final _options = Options(
|
||||
method: r'GET',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
RunwayOut? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<RunwayOut, RunwayOut>(rawData, 'RunwayOut', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<RunwayOut>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
/// Spending
|
||||
/// Expenses of one month by category, largest first.
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [month] - YYYY-MM; defaults to the latest month
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [List<SpendingRow>] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<List<SpendingRow>>> cashflowSpending({
|
||||
String? month,
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/spending/categories';
|
||||
final _options = Options(
|
||||
method: r'GET',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _queryParameters = <String, dynamic>{
|
||||
if (month != null) r'month': month,
|
||||
};
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
queryParameters: _queryParameters,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
List<SpendingRow>? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<List<SpendingRow>, SpendingRow>(rawData, 'List<SpendingRow>', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<List<SpendingRow>>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
import 'dart:async';
|
||||
|
||||
// ignore: unused_import
|
||||
import 'dart:convert';
|
||||
import 'package:fintracker_api/src/deserialize.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
|
||||
import 'package:fintracker_api/src/model/category_out.dart';
|
||||
import 'package:fintracker_api/src/model/problem.dart';
|
||||
|
||||
class CategoriesApi {
|
||||
|
||||
final Dio _dio;
|
||||
|
||||
const CategoriesApi(this._dio);
|
||||
|
||||
/// List
|
||||
/// Flat list of the ZenMoney tag tree; the client nests it by `parent_id`.
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [List<CategoryOut>] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<List<CategoryOut>>> categoriesList({
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/categories';
|
||||
final _options = Options(
|
||||
method: r'GET',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
List<CategoryOut>? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<List<CategoryOut>, CategoryOut>(rawData, 'List<CategoryOut>', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<List<CategoryOut>>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
import 'dart:async';
|
||||
|
||||
// ignore: unused_import
|
||||
import 'dart:convert';
|
||||
import 'package:fintracker_api/src/deserialize.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
|
||||
import 'package:fintracker_api/src/model/health.dart';
|
||||
import 'package:fintracker_api/src/model/problem.dart';
|
||||
|
||||
class HealthApi {
|
||||
|
||||
final Dio _dio;
|
||||
|
||||
const HealthApi(this._dio);
|
||||
|
||||
/// Check
|
||||
///
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [Health] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<Health>> healthCheck({
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/health';
|
||||
final _options = Options(
|
||||
method: r'GET',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
Health? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<Health, Health>(rawData, 'Health', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<Health>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,250 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
import 'dart:async';
|
||||
|
||||
// ignore: unused_import
|
||||
import 'dart:convert';
|
||||
import 'package:fintracker_api/src/deserialize.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
|
||||
import 'package:fintracker_api/src/model/data_quality_row.dart';
|
||||
import 'package:fintracker_api/src/model/problem.dart';
|
||||
import 'package:fintracker_api/src/model/refresh_log_out.dart';
|
||||
|
||||
class MetricsApi {
|
||||
|
||||
final Dio _dio;
|
||||
|
||||
const MetricsApi(this._dio);
|
||||
|
||||
/// Data Quality
|
||||
/// Findings of the latest refresh, most serious first.
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [List<DataQualityRow>] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<List<DataQualityRow>>> metricsDataQuality({
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/data-quality';
|
||||
final _options = Options(
|
||||
method: r'GET',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
List<DataQualityRow>? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<List<DataQualityRow>, DataQualityRow>(rawData, 'List<DataQualityRow>', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<List<DataQualityRow>>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
/// Refresh
|
||||
/// Rebuild every metric_* table inline (seconds at personal volumes).
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [RefreshLogOut] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<RefreshLogOut>> metricsRefresh({
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/metrics/refresh';
|
||||
final _options = Options(
|
||||
method: r'POST',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
RefreshLogOut? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<RefreshLogOut, RefreshLogOut>(rawData, 'RefreshLogOut', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<RefreshLogOut>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
/// Status
|
||||
/// When the metric tables were last rebuilt, and whether it failed.
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [RefreshLogOut] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<RefreshLogOut>> metricsStatus({
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/metrics/status';
|
||||
final _options = Options(
|
||||
method: r'GET',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
RefreshLogOut? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<RefreshLogOut, RefreshLogOut>(rawData, 'RefreshLogOut', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<RefreshLogOut>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,184 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
import 'dart:async';
|
||||
|
||||
// ignore: unused_import
|
||||
import 'dart:convert';
|
||||
import 'package:fintracker_api/src/deserialize.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
|
||||
import 'package:fintracker_api/src/model/net_worth_breakdown.dart';
|
||||
import 'package:fintracker_api/src/model/net_worth_day.dart';
|
||||
import 'package:fintracker_api/src/model/problem.dart';
|
||||
|
||||
class NetworthApi {
|
||||
|
||||
final Dio _dio;
|
||||
|
||||
const NetworthApi(this._dio);
|
||||
|
||||
/// Breakdown
|
||||
/// The latest day's buckets, plus every account's current balance native and in RUB.
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [NetWorthBreakdown] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<NetWorthBreakdown>> networthBreakdown({
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/networth/breakdown';
|
||||
final _options = Options(
|
||||
method: r'GET',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
NetWorthBreakdown? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<NetWorthBreakdown, NetWorthBreakdown>(rawData, 'NetWorthBreakdown', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<NetWorthBreakdown>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
/// Series
|
||||
/// Daily net worth; defaults to the last 365 days.
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [from]
|
||||
/// * [to]
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [List<NetWorthDay>] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<List<NetWorthDay>>> networthSeries({
|
||||
DateTime? from,
|
||||
DateTime? to,
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/networth/series';
|
||||
final _options = Options(
|
||||
method: r'GET',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _queryParameters = <String, dynamic>{
|
||||
if (from != null) r'from': from,
|
||||
if (to != null) r'to': to,
|
||||
};
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
queryParameters: _queryParameters,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
List<NetWorthDay>? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<List<NetWorthDay>, NetWorthDay>(rawData, 'List<NetWorthDay>', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<List<NetWorthDay>>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,501 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
import 'dart:async';
|
||||
|
||||
// ignore: unused_import
|
||||
import 'dart:convert';
|
||||
import 'package:fintracker_api/src/deserialize.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
|
||||
import 'package:fintracker_api/src/model/problem.dart';
|
||||
import 'package:fintracker_api/src/model/refresh_log_out.dart';
|
||||
import 'package:fintracker_api/src/model/rule_create.dart';
|
||||
import 'package:fintracker_api/src/model/rule_out.dart';
|
||||
import 'package:fintracker_api/src/model/rule_patch.dart';
|
||||
|
||||
class RulesApi {
|
||||
|
||||
final Dio _dio;
|
||||
|
||||
const RulesApi(this._dio);
|
||||
|
||||
/// Apply
|
||||
/// Re-run the whole metric refresh so edited rules take effect everywhere at once.
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [RefreshLogOut] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<RefreshLogOut>> rulesApply({
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/rules/apply';
|
||||
final _options = Options(
|
||||
method: r'POST',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
RefreshLogOut? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<RefreshLogOut, RefreshLogOut>(rawData, 'RefreshLogOut', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<RefreshLogOut>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
/// Create
|
||||
///
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [ruleCreate]
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [RuleOut] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<RuleOut>> rulesCreate({
|
||||
required RuleCreate ruleCreate,
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/rules';
|
||||
final _options = Options(
|
||||
method: r'POST',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
contentType: 'application/json',
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
dynamic _bodyData;
|
||||
|
||||
try {
|
||||
_bodyData = jsonEncode(ruleCreate);
|
||||
|
||||
} catch(error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _options.compose(
|
||||
_dio.options,
|
||||
_path,
|
||||
),
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
data: _bodyData,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
RuleOut? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<RuleOut, RuleOut>(rawData, 'RuleOut', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<RuleOut>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
/// Delete
|
||||
///
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [ruleId]
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future]
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<void>> rulesDelete({
|
||||
required int ruleId,
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/rules/{rule_id}'.replaceAll('{' r'rule_id' '}', ruleId.toString());
|
||||
final _options = Options(
|
||||
method: r'DELETE',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
return _response;
|
||||
}
|
||||
|
||||
/// List
|
||||
///
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [List<RuleOut>] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<List<RuleOut>>> rulesList({
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/rules';
|
||||
final _options = Options(
|
||||
method: r'GET',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
List<RuleOut>? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<List<RuleOut>, RuleOut>(rawData, 'List<RuleOut>', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<List<RuleOut>>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
/// Patch
|
||||
///
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [ruleId]
|
||||
/// * [rulePatch]
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [RuleOut] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<RuleOut>> rulesPatch({
|
||||
required int ruleId,
|
||||
required RulePatch rulePatch,
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/rules/{rule_id}'.replaceAll('{' r'rule_id' '}', ruleId.toString());
|
||||
final _options = Options(
|
||||
method: r'PATCH',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
contentType: 'application/json',
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
dynamic _bodyData;
|
||||
|
||||
try {
|
||||
_bodyData = jsonEncode(rulePatch);
|
||||
|
||||
} catch(error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _options.compose(
|
||||
_dio.options,
|
||||
_path,
|
||||
),
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
data: _bodyData,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
RuleOut? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<RuleOut, RuleOut>(rawData, 'RuleOut', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<RuleOut>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
/// Stale
|
||||
/// Enabled rules that matched nothing in the latest refresh: the payee was renamed, or the transaction was re-categorised in ZenMoney.
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [List<RuleOut>] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<List<RuleOut>>> rulesStale({
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/rules/stale';
|
||||
final _options = Options(
|
||||
method: r'GET',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
List<RuleOut>? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<List<RuleOut>, RuleOut>(rawData, 'List<RuleOut>', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<List<RuleOut>>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,263 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
import 'dart:async';
|
||||
|
||||
// ignore: unused_import
|
||||
import 'dart:convert';
|
||||
import 'package:fintracker_api/src/deserialize.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
|
||||
import 'package:fintracker_api/src/model/problem.dart';
|
||||
import 'package:fintracker_api/src/model/source_status.dart';
|
||||
import 'package:fintracker_api/src/model/sync_job_out.dart';
|
||||
import 'package:fintracker_api/src/model/sync_run_out.dart';
|
||||
|
||||
class SyncApi {
|
||||
|
||||
final Dio _dio;
|
||||
|
||||
const SyncApi(this._dio);
|
||||
|
||||
/// Runs
|
||||
///
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [source_]
|
||||
/// * [limit]
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [List<SyncRunOut>] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<List<SyncRunOut>>> syncRuns({
|
||||
String? source_,
|
||||
int? limit = 20,
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/sync/runs';
|
||||
final _options = Options(
|
||||
method: r'GET',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _queryParameters = <String, dynamic>{
|
||||
if (source_ != null) r'source': source_,
|
||||
if (limit != null) r'limit': limit,
|
||||
};
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
queryParameters: _queryParameters,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
List<SyncRunOut>? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<List<SyncRunOut>, SyncRunOut>(rawData, 'List<SyncRunOut>', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<List<SyncRunOut>>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
/// Status
|
||||
///
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [List<SourceStatus>] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<List<SourceStatus>>> syncStatus({
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/sync/status';
|
||||
final _options = Options(
|
||||
method: r'GET',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
List<SourceStatus>? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<List<SourceStatus>, SourceStatus>(rawData, 'List<SourceStatus>', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<List<SourceStatus>>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
/// Trigger
|
||||
///
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [source_]
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [SyncJobOut] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<SyncJobOut>> syncTrigger({
|
||||
required String source_,
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/sync/{source}'.replaceAll('{' r'source' '}', source_.toString());
|
||||
final _options = Options(
|
||||
method: r'POST',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
SyncJobOut? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<SyncJobOut, SyncJobOut>(rawData, 'SyncJobOut', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<SyncJobOut>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
import 'dart:async';
|
||||
|
||||
// ignore: unused_import
|
||||
import 'dart:convert';
|
||||
import 'package:fintracker_api/src/deserialize.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
|
||||
import 'package:fintracker_api/src/model/flow_type.dart';
|
||||
import 'package:fintracker_api/src/model/problem.dart';
|
||||
import 'package:fintracker_api/src/model/transaction_page.dart';
|
||||
|
||||
class TransactionsApi {
|
||||
|
||||
final Dio _dio;
|
||||
|
||||
const TransactionsApi(this._dio);
|
||||
|
||||
/// List
|
||||
/// One page of transactions, newest first, with RUB amounts at each own date's rate.
|
||||
///
|
||||
/// Parameters:
|
||||
/// * [from]
|
||||
/// * [to]
|
||||
/// * [accountId]
|
||||
/// * [categoryId]
|
||||
/// * [flowType]
|
||||
/// * [q] - substring of payee or comment
|
||||
/// * [includeDeleted]
|
||||
/// * [page]
|
||||
/// * [pageSize]
|
||||
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
|
||||
/// * [headers] - Can be used to add additional headers to the request
|
||||
/// * [extras] - Can be used to add flags to the request
|
||||
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
|
||||
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
|
||||
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
|
||||
///
|
||||
/// Returns a [Future] containing a [Response] with a [TransactionPage] as data
|
||||
/// Throws [DioException] if API call or serialization fails
|
||||
Future<Response<TransactionPage>> transactionsList({
|
||||
DateTime? from,
|
||||
DateTime? to,
|
||||
int? accountId,
|
||||
int? categoryId,
|
||||
FlowType? flowType,
|
||||
String? q,
|
||||
bool? includeDeleted = false,
|
||||
int? page = 1,
|
||||
int? pageSize = 50,
|
||||
CancelToken? cancelToken,
|
||||
Map<String, dynamic>? headers,
|
||||
Map<String, dynamic>? extra,
|
||||
ValidateStatus? validateStatus,
|
||||
ProgressCallback? onSendProgress,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
final _path = r'/api/v1/transactions';
|
||||
final _options = Options(
|
||||
method: r'GET',
|
||||
headers: <String, dynamic>{
|
||||
...?headers,
|
||||
},
|
||||
extra: <String, dynamic>{
|
||||
'secure': <Map<String, String>>[
|
||||
{
|
||||
'type': 'http',
|
||||
'scheme': 'bearer',
|
||||
'name': 'HTTPBearer',
|
||||
},
|
||||
],
|
||||
...?extra,
|
||||
},
|
||||
validateStatus: validateStatus,
|
||||
);
|
||||
|
||||
final _queryParameters = <String, dynamic>{
|
||||
if (from != null) r'from': from,
|
||||
if (to != null) r'to': to,
|
||||
if (accountId != null) r'account_id': accountId,
|
||||
if (categoryId != null) r'category_id': categoryId,
|
||||
if (flowType != null) r'flow_type': flowType,
|
||||
if (q != null) r'q': q,
|
||||
if (includeDeleted != null) r'include_deleted': includeDeleted,
|
||||
if (page != null) r'page': page,
|
||||
if (pageSize != null) r'page_size': pageSize,
|
||||
};
|
||||
|
||||
final _response = await _dio.request<Object>(
|
||||
_path,
|
||||
options: _options,
|
||||
queryParameters: _queryParameters,
|
||||
cancelToken: cancelToken,
|
||||
onSendProgress: onSendProgress,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
);
|
||||
|
||||
TransactionPage? _responseData;
|
||||
|
||||
try {
|
||||
final rawData = _response.data;
|
||||
_responseData = rawData == null ? null : deserialize<TransactionPage, TransactionPage>(rawData, 'TransactionPage', growable: true);
|
||||
|
||||
} catch (error, stackTrace) {
|
||||
throw DioException(
|
||||
requestOptions: _response.requestOptions,
|
||||
response: _response,
|
||||
type: DioExceptionType.unknown,
|
||||
error: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
return Response<TransactionPage>(
|
||||
data: _responseData,
|
||||
headers: _response.headers,
|
||||
isRedirect: _response.isRedirect,
|
||||
requestOptions: _response.requestOptions,
|
||||
redirects: _response.redirects,
|
||||
statusCode: _response.statusCode,
|
||||
statusMessage: _response.statusMessage,
|
||||
extra: _response.extra,
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:fintracker_api/src/auth/auth.dart';
|
||||
|
||||
class ApiKeyAuthInterceptor extends AuthInterceptor {
|
||||
final Map<String, String> apiKeys = {};
|
||||
|
||||
@override
|
||||
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
|
||||
final authInfo = getAuthInfo(options, (secure) => secure['type'] == 'apiKey');
|
||||
for (final info in authInfo) {
|
||||
final authName = info['name'] as String;
|
||||
final authKeyName = info['keyName'] as String;
|
||||
final authWhere = info['where'] as String;
|
||||
final apiKey = apiKeys[authName];
|
||||
if (apiKey != null) {
|
||||
if (authWhere == 'query') {
|
||||
options.queryParameters[authKeyName] = apiKey;
|
||||
} else {
|
||||
options.headers[authKeyName] = apiKey;
|
||||
}
|
||||
}
|
||||
}
|
||||
super.onRequest(options, handler);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
import 'package:dio/dio.dart';
|
||||
|
||||
abstract class AuthInterceptor extends Interceptor {
|
||||
/// Get auth information on given route for the given type.
|
||||
/// Can return an empty list if type is not present on auth data or
|
||||
/// if route doesn't need authentication.
|
||||
List<Map<String, String>> getAuthInfo(RequestOptions route, bool Function(Map<String, String> secure) handles) {
|
||||
if (route.extra.containsKey('secure')) {
|
||||
final auth = route.extra['secure'] as List<Map<String, String>>;
|
||||
return auth.where((secure) => handles(secure)).toList();
|
||||
}
|
||||
return [];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:fintracker_api/src/auth/auth.dart';
|
||||
|
||||
class BasicAuthInfo {
|
||||
final String username;
|
||||
final String password;
|
||||
|
||||
const BasicAuthInfo(this.username, this.password);
|
||||
}
|
||||
|
||||
class BasicAuthInterceptor extends AuthInterceptor {
|
||||
final Map<String, BasicAuthInfo> authInfo = {};
|
||||
|
||||
@override
|
||||
void onRequest(
|
||||
RequestOptions options,
|
||||
RequestInterceptorHandler handler,
|
||||
) {
|
||||
final metadataAuthInfo = getAuthInfo(options, (secure) => (secure['type'] == 'http' && secure['scheme']?.toLowerCase() == 'basic') || secure['type'] == 'basic');
|
||||
for (final info in metadataAuthInfo) {
|
||||
final authName = info['name'] as String;
|
||||
final basicAuthInfo = authInfo[authName];
|
||||
if (basicAuthInfo != null) {
|
||||
final basicAuth = 'Basic ${base64Encode(utf8.encode('${basicAuthInfo.username}:${basicAuthInfo.password}'))}';
|
||||
options.headers['Authorization'] = basicAuth;
|
||||
break;
|
||||
}
|
||||
}
|
||||
super.onRequest(options, handler);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:fintracker_api/src/auth/auth.dart';
|
||||
|
||||
class BearerAuthInterceptor extends AuthInterceptor {
|
||||
final Map<String, String> tokens = {};
|
||||
|
||||
@override
|
||||
void onRequest(
|
||||
RequestOptions options,
|
||||
RequestInterceptorHandler handler,
|
||||
) {
|
||||
final authInfo = getAuthInfo(options, (secure) => secure['type'] == 'http' && secure['scheme']?.toLowerCase() == 'bearer');
|
||||
for (final info in authInfo) {
|
||||
final token = tokens[info['name']];
|
||||
if (token != null) {
|
||||
options.headers['Authorization'] = 'Bearer ${token}';
|
||||
break;
|
||||
}
|
||||
}
|
||||
super.onRequest(options, handler);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:fintracker_api/src/auth/auth.dart';
|
||||
|
||||
class OAuthInterceptor extends AuthInterceptor {
|
||||
final Map<String, String> tokens = {};
|
||||
|
||||
@override
|
||||
void onRequest(
|
||||
RequestOptions options,
|
||||
RequestInterceptorHandler handler,
|
||||
) {
|
||||
final authInfo = getAuthInfo(options, (secure) => secure['type'] == 'oauth' || secure['type'] == 'oauth2');
|
||||
for (final info in authInfo) {
|
||||
final token = tokens[info['name']];
|
||||
if (token != null) {
|
||||
options.headers['Authorization'] = 'Bearer ${token}';
|
||||
break;
|
||||
}
|
||||
}
|
||||
super.onRequest(options, handler);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,147 @@
|
||||
import 'package:fintracker_api/src/model/account_balance.dart';
|
||||
import 'package:fintracker_api/src/model/account_out.dart';
|
||||
import 'package:fintracker_api/src/model/account_patch.dart';
|
||||
import 'package:fintracker_api/src/model/cash_flow_month.dart';
|
||||
import 'package:fintracker_api/src/model/category_out.dart';
|
||||
import 'package:fintracker_api/src/model/data_quality_row.dart';
|
||||
import 'package:fintracker_api/src/model/health.dart';
|
||||
import 'package:fintracker_api/src/model/login_request.dart';
|
||||
import 'package:fintracker_api/src/model/net_worth_breakdown.dart';
|
||||
import 'package:fintracker_api/src/model/net_worth_day.dart';
|
||||
import 'package:fintracker_api/src/model/problem.dart';
|
||||
import 'package:fintracker_api/src/model/refresh_log_out.dart';
|
||||
import 'package:fintracker_api/src/model/refresh_request.dart';
|
||||
import 'package:fintracker_api/src/model/rule_create.dart';
|
||||
import 'package:fintracker_api/src/model/rule_out.dart';
|
||||
import 'package:fintracker_api/src/model/rule_patch.dart';
|
||||
import 'package:fintracker_api/src/model/runway_out.dart';
|
||||
import 'package:fintracker_api/src/model/source_status.dart';
|
||||
import 'package:fintracker_api/src/model/spending_row.dart';
|
||||
import 'package:fintracker_api/src/model/sync_job_out.dart';
|
||||
import 'package:fintracker_api/src/model/sync_run_out.dart';
|
||||
import 'package:fintracker_api/src/model/token_pair.dart';
|
||||
import 'package:fintracker_api/src/model/transaction_out.dart';
|
||||
import 'package:fintracker_api/src/model/transaction_page.dart';
|
||||
import 'package:fintracker_api/src/model/user_out.dart';
|
||||
|
||||
final _regList = RegExp(r'^List<(.*)>$');
|
||||
final _regSet = RegExp(r'^Set<(.*)>$');
|
||||
final _regMap = RegExp(r'^Map<String,(.*)>$');
|
||||
|
||||
ReturnType deserialize<ReturnType, BaseType>(dynamic value, String targetType, {bool growable= true}) {
|
||||
switch (targetType) {
|
||||
case 'String':
|
||||
return '$value' as ReturnType;
|
||||
case 'int':
|
||||
return (value is int ? value : int.parse('$value')) as ReturnType;
|
||||
case 'bool':
|
||||
if (value is bool) {
|
||||
return value as ReturnType;
|
||||
}
|
||||
final valueString = '$value'.toLowerCase();
|
||||
return (valueString == 'true' || valueString == '1') as ReturnType;
|
||||
case 'double':
|
||||
return (value is double ? value : double.parse('$value')) as ReturnType;
|
||||
case 'AccountBalance':
|
||||
return AccountBalance.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'AccountKind':
|
||||
|
||||
|
||||
case 'AccountOut':
|
||||
return AccountOut.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'AccountPatch':
|
||||
return AccountPatch.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'AccountRole':
|
||||
|
||||
|
||||
case 'Broker':
|
||||
|
||||
|
||||
case 'CashFlowMonth':
|
||||
return CashFlowMonth.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'CategoryOut':
|
||||
return CategoryOut.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'DataQualityRow':
|
||||
return DataQualityRow.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'EventSource':
|
||||
|
||||
|
||||
case 'FlowType':
|
||||
|
||||
|
||||
case 'Health':
|
||||
return Health.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'JobStatus':
|
||||
|
||||
|
||||
case 'LoginRequest':
|
||||
return LoginRequest.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'NetWorthBreakdown':
|
||||
return NetWorthBreakdown.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'NetWorthDay':
|
||||
return NetWorthDay.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'Problem':
|
||||
return Problem.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'RefreshLogOut':
|
||||
return RefreshLogOut.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'RefreshRequest':
|
||||
return RefreshRequest.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'RuleCreate':
|
||||
return RuleCreate.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'RuleKind':
|
||||
|
||||
|
||||
case 'RuleMatchType':
|
||||
|
||||
|
||||
case 'RuleOut':
|
||||
return RuleOut.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'RulePatch':
|
||||
return RulePatch.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'RunStatus':
|
||||
|
||||
|
||||
case 'RunwayOut':
|
||||
return RunwayOut.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'SourceStatus':
|
||||
return SourceStatus.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'SpendingRow':
|
||||
return SpendingRow.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'SyncJobOut':
|
||||
return SyncJobOut.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'SyncRunOut':
|
||||
return SyncRunOut.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'TokenPair':
|
||||
return TokenPair.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'TransactionOut':
|
||||
return TransactionOut.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'TransactionPage':
|
||||
return TransactionPage.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
case 'UserOut':
|
||||
return UserOut.fromJson(value as Map<String, dynamic>) as ReturnType;
|
||||
default:
|
||||
RegExpMatch? match;
|
||||
|
||||
if (value is List && (match = _regList.firstMatch(targetType)) != null) {
|
||||
targetType = match![1]!; // ignore: parameter_assignments
|
||||
return value
|
||||
.map<BaseType>((dynamic v) => deserialize<BaseType, BaseType>(v, targetType, growable: growable))
|
||||
.toList(growable: growable) as ReturnType;
|
||||
}
|
||||
if (value is Set && (match = _regSet.firstMatch(targetType)) != null) {
|
||||
targetType = match![1]!; // ignore: parameter_assignments
|
||||
return value
|
||||
.map<BaseType>((dynamic v) => deserialize<BaseType, BaseType>(v, targetType, growable: growable))
|
||||
.toSet() as ReturnType;
|
||||
}
|
||||
if (value is Map && (match = _regMap.firstMatch(targetType)) != null) {
|
||||
targetType = match![1]!.trim(); // ignore: parameter_assignments
|
||||
return Map<String, BaseType>.fromIterables(
|
||||
value.keys as Iterable<String>,
|
||||
value.values.map((dynamic v) => deserialize<BaseType, BaseType>(v, targetType, growable: growable)),
|
||||
) as ReturnType;
|
||||
}
|
||||
break;
|
||||
}
|
||||
throw Exception('Cannot deserialize');
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:fintracker_api/src/model/account_role.dart';
|
||||
import 'package:copy_with_extension/copy_with_extension.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'account_balance.g.dart';
|
||||
|
||||
|
||||
@CopyWith()
|
||||
@JsonSerializable(
|
||||
checked: true,
|
||||
createToJson: true,
|
||||
disallowUnrecognizedKeys: false,
|
||||
explicitToJson: true,
|
||||
)
|
||||
class AccountBalance {
|
||||
/// Returns a new [AccountBalance] instance.
|
||||
AccountBalance({
|
||||
|
||||
required this.accountId,
|
||||
|
||||
required this.balance,
|
||||
|
||||
required this.balanceRub,
|
||||
|
||||
required this.currency,
|
||||
|
||||
required this.name,
|
||||
|
||||
required this.role,
|
||||
});
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'account_id',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final int accountId;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'balance',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String balance;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'balance_rub',
|
||||
required: true,
|
||||
includeIfNull: true,
|
||||
)
|
||||
|
||||
|
||||
final String? balanceRub;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'currency',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String currency;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'name',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String name;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'role',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
unknownEnumValue: AccountRole.unknownDefaultOpenApi,
|
||||
)
|
||||
|
||||
|
||||
final AccountRole role;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) => identical(this, other) || other is AccountBalance &&
|
||||
other.accountId == accountId &&
|
||||
other.balance == balance &&
|
||||
other.balanceRub == balanceRub &&
|
||||
other.currency == currency &&
|
||||
other.name == name &&
|
||||
other.role == role;
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
accountId.hashCode +
|
||||
balance.hashCode +
|
||||
(balanceRub == null ? 0 : balanceRub.hashCode) +
|
||||
currency.hashCode +
|
||||
name.hashCode +
|
||||
role.hashCode;
|
||||
|
||||
factory AccountBalance.fromJson(Map<String, dynamic> json) => _$AccountBalanceFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$AccountBalanceToJson(this);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return toJson().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,171 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'account_balance.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// CopyWithGenerator
|
||||
// **************************************************************************
|
||||
|
||||
abstract class _$AccountBalanceCWProxy {
|
||||
AccountBalance accountId(int accountId);
|
||||
|
||||
AccountBalance balance(String balance);
|
||||
|
||||
AccountBalance balanceRub(String? balanceRub);
|
||||
|
||||
AccountBalance currency(String currency);
|
||||
|
||||
AccountBalance name(String name);
|
||||
|
||||
AccountBalance role(AccountRole role);
|
||||
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `AccountBalance(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// AccountBalance(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
AccountBalance call({
|
||||
int accountId,
|
||||
String balance,
|
||||
String? balanceRub,
|
||||
String currency,
|
||||
String name,
|
||||
AccountRole role,
|
||||
});
|
||||
}
|
||||
|
||||
/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfAccountBalance.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfAccountBalance.copyWith.fieldName(...)`
|
||||
class _$AccountBalanceCWProxyImpl implements _$AccountBalanceCWProxy {
|
||||
const _$AccountBalanceCWProxyImpl(this._value);
|
||||
|
||||
final AccountBalance _value;
|
||||
|
||||
@override
|
||||
AccountBalance accountId(int accountId) => this(accountId: accountId);
|
||||
|
||||
@override
|
||||
AccountBalance balance(String balance) => this(balance: balance);
|
||||
|
||||
@override
|
||||
AccountBalance balanceRub(String? balanceRub) => this(balanceRub: balanceRub);
|
||||
|
||||
@override
|
||||
AccountBalance currency(String currency) => this(currency: currency);
|
||||
|
||||
@override
|
||||
AccountBalance name(String name) => this(name: name);
|
||||
|
||||
@override
|
||||
AccountBalance role(AccountRole role) => this(role: role);
|
||||
|
||||
@override
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `AccountBalance(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// AccountBalance(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
AccountBalance call({
|
||||
Object? accountId = const $CopyWithPlaceholder(),
|
||||
Object? balance = const $CopyWithPlaceholder(),
|
||||
Object? balanceRub = const $CopyWithPlaceholder(),
|
||||
Object? currency = const $CopyWithPlaceholder(),
|
||||
Object? name = const $CopyWithPlaceholder(),
|
||||
Object? role = const $CopyWithPlaceholder(),
|
||||
}) {
|
||||
return AccountBalance(
|
||||
accountId: accountId == const $CopyWithPlaceholder()
|
||||
? _value.accountId
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: accountId as int,
|
||||
balance: balance == const $CopyWithPlaceholder()
|
||||
? _value.balance
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: balance as String,
|
||||
balanceRub: balanceRub == const $CopyWithPlaceholder()
|
||||
? _value.balanceRub
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: balanceRub as String?,
|
||||
currency: currency == const $CopyWithPlaceholder()
|
||||
? _value.currency
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: currency as String,
|
||||
name: name == const $CopyWithPlaceholder()
|
||||
? _value.name
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: name as String,
|
||||
role: role == const $CopyWithPlaceholder()
|
||||
? _value.role
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: role as AccountRole,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
extension $AccountBalanceCopyWith on AccountBalance {
|
||||
/// Returns a callable class that can be used as follows: `instanceOfAccountBalance.copyWith(...)` or like so:`instanceOfAccountBalance.copyWith.fieldName(...)`.
|
||||
// ignore: library_private_types_in_public_api
|
||||
_$AccountBalanceCWProxy get copyWith => _$AccountBalanceCWProxyImpl(this);
|
||||
}
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
AccountBalance _$AccountBalanceFromJson(Map<String, dynamic> json) =>
|
||||
$checkedCreate(
|
||||
'AccountBalance',
|
||||
json,
|
||||
($checkedConvert) {
|
||||
$checkKeys(
|
||||
json,
|
||||
requiredKeys: const [
|
||||
'account_id',
|
||||
'balance',
|
||||
'balance_rub',
|
||||
'currency',
|
||||
'name',
|
||||
'role',
|
||||
],
|
||||
);
|
||||
final val = AccountBalance(
|
||||
accountId: $checkedConvert('account_id', (v) => (v as num).toInt()),
|
||||
balance: $checkedConvert('balance', (v) => v as String),
|
||||
balanceRub: $checkedConvert('balance_rub', (v) => v as String?),
|
||||
currency: $checkedConvert('currency', (v) => v as String),
|
||||
name: $checkedConvert('name', (v) => v as String),
|
||||
role: $checkedConvert(
|
||||
'role',
|
||||
(v) => $enumDecode(
|
||||
_$AccountRoleEnumMap,
|
||||
v,
|
||||
unknownValue: AccountRole.unknownDefaultOpenApi,
|
||||
),
|
||||
),
|
||||
);
|
||||
return val;
|
||||
},
|
||||
fieldKeyMap: const {
|
||||
'accountId': 'account_id',
|
||||
'balanceRub': 'balance_rub',
|
||||
},
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$AccountBalanceToJson(AccountBalance instance) =>
|
||||
<String, dynamic>{
|
||||
'account_id': instance.accountId,
|
||||
'balance': instance.balance,
|
||||
'balance_rub': instance.balanceRub,
|
||||
'currency': instance.currency,
|
||||
'name': instance.name,
|
||||
'role': _$AccountRoleEnumMap[instance.role]!,
|
||||
};
|
||||
|
||||
const _$AccountRoleEnumMap = {
|
||||
AccountRole.liquid: 'liquid',
|
||||
AccountRole.savings: 'savings',
|
||||
AccountRole.investment: 'investment',
|
||||
AccountRole.debt: 'debt',
|
||||
AccountRole.unknownDefaultOpenApi: 'unknown_default_open_api',
|
||||
};
|
||||
@@ -0,0 +1,36 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
enum AccountKind {
|
||||
@JsonValue(r'zm_cash')
|
||||
zmCash(r'zm_cash'),
|
||||
@JsonValue(r'zm_card')
|
||||
zmCard(r'zm_card'),
|
||||
@JsonValue(r'zm_checking')
|
||||
zmChecking(r'zm_checking'),
|
||||
@JsonValue(r'zm_deposit')
|
||||
zmDeposit(r'zm_deposit'),
|
||||
@JsonValue(r'zm_loan')
|
||||
zmLoan(r'zm_loan'),
|
||||
@JsonValue(r'zm_emoney')
|
||||
zmEmoney(r'zm_emoney'),
|
||||
@JsonValue(r'zm_debt')
|
||||
zmDebt(r'zm_debt'),
|
||||
@JsonValue(r'broker')
|
||||
broker(r'broker'),
|
||||
@JsonValue(r'manual_asset')
|
||||
manualAsset(r'manual_asset'),
|
||||
@JsonValue(r'unknown_default_open_api')
|
||||
unknownDefaultOpenApi(r'unknown_default_open_api');
|
||||
|
||||
const AccountKind(this.value);
|
||||
|
||||
final String value;
|
||||
|
||||
@override
|
||||
String toString() => value;
|
||||
}
|
||||
@@ -0,0 +1,325 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:fintracker_api/src/model/event_source.dart';
|
||||
import 'package:fintracker_api/src/model/account_role.dart';
|
||||
import 'package:fintracker_api/src/model/account_kind.dart';
|
||||
import 'package:fintracker_api/src/model/broker.dart';
|
||||
import 'package:copy_with_extension/copy_with_extension.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'account_out.g.dart';
|
||||
|
||||
|
||||
@CopyWith()
|
||||
@JsonSerializable(
|
||||
checked: true,
|
||||
createToJson: true,
|
||||
disallowUnrecognizedKeys: false,
|
||||
explicitToJson: true,
|
||||
)
|
||||
class AccountOut {
|
||||
/// Returns a new [AccountOut] instance.
|
||||
AccountOut({
|
||||
|
||||
required this.archived,
|
||||
|
||||
required this.balance,
|
||||
|
||||
required this.balanceAsOf,
|
||||
|
||||
required this.broker,
|
||||
|
||||
required this.creditLimit,
|
||||
|
||||
required this.currency,
|
||||
|
||||
required this.id,
|
||||
|
||||
required this.includeInNetWorth,
|
||||
|
||||
required this.kind,
|
||||
|
||||
required this.mirrorOfAccountId,
|
||||
|
||||
required this.name,
|
||||
|
||||
required this.openedAt,
|
||||
|
||||
required this.primaryEventSource,
|
||||
|
||||
required this.role,
|
||||
|
||||
required this.source_,
|
||||
|
||||
required this.sourceId,
|
||||
|
||||
required this.startBalance,
|
||||
});
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'archived',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final bool archived;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'balance',
|
||||
required: true,
|
||||
includeIfNull: true,
|
||||
)
|
||||
|
||||
|
||||
final String? balance;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'balance_as_of',
|
||||
required: true,
|
||||
includeIfNull: true,
|
||||
)
|
||||
|
||||
|
||||
final DateTime? balanceAsOf;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'broker',
|
||||
required: true,
|
||||
includeIfNull: true,
|
||||
unknownEnumValue: Broker.unknownDefaultOpenApi,
|
||||
)
|
||||
|
||||
|
||||
final Broker? broker;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'credit_limit',
|
||||
required: true,
|
||||
includeIfNull: true,
|
||||
)
|
||||
|
||||
|
||||
final String? creditLimit;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'currency',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String currency;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'id',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final int id;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'include_in_net_worth',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final bool includeInNetWorth;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'kind',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
unknownEnumValue: AccountKind.unknownDefaultOpenApi,
|
||||
)
|
||||
|
||||
|
||||
final AccountKind kind;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'mirror_of_account_id',
|
||||
required: true,
|
||||
includeIfNull: true,
|
||||
)
|
||||
|
||||
|
||||
final int? mirrorOfAccountId;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'name',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String name;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'opened_at',
|
||||
required: true,
|
||||
includeIfNull: true,
|
||||
)
|
||||
|
||||
|
||||
final DateTime? openedAt;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'primary_event_source',
|
||||
required: true,
|
||||
includeIfNull: true,
|
||||
unknownEnumValue: EventSource.unknownDefaultOpenApi,
|
||||
)
|
||||
|
||||
|
||||
final EventSource? primaryEventSource;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'role',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
unknownEnumValue: AccountRole.unknownDefaultOpenApi,
|
||||
)
|
||||
|
||||
|
||||
final AccountRole role;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'source',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String source_;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'source_id',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String sourceId;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'start_balance',
|
||||
required: true,
|
||||
includeIfNull: true,
|
||||
)
|
||||
|
||||
|
||||
final String? startBalance;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) => identical(this, other) || other is AccountOut &&
|
||||
other.archived == archived &&
|
||||
other.balance == balance &&
|
||||
other.balanceAsOf == balanceAsOf &&
|
||||
other.broker == broker &&
|
||||
other.creditLimit == creditLimit &&
|
||||
other.currency == currency &&
|
||||
other.id == id &&
|
||||
other.includeInNetWorth == includeInNetWorth &&
|
||||
other.kind == kind &&
|
||||
other.mirrorOfAccountId == mirrorOfAccountId &&
|
||||
other.name == name &&
|
||||
other.openedAt == openedAt &&
|
||||
other.primaryEventSource == primaryEventSource &&
|
||||
other.role == role &&
|
||||
other.source_ == source_ &&
|
||||
other.sourceId == sourceId &&
|
||||
other.startBalance == startBalance;
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
archived.hashCode +
|
||||
(balance == null ? 0 : balance.hashCode) +
|
||||
(balanceAsOf == null ? 0 : balanceAsOf.hashCode) +
|
||||
(broker == null ? 0 : broker.hashCode) +
|
||||
(creditLimit == null ? 0 : creditLimit.hashCode) +
|
||||
currency.hashCode +
|
||||
id.hashCode +
|
||||
includeInNetWorth.hashCode +
|
||||
kind.hashCode +
|
||||
(mirrorOfAccountId == null ? 0 : mirrorOfAccountId.hashCode) +
|
||||
name.hashCode +
|
||||
(openedAt == null ? 0 : openedAt.hashCode) +
|
||||
(primaryEventSource == null ? 0 : primaryEventSource.hashCode) +
|
||||
role.hashCode +
|
||||
source_.hashCode +
|
||||
sourceId.hashCode +
|
||||
(startBalance == null ? 0 : startBalance.hashCode);
|
||||
|
||||
factory AccountOut.fromJson(Map<String, dynamic> json) => _$AccountOutFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$AccountOutToJson(this);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return toJson().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,398 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'account_out.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// CopyWithGenerator
|
||||
// **************************************************************************
|
||||
|
||||
abstract class _$AccountOutCWProxy {
|
||||
AccountOut archived(bool archived);
|
||||
|
||||
AccountOut balance(String? balance);
|
||||
|
||||
AccountOut balanceAsOf(DateTime? balanceAsOf);
|
||||
|
||||
AccountOut broker(Broker? broker);
|
||||
|
||||
AccountOut creditLimit(String? creditLimit);
|
||||
|
||||
AccountOut currency(String currency);
|
||||
|
||||
AccountOut id(int id);
|
||||
|
||||
AccountOut includeInNetWorth(bool includeInNetWorth);
|
||||
|
||||
AccountOut kind(AccountKind kind);
|
||||
|
||||
AccountOut mirrorOfAccountId(int? mirrorOfAccountId);
|
||||
|
||||
AccountOut name(String name);
|
||||
|
||||
AccountOut openedAt(DateTime? openedAt);
|
||||
|
||||
AccountOut primaryEventSource(EventSource? primaryEventSource);
|
||||
|
||||
AccountOut role(AccountRole role);
|
||||
|
||||
AccountOut source_(String source_);
|
||||
|
||||
AccountOut sourceId(String sourceId);
|
||||
|
||||
AccountOut startBalance(String? startBalance);
|
||||
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `AccountOut(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// AccountOut(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
AccountOut call({
|
||||
bool archived,
|
||||
String? balance,
|
||||
DateTime? balanceAsOf,
|
||||
Broker? broker,
|
||||
String? creditLimit,
|
||||
String currency,
|
||||
int id,
|
||||
bool includeInNetWorth,
|
||||
AccountKind kind,
|
||||
int? mirrorOfAccountId,
|
||||
String name,
|
||||
DateTime? openedAt,
|
||||
EventSource? primaryEventSource,
|
||||
AccountRole role,
|
||||
String source_,
|
||||
String sourceId,
|
||||
String? startBalance,
|
||||
});
|
||||
}
|
||||
|
||||
/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfAccountOut.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfAccountOut.copyWith.fieldName(...)`
|
||||
class _$AccountOutCWProxyImpl implements _$AccountOutCWProxy {
|
||||
const _$AccountOutCWProxyImpl(this._value);
|
||||
|
||||
final AccountOut _value;
|
||||
|
||||
@override
|
||||
AccountOut archived(bool archived) => this(archived: archived);
|
||||
|
||||
@override
|
||||
AccountOut balance(String? balance) => this(balance: balance);
|
||||
|
||||
@override
|
||||
AccountOut balanceAsOf(DateTime? balanceAsOf) =>
|
||||
this(balanceAsOf: balanceAsOf);
|
||||
|
||||
@override
|
||||
AccountOut broker(Broker? broker) => this(broker: broker);
|
||||
|
||||
@override
|
||||
AccountOut creditLimit(String? creditLimit) => this(creditLimit: creditLimit);
|
||||
|
||||
@override
|
||||
AccountOut currency(String currency) => this(currency: currency);
|
||||
|
||||
@override
|
||||
AccountOut id(int id) => this(id: id);
|
||||
|
||||
@override
|
||||
AccountOut includeInNetWorth(bool includeInNetWorth) =>
|
||||
this(includeInNetWorth: includeInNetWorth);
|
||||
|
||||
@override
|
||||
AccountOut kind(AccountKind kind) => this(kind: kind);
|
||||
|
||||
@override
|
||||
AccountOut mirrorOfAccountId(int? mirrorOfAccountId) =>
|
||||
this(mirrorOfAccountId: mirrorOfAccountId);
|
||||
|
||||
@override
|
||||
AccountOut name(String name) => this(name: name);
|
||||
|
||||
@override
|
||||
AccountOut openedAt(DateTime? openedAt) => this(openedAt: openedAt);
|
||||
|
||||
@override
|
||||
AccountOut primaryEventSource(EventSource? primaryEventSource) =>
|
||||
this(primaryEventSource: primaryEventSource);
|
||||
|
||||
@override
|
||||
AccountOut role(AccountRole role) => this(role: role);
|
||||
|
||||
@override
|
||||
AccountOut source_(String source_) => this(source_: source_);
|
||||
|
||||
@override
|
||||
AccountOut sourceId(String sourceId) => this(sourceId: sourceId);
|
||||
|
||||
@override
|
||||
AccountOut startBalance(String? startBalance) =>
|
||||
this(startBalance: startBalance);
|
||||
|
||||
@override
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `AccountOut(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// AccountOut(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
AccountOut call({
|
||||
Object? archived = const $CopyWithPlaceholder(),
|
||||
Object? balance = const $CopyWithPlaceholder(),
|
||||
Object? balanceAsOf = const $CopyWithPlaceholder(),
|
||||
Object? broker = const $CopyWithPlaceholder(),
|
||||
Object? creditLimit = const $CopyWithPlaceholder(),
|
||||
Object? currency = const $CopyWithPlaceholder(),
|
||||
Object? id = const $CopyWithPlaceholder(),
|
||||
Object? includeInNetWorth = const $CopyWithPlaceholder(),
|
||||
Object? kind = const $CopyWithPlaceholder(),
|
||||
Object? mirrorOfAccountId = const $CopyWithPlaceholder(),
|
||||
Object? name = const $CopyWithPlaceholder(),
|
||||
Object? openedAt = const $CopyWithPlaceholder(),
|
||||
Object? primaryEventSource = const $CopyWithPlaceholder(),
|
||||
Object? role = const $CopyWithPlaceholder(),
|
||||
Object? source_ = const $CopyWithPlaceholder(),
|
||||
Object? sourceId = const $CopyWithPlaceholder(),
|
||||
Object? startBalance = const $CopyWithPlaceholder(),
|
||||
}) {
|
||||
return AccountOut(
|
||||
archived: archived == const $CopyWithPlaceholder()
|
||||
? _value.archived
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: archived as bool,
|
||||
balance: balance == const $CopyWithPlaceholder()
|
||||
? _value.balance
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: balance as String?,
|
||||
balanceAsOf: balanceAsOf == const $CopyWithPlaceholder()
|
||||
? _value.balanceAsOf
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: balanceAsOf as DateTime?,
|
||||
broker: broker == const $CopyWithPlaceholder()
|
||||
? _value.broker
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: broker as Broker?,
|
||||
creditLimit: creditLimit == const $CopyWithPlaceholder()
|
||||
? _value.creditLimit
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: creditLimit as String?,
|
||||
currency: currency == const $CopyWithPlaceholder()
|
||||
? _value.currency
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: currency as String,
|
||||
id: id == const $CopyWithPlaceholder()
|
||||
? _value.id
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: id as int,
|
||||
includeInNetWorth: includeInNetWorth == const $CopyWithPlaceholder()
|
||||
? _value.includeInNetWorth
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: includeInNetWorth as bool,
|
||||
kind: kind == const $CopyWithPlaceholder()
|
||||
? _value.kind
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: kind as AccountKind,
|
||||
mirrorOfAccountId: mirrorOfAccountId == const $CopyWithPlaceholder()
|
||||
? _value.mirrorOfAccountId
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: mirrorOfAccountId as int?,
|
||||
name: name == const $CopyWithPlaceholder()
|
||||
? _value.name
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: name as String,
|
||||
openedAt: openedAt == const $CopyWithPlaceholder()
|
||||
? _value.openedAt
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: openedAt as DateTime?,
|
||||
primaryEventSource: primaryEventSource == const $CopyWithPlaceholder()
|
||||
? _value.primaryEventSource
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: primaryEventSource as EventSource?,
|
||||
role: role == const $CopyWithPlaceholder()
|
||||
? _value.role
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: role as AccountRole,
|
||||
source_: source_ == const $CopyWithPlaceholder()
|
||||
? _value.source_
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: source_ as String,
|
||||
sourceId: sourceId == const $CopyWithPlaceholder()
|
||||
? _value.sourceId
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: sourceId as String,
|
||||
startBalance: startBalance == const $CopyWithPlaceholder()
|
||||
? _value.startBalance
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: startBalance as String?,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
extension $AccountOutCopyWith on AccountOut {
|
||||
/// Returns a callable class that can be used as follows: `instanceOfAccountOut.copyWith(...)` or like so:`instanceOfAccountOut.copyWith.fieldName(...)`.
|
||||
// ignore: library_private_types_in_public_api
|
||||
_$AccountOutCWProxy get copyWith => _$AccountOutCWProxyImpl(this);
|
||||
}
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
AccountOut _$AccountOutFromJson(Map<String, dynamic> json) => $checkedCreate(
|
||||
'AccountOut',
|
||||
json,
|
||||
($checkedConvert) {
|
||||
$checkKeys(
|
||||
json,
|
||||
requiredKeys: const [
|
||||
'archived',
|
||||
'balance',
|
||||
'balance_as_of',
|
||||
'broker',
|
||||
'credit_limit',
|
||||
'currency',
|
||||
'id',
|
||||
'include_in_net_worth',
|
||||
'kind',
|
||||
'mirror_of_account_id',
|
||||
'name',
|
||||
'opened_at',
|
||||
'primary_event_source',
|
||||
'role',
|
||||
'source',
|
||||
'source_id',
|
||||
'start_balance',
|
||||
],
|
||||
);
|
||||
final val = AccountOut(
|
||||
archived: $checkedConvert('archived', (v) => v as bool),
|
||||
balance: $checkedConvert('balance', (v) => v as String?),
|
||||
balanceAsOf: $checkedConvert(
|
||||
'balance_as_of',
|
||||
(v) => v == null ? null : DateTime.parse(v as String),
|
||||
),
|
||||
broker: $checkedConvert(
|
||||
'broker',
|
||||
(v) => $enumDecodeNullable(
|
||||
_$BrokerEnumMap,
|
||||
v,
|
||||
unknownValue: Broker.unknownDefaultOpenApi,
|
||||
),
|
||||
),
|
||||
creditLimit: $checkedConvert('credit_limit', (v) => v as String?),
|
||||
currency: $checkedConvert('currency', (v) => v as String),
|
||||
id: $checkedConvert('id', (v) => (v as num).toInt()),
|
||||
includeInNetWorth: $checkedConvert(
|
||||
'include_in_net_worth',
|
||||
(v) => v as bool,
|
||||
),
|
||||
kind: $checkedConvert(
|
||||
'kind',
|
||||
(v) => $enumDecode(
|
||||
_$AccountKindEnumMap,
|
||||
v,
|
||||
unknownValue: AccountKind.unknownDefaultOpenApi,
|
||||
),
|
||||
),
|
||||
mirrorOfAccountId: $checkedConvert(
|
||||
'mirror_of_account_id',
|
||||
(v) => (v as num?)?.toInt(),
|
||||
),
|
||||
name: $checkedConvert('name', (v) => v as String),
|
||||
openedAt: $checkedConvert(
|
||||
'opened_at',
|
||||
(v) => v == null ? null : DateTime.parse(v as String),
|
||||
),
|
||||
primaryEventSource: $checkedConvert(
|
||||
'primary_event_source',
|
||||
(v) => $enumDecodeNullable(
|
||||
_$EventSourceEnumMap,
|
||||
v,
|
||||
unknownValue: EventSource.unknownDefaultOpenApi,
|
||||
),
|
||||
),
|
||||
role: $checkedConvert(
|
||||
'role',
|
||||
(v) => $enumDecode(
|
||||
_$AccountRoleEnumMap,
|
||||
v,
|
||||
unknownValue: AccountRole.unknownDefaultOpenApi,
|
||||
),
|
||||
),
|
||||
source_: $checkedConvert('source', (v) => v as String),
|
||||
sourceId: $checkedConvert('source_id', (v) => v as String),
|
||||
startBalance: $checkedConvert('start_balance', (v) => v as String?),
|
||||
);
|
||||
return val;
|
||||
},
|
||||
fieldKeyMap: const {
|
||||
'balanceAsOf': 'balance_as_of',
|
||||
'creditLimit': 'credit_limit',
|
||||
'includeInNetWorth': 'include_in_net_worth',
|
||||
'mirrorOfAccountId': 'mirror_of_account_id',
|
||||
'openedAt': 'opened_at',
|
||||
'primaryEventSource': 'primary_event_source',
|
||||
'source_': 'source',
|
||||
'sourceId': 'source_id',
|
||||
'startBalance': 'start_balance',
|
||||
},
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$AccountOutToJson(AccountOut instance) =>
|
||||
<String, dynamic>{
|
||||
'archived': instance.archived,
|
||||
'balance': instance.balance,
|
||||
'balance_as_of': instance.balanceAsOf?.toIso8601String(),
|
||||
'broker': _$BrokerEnumMap[instance.broker],
|
||||
'credit_limit': instance.creditLimit,
|
||||
'currency': instance.currency,
|
||||
'id': instance.id,
|
||||
'include_in_net_worth': instance.includeInNetWorth,
|
||||
'kind': _$AccountKindEnumMap[instance.kind]!,
|
||||
'mirror_of_account_id': instance.mirrorOfAccountId,
|
||||
'name': instance.name,
|
||||
'opened_at': instance.openedAt?.toIso8601String(),
|
||||
'primary_event_source': _$EventSourceEnumMap[instance.primaryEventSource],
|
||||
'role': _$AccountRoleEnumMap[instance.role]!,
|
||||
'source': instance.source_,
|
||||
'source_id': instance.sourceId,
|
||||
'start_balance': instance.startBalance,
|
||||
};
|
||||
|
||||
const _$BrokerEnumMap = {
|
||||
Broker.tinvest: 'tinvest',
|
||||
Broker.sber: 'sber',
|
||||
Broker.vtb: 'vtb',
|
||||
Broker.other: 'other',
|
||||
Broker.unknownDefaultOpenApi: 'unknown_default_open_api',
|
||||
};
|
||||
|
||||
const _$AccountKindEnumMap = {
|
||||
AccountKind.zmCash: 'zm_cash',
|
||||
AccountKind.zmCard: 'zm_card',
|
||||
AccountKind.zmChecking: 'zm_checking',
|
||||
AccountKind.zmDeposit: 'zm_deposit',
|
||||
AccountKind.zmLoan: 'zm_loan',
|
||||
AccountKind.zmEmoney: 'zm_emoney',
|
||||
AccountKind.zmDebt: 'zm_debt',
|
||||
AccountKind.broker: 'broker',
|
||||
AccountKind.manualAsset: 'manual_asset',
|
||||
AccountKind.unknownDefaultOpenApi: 'unknown_default_open_api',
|
||||
};
|
||||
|
||||
const _$EventSourceEnumMap = {
|
||||
EventSource.tinvestApi: 'tinvest_api',
|
||||
EventSource.reportSber: 'report_sber',
|
||||
EventSource.reportVtb: 'report_vtb',
|
||||
EventSource.manual: 'manual',
|
||||
EventSource.unknownDefaultOpenApi: 'unknown_default_open_api',
|
||||
};
|
||||
|
||||
const _$AccountRoleEnumMap = {
|
||||
AccountRole.liquid: 'liquid',
|
||||
AccountRole.savings: 'savings',
|
||||
AccountRole.investment: 'investment',
|
||||
AccountRole.debt: 'debt',
|
||||
AccountRole.unknownDefaultOpenApi: 'unknown_default_open_api',
|
||||
};
|
||||
@@ -0,0 +1,126 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:fintracker_api/src/model/event_source.dart';
|
||||
import 'package:fintracker_api/src/model/account_role.dart';
|
||||
import 'package:copy_with_extension/copy_with_extension.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'account_patch.g.dart';
|
||||
|
||||
|
||||
@CopyWith()
|
||||
@JsonSerializable(
|
||||
checked: true,
|
||||
createToJson: true,
|
||||
disallowUnrecognizedKeys: false,
|
||||
explicitToJson: true,
|
||||
)
|
||||
class AccountPatch {
|
||||
/// Returns a new [AccountPatch] instance.
|
||||
AccountPatch({
|
||||
|
||||
this.includeInNetWorth,
|
||||
|
||||
this.mirrorOfAccountId,
|
||||
|
||||
this.name,
|
||||
|
||||
this.primaryEventSource,
|
||||
|
||||
this.role,
|
||||
});
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'include_in_net_worth',
|
||||
required: false,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final bool? includeInNetWorth;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'mirror_of_account_id',
|
||||
required: false,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final int? mirrorOfAccountId;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'name',
|
||||
required: false,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String? name;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'primary_event_source',
|
||||
required: false,
|
||||
includeIfNull: false,
|
||||
unknownEnumValue: EventSource.unknownDefaultOpenApi,
|
||||
)
|
||||
|
||||
|
||||
final EventSource? primaryEventSource;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'role',
|
||||
required: false,
|
||||
includeIfNull: false,
|
||||
unknownEnumValue: AccountRole.unknownDefaultOpenApi,
|
||||
)
|
||||
|
||||
|
||||
final AccountRole? role;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) => identical(this, other) || other is AccountPatch &&
|
||||
other.includeInNetWorth == includeInNetWorth &&
|
||||
other.mirrorOfAccountId == mirrorOfAccountId &&
|
||||
other.name == name &&
|
||||
other.primaryEventSource == primaryEventSource &&
|
||||
other.role == role;
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
(includeInNetWorth == null ? 0 : includeInNetWorth.hashCode) +
|
||||
(mirrorOfAccountId == null ? 0 : mirrorOfAccountId.hashCode) +
|
||||
(name == null ? 0 : name.hashCode) +
|
||||
(primaryEventSource == null ? 0 : primaryEventSource.hashCode) +
|
||||
(role == null ? 0 : role.hashCode);
|
||||
|
||||
factory AccountPatch.fromJson(Map<String, dynamic> json) => _$AccountPatchFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$AccountPatchToJson(this);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return toJson().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,173 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'account_patch.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// CopyWithGenerator
|
||||
// **************************************************************************
|
||||
|
||||
abstract class _$AccountPatchCWProxy {
|
||||
AccountPatch includeInNetWorth(bool? includeInNetWorth);
|
||||
|
||||
AccountPatch mirrorOfAccountId(int? mirrorOfAccountId);
|
||||
|
||||
AccountPatch name(String? name);
|
||||
|
||||
AccountPatch primaryEventSource(EventSource? primaryEventSource);
|
||||
|
||||
AccountPatch role(AccountRole? role);
|
||||
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `AccountPatch(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// AccountPatch(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
AccountPatch call({
|
||||
bool? includeInNetWorth,
|
||||
int? mirrorOfAccountId,
|
||||
String? name,
|
||||
EventSource? primaryEventSource,
|
||||
AccountRole? role,
|
||||
});
|
||||
}
|
||||
|
||||
/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfAccountPatch.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfAccountPatch.copyWith.fieldName(...)`
|
||||
class _$AccountPatchCWProxyImpl implements _$AccountPatchCWProxy {
|
||||
const _$AccountPatchCWProxyImpl(this._value);
|
||||
|
||||
final AccountPatch _value;
|
||||
|
||||
@override
|
||||
AccountPatch includeInNetWorth(bool? includeInNetWorth) =>
|
||||
this(includeInNetWorth: includeInNetWorth);
|
||||
|
||||
@override
|
||||
AccountPatch mirrorOfAccountId(int? mirrorOfAccountId) =>
|
||||
this(mirrorOfAccountId: mirrorOfAccountId);
|
||||
|
||||
@override
|
||||
AccountPatch name(String? name) => this(name: name);
|
||||
|
||||
@override
|
||||
AccountPatch primaryEventSource(EventSource? primaryEventSource) =>
|
||||
this(primaryEventSource: primaryEventSource);
|
||||
|
||||
@override
|
||||
AccountPatch role(AccountRole? role) => this(role: role);
|
||||
|
||||
@override
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `AccountPatch(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// AccountPatch(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
AccountPatch call({
|
||||
Object? includeInNetWorth = const $CopyWithPlaceholder(),
|
||||
Object? mirrorOfAccountId = const $CopyWithPlaceholder(),
|
||||
Object? name = const $CopyWithPlaceholder(),
|
||||
Object? primaryEventSource = const $CopyWithPlaceholder(),
|
||||
Object? role = const $CopyWithPlaceholder(),
|
||||
}) {
|
||||
return AccountPatch(
|
||||
includeInNetWorth: includeInNetWorth == const $CopyWithPlaceholder()
|
||||
? _value.includeInNetWorth
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: includeInNetWorth as bool?,
|
||||
mirrorOfAccountId: mirrorOfAccountId == const $CopyWithPlaceholder()
|
||||
? _value.mirrorOfAccountId
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: mirrorOfAccountId as int?,
|
||||
name: name == const $CopyWithPlaceholder()
|
||||
? _value.name
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: name as String?,
|
||||
primaryEventSource: primaryEventSource == const $CopyWithPlaceholder()
|
||||
? _value.primaryEventSource
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: primaryEventSource as EventSource?,
|
||||
role: role == const $CopyWithPlaceholder()
|
||||
? _value.role
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: role as AccountRole?,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
extension $AccountPatchCopyWith on AccountPatch {
|
||||
/// Returns a callable class that can be used as follows: `instanceOfAccountPatch.copyWith(...)` or like so:`instanceOfAccountPatch.copyWith.fieldName(...)`.
|
||||
// ignore: library_private_types_in_public_api
|
||||
_$AccountPatchCWProxy get copyWith => _$AccountPatchCWProxyImpl(this);
|
||||
}
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
AccountPatch _$AccountPatchFromJson(Map<String, dynamic> json) =>
|
||||
$checkedCreate(
|
||||
'AccountPatch',
|
||||
json,
|
||||
($checkedConvert) {
|
||||
final val = AccountPatch(
|
||||
includeInNetWorth: $checkedConvert(
|
||||
'include_in_net_worth',
|
||||
(v) => v as bool?,
|
||||
),
|
||||
mirrorOfAccountId: $checkedConvert(
|
||||
'mirror_of_account_id',
|
||||
(v) => (v as num?)?.toInt(),
|
||||
),
|
||||
name: $checkedConvert('name', (v) => v as String?),
|
||||
primaryEventSource: $checkedConvert(
|
||||
'primary_event_source',
|
||||
(v) => $enumDecodeNullable(
|
||||
_$EventSourceEnumMap,
|
||||
v,
|
||||
unknownValue: EventSource.unknownDefaultOpenApi,
|
||||
),
|
||||
),
|
||||
role: $checkedConvert(
|
||||
'role',
|
||||
(v) => $enumDecodeNullable(
|
||||
_$AccountRoleEnumMap,
|
||||
v,
|
||||
unknownValue: AccountRole.unknownDefaultOpenApi,
|
||||
),
|
||||
),
|
||||
);
|
||||
return val;
|
||||
},
|
||||
fieldKeyMap: const {
|
||||
'includeInNetWorth': 'include_in_net_worth',
|
||||
'mirrorOfAccountId': 'mirror_of_account_id',
|
||||
'primaryEventSource': 'primary_event_source',
|
||||
},
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$AccountPatchToJson(
|
||||
AccountPatch instance,
|
||||
) => <String, dynamic>{
|
||||
'include_in_net_worth': ?instance.includeInNetWorth,
|
||||
'mirror_of_account_id': ?instance.mirrorOfAccountId,
|
||||
'name': ?instance.name,
|
||||
'primary_event_source': ?_$EventSourceEnumMap[instance.primaryEventSource],
|
||||
'role': ?_$AccountRoleEnumMap[instance.role],
|
||||
};
|
||||
|
||||
const _$EventSourceEnumMap = {
|
||||
EventSource.tinvestApi: 'tinvest_api',
|
||||
EventSource.reportSber: 'report_sber',
|
||||
EventSource.reportVtb: 'report_vtb',
|
||||
EventSource.manual: 'manual',
|
||||
EventSource.unknownDefaultOpenApi: 'unknown_default_open_api',
|
||||
};
|
||||
|
||||
const _$AccountRoleEnumMap = {
|
||||
AccountRole.liquid: 'liquid',
|
||||
AccountRole.savings: 'savings',
|
||||
AccountRole.investment: 'investment',
|
||||
AccountRole.debt: 'debt',
|
||||
AccountRole.unknownDefaultOpenApi: 'unknown_default_open_api',
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
enum AccountRole {
|
||||
@JsonValue(r'liquid')
|
||||
liquid(r'liquid'),
|
||||
@JsonValue(r'savings')
|
||||
savings(r'savings'),
|
||||
@JsonValue(r'investment')
|
||||
investment(r'investment'),
|
||||
@JsonValue(r'debt')
|
||||
debt(r'debt'),
|
||||
@JsonValue(r'unknown_default_open_api')
|
||||
unknownDefaultOpenApi(r'unknown_default_open_api');
|
||||
|
||||
const AccountRole(this.value);
|
||||
|
||||
final String value;
|
||||
|
||||
@override
|
||||
String toString() => value;
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
enum Broker {
|
||||
@JsonValue(r'tinvest')
|
||||
tinvest(r'tinvest'),
|
||||
@JsonValue(r'sber')
|
||||
sber(r'sber'),
|
||||
@JsonValue(r'vtb')
|
||||
vtb(r'vtb'),
|
||||
@JsonValue(r'other')
|
||||
other(r'other'),
|
||||
@JsonValue(r'unknown_default_open_api')
|
||||
unknownDefaultOpenApi(r'unknown_default_open_api');
|
||||
|
||||
const Broker(this.value);
|
||||
|
||||
final String value;
|
||||
|
||||
@override
|
||||
String toString() => value;
|
||||
}
|
||||
@@ -0,0 +1,176 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:copy_with_extension/copy_with_extension.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'cash_flow_month.g.dart';
|
||||
|
||||
|
||||
@CopyWith()
|
||||
@JsonSerializable(
|
||||
checked: true,
|
||||
createToJson: true,
|
||||
disallowUnrecognizedKeys: false,
|
||||
explicitToJson: true,
|
||||
)
|
||||
class CashFlowMonth {
|
||||
/// Returns a new [CashFlowMonth] instance.
|
||||
CashFlowMonth({
|
||||
|
||||
required this.baselineRub,
|
||||
|
||||
required this.expenseRub,
|
||||
|
||||
required this.incomeRub,
|
||||
|
||||
required this.month,
|
||||
|
||||
required this.oneOffRub,
|
||||
|
||||
required this.savingsRate,
|
||||
|
||||
required this.savingsTransferRub,
|
||||
|
||||
required this.txnCount,
|
||||
});
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'baseline_rub',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String baselineRub;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'expense_rub',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String expenseRub;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'income_rub',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String incomeRub;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'month',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final DateTime month;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'one_off_rub',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String oneOffRub;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'savings_rate',
|
||||
required: true,
|
||||
includeIfNull: true,
|
||||
)
|
||||
|
||||
|
||||
final String? savingsRate;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'savings_transfer_rub',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String savingsTransferRub;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'txn_count',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final int txnCount;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) => identical(this, other) || other is CashFlowMonth &&
|
||||
other.baselineRub == baselineRub &&
|
||||
other.expenseRub == expenseRub &&
|
||||
other.incomeRub == incomeRub &&
|
||||
other.month == month &&
|
||||
other.oneOffRub == oneOffRub &&
|
||||
other.savingsRate == savingsRate &&
|
||||
other.savingsTransferRub == savingsTransferRub &&
|
||||
other.txnCount == txnCount;
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
baselineRub.hashCode +
|
||||
expenseRub.hashCode +
|
||||
incomeRub.hashCode +
|
||||
month.hashCode +
|
||||
oneOffRub.hashCode +
|
||||
(savingsRate == null ? 0 : savingsRate.hashCode) +
|
||||
savingsTransferRub.hashCode +
|
||||
txnCount.hashCode;
|
||||
|
||||
factory CashFlowMonth.fromJson(Map<String, dynamic> json) => _$CashFlowMonthFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$CashFlowMonthToJson(this);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return toJson().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,195 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'cash_flow_month.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// CopyWithGenerator
|
||||
// **************************************************************************
|
||||
|
||||
abstract class _$CashFlowMonthCWProxy {
|
||||
CashFlowMonth baselineRub(String baselineRub);
|
||||
|
||||
CashFlowMonth expenseRub(String expenseRub);
|
||||
|
||||
CashFlowMonth incomeRub(String incomeRub);
|
||||
|
||||
CashFlowMonth month(DateTime month);
|
||||
|
||||
CashFlowMonth oneOffRub(String oneOffRub);
|
||||
|
||||
CashFlowMonth savingsRate(String? savingsRate);
|
||||
|
||||
CashFlowMonth savingsTransferRub(String savingsTransferRub);
|
||||
|
||||
CashFlowMonth txnCount(int txnCount);
|
||||
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `CashFlowMonth(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// CashFlowMonth(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
CashFlowMonth call({
|
||||
String baselineRub,
|
||||
String expenseRub,
|
||||
String incomeRub,
|
||||
DateTime month,
|
||||
String oneOffRub,
|
||||
String? savingsRate,
|
||||
String savingsTransferRub,
|
||||
int txnCount,
|
||||
});
|
||||
}
|
||||
|
||||
/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfCashFlowMonth.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfCashFlowMonth.copyWith.fieldName(...)`
|
||||
class _$CashFlowMonthCWProxyImpl implements _$CashFlowMonthCWProxy {
|
||||
const _$CashFlowMonthCWProxyImpl(this._value);
|
||||
|
||||
final CashFlowMonth _value;
|
||||
|
||||
@override
|
||||
CashFlowMonth baselineRub(String baselineRub) =>
|
||||
this(baselineRub: baselineRub);
|
||||
|
||||
@override
|
||||
CashFlowMonth expenseRub(String expenseRub) => this(expenseRub: expenseRub);
|
||||
|
||||
@override
|
||||
CashFlowMonth incomeRub(String incomeRub) => this(incomeRub: incomeRub);
|
||||
|
||||
@override
|
||||
CashFlowMonth month(DateTime month) => this(month: month);
|
||||
|
||||
@override
|
||||
CashFlowMonth oneOffRub(String oneOffRub) => this(oneOffRub: oneOffRub);
|
||||
|
||||
@override
|
||||
CashFlowMonth savingsRate(String? savingsRate) =>
|
||||
this(savingsRate: savingsRate);
|
||||
|
||||
@override
|
||||
CashFlowMonth savingsTransferRub(String savingsTransferRub) =>
|
||||
this(savingsTransferRub: savingsTransferRub);
|
||||
|
||||
@override
|
||||
CashFlowMonth txnCount(int txnCount) => this(txnCount: txnCount);
|
||||
|
||||
@override
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `CashFlowMonth(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// CashFlowMonth(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
CashFlowMonth call({
|
||||
Object? baselineRub = const $CopyWithPlaceholder(),
|
||||
Object? expenseRub = const $CopyWithPlaceholder(),
|
||||
Object? incomeRub = const $CopyWithPlaceholder(),
|
||||
Object? month = const $CopyWithPlaceholder(),
|
||||
Object? oneOffRub = const $CopyWithPlaceholder(),
|
||||
Object? savingsRate = const $CopyWithPlaceholder(),
|
||||
Object? savingsTransferRub = const $CopyWithPlaceholder(),
|
||||
Object? txnCount = const $CopyWithPlaceholder(),
|
||||
}) {
|
||||
return CashFlowMonth(
|
||||
baselineRub: baselineRub == const $CopyWithPlaceholder()
|
||||
? _value.baselineRub
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: baselineRub as String,
|
||||
expenseRub: expenseRub == const $CopyWithPlaceholder()
|
||||
? _value.expenseRub
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: expenseRub as String,
|
||||
incomeRub: incomeRub == const $CopyWithPlaceholder()
|
||||
? _value.incomeRub
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: incomeRub as String,
|
||||
month: month == const $CopyWithPlaceholder()
|
||||
? _value.month
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: month as DateTime,
|
||||
oneOffRub: oneOffRub == const $CopyWithPlaceholder()
|
||||
? _value.oneOffRub
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: oneOffRub as String,
|
||||
savingsRate: savingsRate == const $CopyWithPlaceholder()
|
||||
? _value.savingsRate
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: savingsRate as String?,
|
||||
savingsTransferRub: savingsTransferRub == const $CopyWithPlaceholder()
|
||||
? _value.savingsTransferRub
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: savingsTransferRub as String,
|
||||
txnCount: txnCount == const $CopyWithPlaceholder()
|
||||
? _value.txnCount
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: txnCount as int,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
extension $CashFlowMonthCopyWith on CashFlowMonth {
|
||||
/// Returns a callable class that can be used as follows: `instanceOfCashFlowMonth.copyWith(...)` or like so:`instanceOfCashFlowMonth.copyWith.fieldName(...)`.
|
||||
// ignore: library_private_types_in_public_api
|
||||
_$CashFlowMonthCWProxy get copyWith => _$CashFlowMonthCWProxyImpl(this);
|
||||
}
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
CashFlowMonth _$CashFlowMonthFromJson(Map<String, dynamic> json) =>
|
||||
$checkedCreate(
|
||||
'CashFlowMonth',
|
||||
json,
|
||||
($checkedConvert) {
|
||||
$checkKeys(
|
||||
json,
|
||||
requiredKeys: const [
|
||||
'baseline_rub',
|
||||
'expense_rub',
|
||||
'income_rub',
|
||||
'month',
|
||||
'one_off_rub',
|
||||
'savings_rate',
|
||||
'savings_transfer_rub',
|
||||
'txn_count',
|
||||
],
|
||||
);
|
||||
final val = CashFlowMonth(
|
||||
baselineRub: $checkedConvert('baseline_rub', (v) => v as String),
|
||||
expenseRub: $checkedConvert('expense_rub', (v) => v as String),
|
||||
incomeRub: $checkedConvert('income_rub', (v) => v as String),
|
||||
month: $checkedConvert('month', (v) => DateTime.parse(v as String)),
|
||||
oneOffRub: $checkedConvert('one_off_rub', (v) => v as String),
|
||||
savingsRate: $checkedConvert('savings_rate', (v) => v as String?),
|
||||
savingsTransferRub: $checkedConvert(
|
||||
'savings_transfer_rub',
|
||||
(v) => v as String,
|
||||
),
|
||||
txnCount: $checkedConvert('txn_count', (v) => (v as num).toInt()),
|
||||
);
|
||||
return val;
|
||||
},
|
||||
fieldKeyMap: const {
|
||||
'baselineRub': 'baseline_rub',
|
||||
'expenseRub': 'expense_rub',
|
||||
'incomeRub': 'income_rub',
|
||||
'oneOffRub': 'one_off_rub',
|
||||
'savingsRate': 'savings_rate',
|
||||
'savingsTransferRub': 'savings_transfer_rub',
|
||||
'txnCount': 'txn_count',
|
||||
},
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$CashFlowMonthToJson(CashFlowMonth instance) =>
|
||||
<String, dynamic>{
|
||||
'baseline_rub': instance.baselineRub,
|
||||
'expense_rub': instance.expenseRub,
|
||||
'income_rub': instance.incomeRub,
|
||||
'month': instance.month.toIso8601String(),
|
||||
'one_off_rub': instance.oneOffRub,
|
||||
'savings_rate': instance.savingsRate,
|
||||
'savings_transfer_rub': instance.savingsTransferRub,
|
||||
'txn_count': instance.txnCount,
|
||||
};
|
||||
@@ -0,0 +1,170 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:copy_with_extension/copy_with_extension.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'category_out.g.dart';
|
||||
|
||||
|
||||
@CopyWith()
|
||||
@JsonSerializable(
|
||||
checked: true,
|
||||
createToJson: true,
|
||||
disallowUnrecognizedKeys: false,
|
||||
explicitToJson: true,
|
||||
)
|
||||
class CategoryOut {
|
||||
/// Returns a new [CategoryOut] instance.
|
||||
CategoryOut({
|
||||
|
||||
required this.archived,
|
||||
|
||||
required this.color,
|
||||
|
||||
required this.icon,
|
||||
|
||||
required this.id,
|
||||
|
||||
required this.name,
|
||||
|
||||
required this.parentId,
|
||||
|
||||
required this.showIncome,
|
||||
|
||||
required this.showOutcome,
|
||||
});
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'archived',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final bool archived;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'color',
|
||||
required: true,
|
||||
includeIfNull: true,
|
||||
)
|
||||
|
||||
|
||||
final int? color;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'icon',
|
||||
required: true,
|
||||
includeIfNull: true,
|
||||
)
|
||||
|
||||
|
||||
final String? icon;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'id',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final int id;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'name',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String name;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'parent_id',
|
||||
required: true,
|
||||
includeIfNull: true,
|
||||
)
|
||||
|
||||
|
||||
final int? parentId;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'show_income',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final bool showIncome;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'show_outcome',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final bool showOutcome;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) => identical(this, other) || other is CategoryOut &&
|
||||
other.archived == archived &&
|
||||
other.color == color &&
|
||||
other.icon == icon &&
|
||||
other.id == id &&
|
||||
other.name == name &&
|
||||
other.parentId == parentId &&
|
||||
other.showIncome == showIncome &&
|
||||
other.showOutcome == showOutcome;
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
archived.hashCode +
|
||||
(color == null ? 0 : color.hashCode) +
|
||||
(icon == null ? 0 : icon.hashCode) +
|
||||
id.hashCode +
|
||||
name.hashCode +
|
||||
(parentId == null ? 0 : parentId.hashCode) +
|
||||
showIncome.hashCode +
|
||||
showOutcome.hashCode;
|
||||
|
||||
factory CategoryOut.fromJson(Map<String, dynamic> json) => _$CategoryOutFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$CategoryOutToJson(this);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return toJson().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,184 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'category_out.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// CopyWithGenerator
|
||||
// **************************************************************************
|
||||
|
||||
abstract class _$CategoryOutCWProxy {
|
||||
CategoryOut archived(bool archived);
|
||||
|
||||
CategoryOut color(int? color);
|
||||
|
||||
CategoryOut icon(String? icon);
|
||||
|
||||
CategoryOut id(int id);
|
||||
|
||||
CategoryOut name(String name);
|
||||
|
||||
CategoryOut parentId(int? parentId);
|
||||
|
||||
CategoryOut showIncome(bool showIncome);
|
||||
|
||||
CategoryOut showOutcome(bool showOutcome);
|
||||
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `CategoryOut(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// CategoryOut(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
CategoryOut call({
|
||||
bool archived,
|
||||
int? color,
|
||||
String? icon,
|
||||
int id,
|
||||
String name,
|
||||
int? parentId,
|
||||
bool showIncome,
|
||||
bool showOutcome,
|
||||
});
|
||||
}
|
||||
|
||||
/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfCategoryOut.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfCategoryOut.copyWith.fieldName(...)`
|
||||
class _$CategoryOutCWProxyImpl implements _$CategoryOutCWProxy {
|
||||
const _$CategoryOutCWProxyImpl(this._value);
|
||||
|
||||
final CategoryOut _value;
|
||||
|
||||
@override
|
||||
CategoryOut archived(bool archived) => this(archived: archived);
|
||||
|
||||
@override
|
||||
CategoryOut color(int? color) => this(color: color);
|
||||
|
||||
@override
|
||||
CategoryOut icon(String? icon) => this(icon: icon);
|
||||
|
||||
@override
|
||||
CategoryOut id(int id) => this(id: id);
|
||||
|
||||
@override
|
||||
CategoryOut name(String name) => this(name: name);
|
||||
|
||||
@override
|
||||
CategoryOut parentId(int? parentId) => this(parentId: parentId);
|
||||
|
||||
@override
|
||||
CategoryOut showIncome(bool showIncome) => this(showIncome: showIncome);
|
||||
|
||||
@override
|
||||
CategoryOut showOutcome(bool showOutcome) => this(showOutcome: showOutcome);
|
||||
|
||||
@override
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `CategoryOut(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// CategoryOut(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
CategoryOut call({
|
||||
Object? archived = const $CopyWithPlaceholder(),
|
||||
Object? color = const $CopyWithPlaceholder(),
|
||||
Object? icon = const $CopyWithPlaceholder(),
|
||||
Object? id = const $CopyWithPlaceholder(),
|
||||
Object? name = const $CopyWithPlaceholder(),
|
||||
Object? parentId = const $CopyWithPlaceholder(),
|
||||
Object? showIncome = const $CopyWithPlaceholder(),
|
||||
Object? showOutcome = const $CopyWithPlaceholder(),
|
||||
}) {
|
||||
return CategoryOut(
|
||||
archived: archived == const $CopyWithPlaceholder()
|
||||
? _value.archived
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: archived as bool,
|
||||
color: color == const $CopyWithPlaceholder()
|
||||
? _value.color
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: color as int?,
|
||||
icon: icon == const $CopyWithPlaceholder()
|
||||
? _value.icon
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: icon as String?,
|
||||
id: id == const $CopyWithPlaceholder()
|
||||
? _value.id
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: id as int,
|
||||
name: name == const $CopyWithPlaceholder()
|
||||
? _value.name
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: name as String,
|
||||
parentId: parentId == const $CopyWithPlaceholder()
|
||||
? _value.parentId
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: parentId as int?,
|
||||
showIncome: showIncome == const $CopyWithPlaceholder()
|
||||
? _value.showIncome
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: showIncome as bool,
|
||||
showOutcome: showOutcome == const $CopyWithPlaceholder()
|
||||
? _value.showOutcome
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: showOutcome as bool,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
extension $CategoryOutCopyWith on CategoryOut {
|
||||
/// Returns a callable class that can be used as follows: `instanceOfCategoryOut.copyWith(...)` or like so:`instanceOfCategoryOut.copyWith.fieldName(...)`.
|
||||
// ignore: library_private_types_in_public_api
|
||||
_$CategoryOutCWProxy get copyWith => _$CategoryOutCWProxyImpl(this);
|
||||
}
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
CategoryOut _$CategoryOutFromJson(Map<String, dynamic> json) => $checkedCreate(
|
||||
'CategoryOut',
|
||||
json,
|
||||
($checkedConvert) {
|
||||
$checkKeys(
|
||||
json,
|
||||
requiredKeys: const [
|
||||
'archived',
|
||||
'color',
|
||||
'icon',
|
||||
'id',
|
||||
'name',
|
||||
'parent_id',
|
||||
'show_income',
|
||||
'show_outcome',
|
||||
],
|
||||
);
|
||||
final val = CategoryOut(
|
||||
archived: $checkedConvert('archived', (v) => v as bool),
|
||||
color: $checkedConvert('color', (v) => (v as num?)?.toInt()),
|
||||
icon: $checkedConvert('icon', (v) => v as String?),
|
||||
id: $checkedConvert('id', (v) => (v as num).toInt()),
|
||||
name: $checkedConvert('name', (v) => v as String),
|
||||
parentId: $checkedConvert('parent_id', (v) => (v as num?)?.toInt()),
|
||||
showIncome: $checkedConvert('show_income', (v) => v as bool),
|
||||
showOutcome: $checkedConvert('show_outcome', (v) => v as bool),
|
||||
);
|
||||
return val;
|
||||
},
|
||||
fieldKeyMap: const {
|
||||
'parentId': 'parent_id',
|
||||
'showIncome': 'show_income',
|
||||
'showOutcome': 'show_outcome',
|
||||
},
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$CategoryOutToJson(CategoryOut instance) =>
|
||||
<String, dynamic>{
|
||||
'archived': instance.archived,
|
||||
'color': instance.color,
|
||||
'icon': instance.icon,
|
||||
'id': instance.id,
|
||||
'name': instance.name,
|
||||
'parent_id': instance.parentId,
|
||||
'show_income': instance.showIncome,
|
||||
'show_outcome': instance.showOutcome,
|
||||
};
|
||||
@@ -0,0 +1,154 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:copy_with_extension/copy_with_extension.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'data_quality_row.g.dart';
|
||||
|
||||
|
||||
@CopyWith()
|
||||
@JsonSerializable(
|
||||
checked: true,
|
||||
createToJson: true,
|
||||
disallowUnrecognizedKeys: false,
|
||||
explicitToJson: true,
|
||||
)
|
||||
class DataQualityRow {
|
||||
/// Returns a new [DataQualityRow] instance.
|
||||
DataQualityRow({
|
||||
|
||||
required this.checkName,
|
||||
|
||||
required this.computedAt,
|
||||
|
||||
required this.count,
|
||||
|
||||
required this.detail,
|
||||
|
||||
required this.id,
|
||||
|
||||
required this.ref,
|
||||
|
||||
required this.severity,
|
||||
});
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'check_name',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String checkName;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'computed_at',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final DateTime computedAt;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'count',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final int count;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'detail',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String detail;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'id',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final int id;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'ref',
|
||||
required: true,
|
||||
includeIfNull: true,
|
||||
)
|
||||
|
||||
|
||||
final Map<String, Object>? ref;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'severity',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String severity;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) => identical(this, other) || other is DataQualityRow &&
|
||||
other.checkName == checkName &&
|
||||
other.computedAt == computedAt &&
|
||||
other.count == count &&
|
||||
other.detail == detail &&
|
||||
other.id == id &&
|
||||
other.ref == ref &&
|
||||
other.severity == severity;
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
checkName.hashCode +
|
||||
computedAt.hashCode +
|
||||
count.hashCode +
|
||||
detail.hashCode +
|
||||
id.hashCode +
|
||||
(ref == null ? 0 : ref.hashCode) +
|
||||
severity.hashCode;
|
||||
|
||||
factory DataQualityRow.fromJson(Map<String, dynamic> json) => _$DataQualityRowFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$DataQualityRowToJson(this);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return toJson().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,179 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'data_quality_row.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// CopyWithGenerator
|
||||
// **************************************************************************
|
||||
|
||||
abstract class _$DataQualityRowCWProxy {
|
||||
DataQualityRow checkName(String checkName);
|
||||
|
||||
DataQualityRow computedAt(DateTime computedAt);
|
||||
|
||||
DataQualityRow count(int count);
|
||||
|
||||
DataQualityRow detail(String detail);
|
||||
|
||||
DataQualityRow id(int id);
|
||||
|
||||
DataQualityRow ref(Map<String, Object>? ref);
|
||||
|
||||
DataQualityRow severity(String severity);
|
||||
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `DataQualityRow(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// DataQualityRow(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
DataQualityRow call({
|
||||
String checkName,
|
||||
DateTime computedAt,
|
||||
int count,
|
||||
String detail,
|
||||
int id,
|
||||
Map<String, Object>? ref,
|
||||
String severity,
|
||||
});
|
||||
}
|
||||
|
||||
/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfDataQualityRow.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfDataQualityRow.copyWith.fieldName(...)`
|
||||
class _$DataQualityRowCWProxyImpl implements _$DataQualityRowCWProxy {
|
||||
const _$DataQualityRowCWProxyImpl(this._value);
|
||||
|
||||
final DataQualityRow _value;
|
||||
|
||||
@override
|
||||
DataQualityRow checkName(String checkName) => this(checkName: checkName);
|
||||
|
||||
@override
|
||||
DataQualityRow computedAt(DateTime computedAt) =>
|
||||
this(computedAt: computedAt);
|
||||
|
||||
@override
|
||||
DataQualityRow count(int count) => this(count: count);
|
||||
|
||||
@override
|
||||
DataQualityRow detail(String detail) => this(detail: detail);
|
||||
|
||||
@override
|
||||
DataQualityRow id(int id) => this(id: id);
|
||||
|
||||
@override
|
||||
DataQualityRow ref(Map<String, Object>? ref) => this(ref: ref);
|
||||
|
||||
@override
|
||||
DataQualityRow severity(String severity) => this(severity: severity);
|
||||
|
||||
@override
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `DataQualityRow(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// DataQualityRow(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
DataQualityRow call({
|
||||
Object? checkName = const $CopyWithPlaceholder(),
|
||||
Object? computedAt = const $CopyWithPlaceholder(),
|
||||
Object? count = const $CopyWithPlaceholder(),
|
||||
Object? detail = const $CopyWithPlaceholder(),
|
||||
Object? id = const $CopyWithPlaceholder(),
|
||||
Object? ref = const $CopyWithPlaceholder(),
|
||||
Object? severity = const $CopyWithPlaceholder(),
|
||||
}) {
|
||||
return DataQualityRow(
|
||||
checkName: checkName == const $CopyWithPlaceholder()
|
||||
? _value.checkName
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: checkName as String,
|
||||
computedAt: computedAt == const $CopyWithPlaceholder()
|
||||
? _value.computedAt
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: computedAt as DateTime,
|
||||
count: count == const $CopyWithPlaceholder()
|
||||
? _value.count
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: count as int,
|
||||
detail: detail == const $CopyWithPlaceholder()
|
||||
? _value.detail
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: detail as String,
|
||||
id: id == const $CopyWithPlaceholder()
|
||||
? _value.id
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: id as int,
|
||||
ref: ref == const $CopyWithPlaceholder()
|
||||
? _value.ref
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: ref as Map<String, Object>?,
|
||||
severity: severity == const $CopyWithPlaceholder()
|
||||
? _value.severity
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: severity as String,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
extension $DataQualityRowCopyWith on DataQualityRow {
|
||||
/// Returns a callable class that can be used as follows: `instanceOfDataQualityRow.copyWith(...)` or like so:`instanceOfDataQualityRow.copyWith.fieldName(...)`.
|
||||
// ignore: library_private_types_in_public_api
|
||||
_$DataQualityRowCWProxy get copyWith => _$DataQualityRowCWProxyImpl(this);
|
||||
}
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
DataQualityRow _$DataQualityRowFromJson(Map<String, dynamic> json) =>
|
||||
$checkedCreate(
|
||||
'DataQualityRow',
|
||||
json,
|
||||
($checkedConvert) {
|
||||
$checkKeys(
|
||||
json,
|
||||
requiredKeys: const [
|
||||
'check_name',
|
||||
'computed_at',
|
||||
'count',
|
||||
'detail',
|
||||
'id',
|
||||
'ref',
|
||||
'severity',
|
||||
],
|
||||
);
|
||||
final val = DataQualityRow(
|
||||
checkName: $checkedConvert('check_name', (v) => v as String),
|
||||
computedAt: $checkedConvert(
|
||||
'computed_at',
|
||||
(v) => DateTime.parse(v as String),
|
||||
),
|
||||
count: $checkedConvert('count', (v) => (v as num).toInt()),
|
||||
detail: $checkedConvert('detail', (v) => v as String),
|
||||
id: $checkedConvert('id', (v) => (v as num).toInt()),
|
||||
ref: $checkedConvert(
|
||||
'ref',
|
||||
(v) => (v as Map<String, dynamic>?)?.map(
|
||||
(k, e) => MapEntry(k, e as Object),
|
||||
),
|
||||
),
|
||||
severity: $checkedConvert('severity', (v) => v as String),
|
||||
);
|
||||
return val;
|
||||
},
|
||||
fieldKeyMap: const {
|
||||
'checkName': 'check_name',
|
||||
'computedAt': 'computed_at',
|
||||
},
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$DataQualityRowToJson(DataQualityRow instance) =>
|
||||
<String, dynamic>{
|
||||
'check_name': instance.checkName,
|
||||
'computed_at': instance.computedAt.toIso8601String(),
|
||||
'count': instance.count,
|
||||
'detail': instance.detail,
|
||||
'id': instance.id,
|
||||
'ref': instance.ref,
|
||||
'severity': instance.severity,
|
||||
};
|
||||
@@ -0,0 +1,27 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
/// Which feed is the truth for an account's ledger; others become `shadow` events.
|
||||
enum EventSource {
|
||||
@JsonValue(r'tinvest_api')
|
||||
tinvestApi(r'tinvest_api'),
|
||||
@JsonValue(r'report_sber')
|
||||
reportSber(r'report_sber'),
|
||||
@JsonValue(r'report_vtb')
|
||||
reportVtb(r'report_vtb'),
|
||||
@JsonValue(r'manual')
|
||||
manual(r'manual'),
|
||||
@JsonValue(r'unknown_default_open_api')
|
||||
unknownDefaultOpenApi(r'unknown_default_open_api');
|
||||
|
||||
const EventSource(this.value);
|
||||
|
||||
final String value;
|
||||
|
||||
@override
|
||||
String toString() => value;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
enum FlowType {
|
||||
@JsonValue(r'income')
|
||||
income(r'income'),
|
||||
@JsonValue(r'expense')
|
||||
expense(r'expense'),
|
||||
@JsonValue(r'internal_transfer')
|
||||
internalTransfer(r'internal_transfer'),
|
||||
@JsonValue(r'savings_transfer')
|
||||
savingsTransfer(r'savings_transfer'),
|
||||
@JsonValue(r'broker_external_flow')
|
||||
brokerExternalFlow(r'broker_external_flow'),
|
||||
@JsonValue(r'deleted')
|
||||
deleted(r'deleted'),
|
||||
@JsonValue(r'other')
|
||||
other(r'other'),
|
||||
@JsonValue(r'unknown_default_open_api')
|
||||
unknownDefaultOpenApi(r'unknown_default_open_api');
|
||||
|
||||
const FlowType(this.value);
|
||||
|
||||
final String value;
|
||||
|
||||
@override
|
||||
String toString() => value;
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:copy_with_extension/copy_with_extension.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'health.g.dart';
|
||||
|
||||
|
||||
@CopyWith()
|
||||
@JsonSerializable(
|
||||
checked: true,
|
||||
createToJson: true,
|
||||
disallowUnrecognizedKeys: false,
|
||||
explicitToJson: true,
|
||||
)
|
||||
class Health {
|
||||
/// Returns a new [Health] instance.
|
||||
Health({
|
||||
|
||||
required this.database,
|
||||
|
||||
required this.status,
|
||||
|
||||
required this.version,
|
||||
});
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'database',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String database;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'status',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String status;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'version',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String version;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) => identical(this, other) || other is Health &&
|
||||
other.database == database &&
|
||||
other.status == status &&
|
||||
other.version == version;
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
database.hashCode +
|
||||
status.hashCode +
|
||||
version.hashCode;
|
||||
|
||||
factory Health.fromJson(Map<String, dynamic> json) => _$HealthFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$HealthToJson(this);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return toJson().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'health.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// CopyWithGenerator
|
||||
// **************************************************************************
|
||||
|
||||
abstract class _$HealthCWProxy {
|
||||
Health database(String database);
|
||||
|
||||
Health status(String status);
|
||||
|
||||
Health version(String version);
|
||||
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `Health(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// Health(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
Health call({String database, String status, String version});
|
||||
}
|
||||
|
||||
/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfHealth.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfHealth.copyWith.fieldName(...)`
|
||||
class _$HealthCWProxyImpl implements _$HealthCWProxy {
|
||||
const _$HealthCWProxyImpl(this._value);
|
||||
|
||||
final Health _value;
|
||||
|
||||
@override
|
||||
Health database(String database) => this(database: database);
|
||||
|
||||
@override
|
||||
Health status(String status) => this(status: status);
|
||||
|
||||
@override
|
||||
Health version(String version) => this(version: version);
|
||||
|
||||
@override
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `Health(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// Health(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
Health call({
|
||||
Object? database = const $CopyWithPlaceholder(),
|
||||
Object? status = const $CopyWithPlaceholder(),
|
||||
Object? version = const $CopyWithPlaceholder(),
|
||||
}) {
|
||||
return Health(
|
||||
database: database == const $CopyWithPlaceholder()
|
||||
? _value.database
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: database as String,
|
||||
status: status == const $CopyWithPlaceholder()
|
||||
? _value.status
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: status as String,
|
||||
version: version == const $CopyWithPlaceholder()
|
||||
? _value.version
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: version as String,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
extension $HealthCopyWith on Health {
|
||||
/// Returns a callable class that can be used as follows: `instanceOfHealth.copyWith(...)` or like so:`instanceOfHealth.copyWith.fieldName(...)`.
|
||||
// ignore: library_private_types_in_public_api
|
||||
_$HealthCWProxy get copyWith => _$HealthCWProxyImpl(this);
|
||||
}
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
Health _$HealthFromJson(Map<String, dynamic> json) =>
|
||||
$checkedCreate('Health', json, ($checkedConvert) {
|
||||
$checkKeys(json, requiredKeys: const ['database', 'status', 'version']);
|
||||
final val = Health(
|
||||
database: $checkedConvert('database', (v) => v as String),
|
||||
status: $checkedConvert('status', (v) => v as String),
|
||||
version: $checkedConvert('version', (v) => v as String),
|
||||
);
|
||||
return val;
|
||||
});
|
||||
|
||||
Map<String, dynamic> _$HealthToJson(Health instance) => <String, dynamic>{
|
||||
'database': instance.database,
|
||||
'status': instance.status,
|
||||
'version': instance.version,
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
enum JobStatus {
|
||||
@JsonValue(r'queued')
|
||||
queued(r'queued'),
|
||||
@JsonValue(r'running')
|
||||
running(r'running'),
|
||||
@JsonValue(r'done')
|
||||
done(r'done'),
|
||||
@JsonValue(r'error')
|
||||
error(r'error'),
|
||||
@JsonValue(r'unknown_default_open_api')
|
||||
unknownDefaultOpenApi(r'unknown_default_open_api');
|
||||
|
||||
const JobStatus(this.value);
|
||||
|
||||
final String value;
|
||||
|
||||
@override
|
||||
String toString() => value;
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:copy_with_extension/copy_with_extension.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'login_request.g.dart';
|
||||
|
||||
|
||||
@CopyWith()
|
||||
@JsonSerializable(
|
||||
checked: true,
|
||||
createToJson: true,
|
||||
disallowUnrecognizedKeys: false,
|
||||
explicitToJson: true,
|
||||
)
|
||||
class LoginRequest {
|
||||
/// Returns a new [LoginRequest] instance.
|
||||
LoginRequest({
|
||||
|
||||
required this.email,
|
||||
|
||||
required this.password,
|
||||
});
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'email',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String email;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'password',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String password;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) => identical(this, other) || other is LoginRequest &&
|
||||
other.email == email &&
|
||||
other.password == password;
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
email.hashCode +
|
||||
password.hashCode;
|
||||
|
||||
factory LoginRequest.fromJson(Map<String, dynamic> json) => _$LoginRequestFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$LoginRequestToJson(this);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return toJson().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'login_request.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// CopyWithGenerator
|
||||
// **************************************************************************
|
||||
|
||||
abstract class _$LoginRequestCWProxy {
|
||||
LoginRequest email(String email);
|
||||
|
||||
LoginRequest password(String password);
|
||||
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `LoginRequest(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// LoginRequest(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
LoginRequest call({String email, String password});
|
||||
}
|
||||
|
||||
/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfLoginRequest.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfLoginRequest.copyWith.fieldName(...)`
|
||||
class _$LoginRequestCWProxyImpl implements _$LoginRequestCWProxy {
|
||||
const _$LoginRequestCWProxyImpl(this._value);
|
||||
|
||||
final LoginRequest _value;
|
||||
|
||||
@override
|
||||
LoginRequest email(String email) => this(email: email);
|
||||
|
||||
@override
|
||||
LoginRequest password(String password) => this(password: password);
|
||||
|
||||
@override
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `LoginRequest(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// LoginRequest(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
LoginRequest call({
|
||||
Object? email = const $CopyWithPlaceholder(),
|
||||
Object? password = const $CopyWithPlaceholder(),
|
||||
}) {
|
||||
return LoginRequest(
|
||||
email: email == const $CopyWithPlaceholder()
|
||||
? _value.email
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: email as String,
|
||||
password: password == const $CopyWithPlaceholder()
|
||||
? _value.password
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: password as String,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
extension $LoginRequestCopyWith on LoginRequest {
|
||||
/// Returns a callable class that can be used as follows: `instanceOfLoginRequest.copyWith(...)` or like so:`instanceOfLoginRequest.copyWith.fieldName(...)`.
|
||||
// ignore: library_private_types_in_public_api
|
||||
_$LoginRequestCWProxy get copyWith => _$LoginRequestCWProxyImpl(this);
|
||||
}
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
LoginRequest _$LoginRequestFromJson(Map<String, dynamic> json) =>
|
||||
$checkedCreate('LoginRequest', json, ($checkedConvert) {
|
||||
$checkKeys(json, requiredKeys: const ['email', 'password']);
|
||||
final val = LoginRequest(
|
||||
email: $checkedConvert('email', (v) => v as String),
|
||||
password: $checkedConvert('password', (v) => v as String),
|
||||
);
|
||||
return val;
|
||||
});
|
||||
|
||||
Map<String, dynamic> _$LoginRequestToJson(LoginRequest instance) =>
|
||||
<String, dynamic>{'email': instance.email, 'password': instance.password};
|
||||
@@ -0,0 +1,192 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:fintracker_api/src/model/account_balance.dart';
|
||||
import 'package:copy_with_extension/copy_with_extension.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'net_worth_breakdown.g.dart';
|
||||
|
||||
|
||||
@CopyWith()
|
||||
@JsonSerializable(
|
||||
checked: true,
|
||||
createToJson: true,
|
||||
disallowUnrecognizedKeys: false,
|
||||
explicitToJson: true,
|
||||
)
|
||||
class NetWorthBreakdown {
|
||||
/// Returns a new [NetWorthBreakdown] instance.
|
||||
NetWorthBreakdown({
|
||||
|
||||
required this.accounts,
|
||||
|
||||
required this.byCurrency,
|
||||
|
||||
required this.d,
|
||||
|
||||
required this.debtRub,
|
||||
|
||||
required this.investmentRub,
|
||||
|
||||
required this.liquidRub,
|
||||
|
||||
required this.missingFxCount,
|
||||
|
||||
required this.savingsRub,
|
||||
|
||||
required this.totalRub,
|
||||
});
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'accounts',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final List<AccountBalance> accounts;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'by_currency',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final Map<String, String> byCurrency;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'd',
|
||||
required: true,
|
||||
includeIfNull: true,
|
||||
)
|
||||
|
||||
|
||||
final DateTime? d;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'debt_rub',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String debtRub;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'investment_rub',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String investmentRub;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'liquid_rub',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String liquidRub;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'missing_fx_count',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final int missingFxCount;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'savings_rub',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String savingsRub;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'total_rub',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String totalRub;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) => identical(this, other) || other is NetWorthBreakdown &&
|
||||
other.accounts == accounts &&
|
||||
other.byCurrency == byCurrency &&
|
||||
other.d == d &&
|
||||
other.debtRub == debtRub &&
|
||||
other.investmentRub == investmentRub &&
|
||||
other.liquidRub == liquidRub &&
|
||||
other.missingFxCount == missingFxCount &&
|
||||
other.savingsRub == savingsRub &&
|
||||
other.totalRub == totalRub;
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
accounts.hashCode +
|
||||
byCurrency.hashCode +
|
||||
(d == null ? 0 : d.hashCode) +
|
||||
debtRub.hashCode +
|
||||
investmentRub.hashCode +
|
||||
liquidRub.hashCode +
|
||||
missingFxCount.hashCode +
|
||||
savingsRub.hashCode +
|
||||
totalRub.hashCode;
|
||||
|
||||
factory NetWorthBreakdown.fromJson(Map<String, dynamic> json) => _$NetWorthBreakdownFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$NetWorthBreakdownToJson(this);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return toJson().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,223 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'net_worth_breakdown.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// CopyWithGenerator
|
||||
// **************************************************************************
|
||||
|
||||
abstract class _$NetWorthBreakdownCWProxy {
|
||||
NetWorthBreakdown accounts(List<AccountBalance> accounts);
|
||||
|
||||
NetWorthBreakdown byCurrency(Map<String, String> byCurrency);
|
||||
|
||||
NetWorthBreakdown d(DateTime? d);
|
||||
|
||||
NetWorthBreakdown debtRub(String debtRub);
|
||||
|
||||
NetWorthBreakdown investmentRub(String investmentRub);
|
||||
|
||||
NetWorthBreakdown liquidRub(String liquidRub);
|
||||
|
||||
NetWorthBreakdown missingFxCount(int missingFxCount);
|
||||
|
||||
NetWorthBreakdown savingsRub(String savingsRub);
|
||||
|
||||
NetWorthBreakdown totalRub(String totalRub);
|
||||
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `NetWorthBreakdown(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// NetWorthBreakdown(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
NetWorthBreakdown call({
|
||||
List<AccountBalance> accounts,
|
||||
Map<String, String> byCurrency,
|
||||
DateTime? d,
|
||||
String debtRub,
|
||||
String investmentRub,
|
||||
String liquidRub,
|
||||
int missingFxCount,
|
||||
String savingsRub,
|
||||
String totalRub,
|
||||
});
|
||||
}
|
||||
|
||||
/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfNetWorthBreakdown.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfNetWorthBreakdown.copyWith.fieldName(...)`
|
||||
class _$NetWorthBreakdownCWProxyImpl implements _$NetWorthBreakdownCWProxy {
|
||||
const _$NetWorthBreakdownCWProxyImpl(this._value);
|
||||
|
||||
final NetWorthBreakdown _value;
|
||||
|
||||
@override
|
||||
NetWorthBreakdown accounts(List<AccountBalance> accounts) =>
|
||||
this(accounts: accounts);
|
||||
|
||||
@override
|
||||
NetWorthBreakdown byCurrency(Map<String, String> byCurrency) =>
|
||||
this(byCurrency: byCurrency);
|
||||
|
||||
@override
|
||||
NetWorthBreakdown d(DateTime? d) => this(d: d);
|
||||
|
||||
@override
|
||||
NetWorthBreakdown debtRub(String debtRub) => this(debtRub: debtRub);
|
||||
|
||||
@override
|
||||
NetWorthBreakdown investmentRub(String investmentRub) =>
|
||||
this(investmentRub: investmentRub);
|
||||
|
||||
@override
|
||||
NetWorthBreakdown liquidRub(String liquidRub) => this(liquidRub: liquidRub);
|
||||
|
||||
@override
|
||||
NetWorthBreakdown missingFxCount(int missingFxCount) =>
|
||||
this(missingFxCount: missingFxCount);
|
||||
|
||||
@override
|
||||
NetWorthBreakdown savingsRub(String savingsRub) =>
|
||||
this(savingsRub: savingsRub);
|
||||
|
||||
@override
|
||||
NetWorthBreakdown totalRub(String totalRub) => this(totalRub: totalRub);
|
||||
|
||||
@override
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `NetWorthBreakdown(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// NetWorthBreakdown(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
NetWorthBreakdown call({
|
||||
Object? accounts = const $CopyWithPlaceholder(),
|
||||
Object? byCurrency = const $CopyWithPlaceholder(),
|
||||
Object? d = const $CopyWithPlaceholder(),
|
||||
Object? debtRub = const $CopyWithPlaceholder(),
|
||||
Object? investmentRub = const $CopyWithPlaceholder(),
|
||||
Object? liquidRub = const $CopyWithPlaceholder(),
|
||||
Object? missingFxCount = const $CopyWithPlaceholder(),
|
||||
Object? savingsRub = const $CopyWithPlaceholder(),
|
||||
Object? totalRub = const $CopyWithPlaceholder(),
|
||||
}) {
|
||||
return NetWorthBreakdown(
|
||||
accounts: accounts == const $CopyWithPlaceholder()
|
||||
? _value.accounts
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: accounts as List<AccountBalance>,
|
||||
byCurrency: byCurrency == const $CopyWithPlaceholder()
|
||||
? _value.byCurrency
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: byCurrency as Map<String, String>,
|
||||
d: d == const $CopyWithPlaceholder()
|
||||
? _value.d
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: d as DateTime?,
|
||||
debtRub: debtRub == const $CopyWithPlaceholder()
|
||||
? _value.debtRub
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: debtRub as String,
|
||||
investmentRub: investmentRub == const $CopyWithPlaceholder()
|
||||
? _value.investmentRub
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: investmentRub as String,
|
||||
liquidRub: liquidRub == const $CopyWithPlaceholder()
|
||||
? _value.liquidRub
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: liquidRub as String,
|
||||
missingFxCount: missingFxCount == const $CopyWithPlaceholder()
|
||||
? _value.missingFxCount
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: missingFxCount as int,
|
||||
savingsRub: savingsRub == const $CopyWithPlaceholder()
|
||||
? _value.savingsRub
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: savingsRub as String,
|
||||
totalRub: totalRub == const $CopyWithPlaceholder()
|
||||
? _value.totalRub
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: totalRub as String,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
extension $NetWorthBreakdownCopyWith on NetWorthBreakdown {
|
||||
/// Returns a callable class that can be used as follows: `instanceOfNetWorthBreakdown.copyWith(...)` or like so:`instanceOfNetWorthBreakdown.copyWith.fieldName(...)`.
|
||||
// ignore: library_private_types_in_public_api
|
||||
_$NetWorthBreakdownCWProxy get copyWith =>
|
||||
_$NetWorthBreakdownCWProxyImpl(this);
|
||||
}
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
NetWorthBreakdown _$NetWorthBreakdownFromJson(Map<String, dynamic> json) =>
|
||||
$checkedCreate(
|
||||
'NetWorthBreakdown',
|
||||
json,
|
||||
($checkedConvert) {
|
||||
$checkKeys(
|
||||
json,
|
||||
requiredKeys: const [
|
||||
'accounts',
|
||||
'by_currency',
|
||||
'd',
|
||||
'debt_rub',
|
||||
'investment_rub',
|
||||
'liquid_rub',
|
||||
'missing_fx_count',
|
||||
'savings_rub',
|
||||
'total_rub',
|
||||
],
|
||||
);
|
||||
final val = NetWorthBreakdown(
|
||||
accounts: $checkedConvert(
|
||||
'accounts',
|
||||
(v) => (v as List<dynamic>)
|
||||
.map((e) => AccountBalance.fromJson(e as Map<String, dynamic>))
|
||||
.toList(),
|
||||
),
|
||||
byCurrency: $checkedConvert(
|
||||
'by_currency',
|
||||
(v) => Map<String, String>.from(v as Map),
|
||||
),
|
||||
d: $checkedConvert(
|
||||
'd',
|
||||
(v) => v == null ? null : DateTime.parse(v as String),
|
||||
),
|
||||
debtRub: $checkedConvert('debt_rub', (v) => v as String),
|
||||
investmentRub: $checkedConvert('investment_rub', (v) => v as String),
|
||||
liquidRub: $checkedConvert('liquid_rub', (v) => v as String),
|
||||
missingFxCount: $checkedConvert(
|
||||
'missing_fx_count',
|
||||
(v) => (v as num).toInt(),
|
||||
),
|
||||
savingsRub: $checkedConvert('savings_rub', (v) => v as String),
|
||||
totalRub: $checkedConvert('total_rub', (v) => v as String),
|
||||
);
|
||||
return val;
|
||||
},
|
||||
fieldKeyMap: const {
|
||||
'byCurrency': 'by_currency',
|
||||
'debtRub': 'debt_rub',
|
||||
'investmentRub': 'investment_rub',
|
||||
'liquidRub': 'liquid_rub',
|
||||
'missingFxCount': 'missing_fx_count',
|
||||
'savingsRub': 'savings_rub',
|
||||
'totalRub': 'total_rub',
|
||||
},
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$NetWorthBreakdownToJson(NetWorthBreakdown instance) =>
|
||||
<String, dynamic>{
|
||||
'accounts': instance.accounts.map((e) => e.toJson()).toList(),
|
||||
'by_currency': instance.byCurrency,
|
||||
'd': instance.d?.toIso8601String(),
|
||||
'debt_rub': instance.debtRub,
|
||||
'investment_rub': instance.investmentRub,
|
||||
'liquid_rub': instance.liquidRub,
|
||||
'missing_fx_count': instance.missingFxCount,
|
||||
'savings_rub': instance.savingsRub,
|
||||
'total_rub': instance.totalRub,
|
||||
};
|
||||
@@ -0,0 +1,175 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:copy_with_extension/copy_with_extension.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'net_worth_day.g.dart';
|
||||
|
||||
|
||||
@CopyWith()
|
||||
@JsonSerializable(
|
||||
checked: true,
|
||||
createToJson: true,
|
||||
disallowUnrecognizedKeys: false,
|
||||
explicitToJson: true,
|
||||
)
|
||||
class NetWorthDay {
|
||||
/// Returns a new [NetWorthDay] instance.
|
||||
NetWorthDay({
|
||||
|
||||
required this.byCurrency,
|
||||
|
||||
required this.d,
|
||||
|
||||
required this.debtRub,
|
||||
|
||||
required this.investmentRub,
|
||||
|
||||
required this.liquidRub,
|
||||
|
||||
required this.missingFxCount,
|
||||
|
||||
required this.savingsRub,
|
||||
|
||||
required this.totalRub,
|
||||
});
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'by_currency',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final Map<String, String> byCurrency;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'd',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final DateTime d;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'debt_rub',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String debtRub;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'investment_rub',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String investmentRub;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'liquid_rub',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String liquidRub;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'missing_fx_count',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final int missingFxCount;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'savings_rub',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String savingsRub;
|
||||
|
||||
|
||||
|
||||
/// decimal as string
|
||||
@JsonKey(
|
||||
|
||||
name: r'total_rub',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String totalRub;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) => identical(this, other) || other is NetWorthDay &&
|
||||
other.byCurrency == byCurrency &&
|
||||
other.d == d &&
|
||||
other.debtRub == debtRub &&
|
||||
other.investmentRub == investmentRub &&
|
||||
other.liquidRub == liquidRub &&
|
||||
other.missingFxCount == missingFxCount &&
|
||||
other.savingsRub == savingsRub &&
|
||||
other.totalRub == totalRub;
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
byCurrency.hashCode +
|
||||
d.hashCode +
|
||||
debtRub.hashCode +
|
||||
investmentRub.hashCode +
|
||||
liquidRub.hashCode +
|
||||
missingFxCount.hashCode +
|
||||
savingsRub.hashCode +
|
||||
totalRub.hashCode;
|
||||
|
||||
factory NetWorthDay.fromJson(Map<String, dynamic> json) => _$NetWorthDayFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$NetWorthDayToJson(this);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return toJson().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,197 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'net_worth_day.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// CopyWithGenerator
|
||||
// **************************************************************************
|
||||
|
||||
abstract class _$NetWorthDayCWProxy {
|
||||
NetWorthDay byCurrency(Map<String, String> byCurrency);
|
||||
|
||||
NetWorthDay d(DateTime d);
|
||||
|
||||
NetWorthDay debtRub(String debtRub);
|
||||
|
||||
NetWorthDay investmentRub(String investmentRub);
|
||||
|
||||
NetWorthDay liquidRub(String liquidRub);
|
||||
|
||||
NetWorthDay missingFxCount(int missingFxCount);
|
||||
|
||||
NetWorthDay savingsRub(String savingsRub);
|
||||
|
||||
NetWorthDay totalRub(String totalRub);
|
||||
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `NetWorthDay(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// NetWorthDay(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
NetWorthDay call({
|
||||
Map<String, String> byCurrency,
|
||||
DateTime d,
|
||||
String debtRub,
|
||||
String investmentRub,
|
||||
String liquidRub,
|
||||
int missingFxCount,
|
||||
String savingsRub,
|
||||
String totalRub,
|
||||
});
|
||||
}
|
||||
|
||||
/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfNetWorthDay.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfNetWorthDay.copyWith.fieldName(...)`
|
||||
class _$NetWorthDayCWProxyImpl implements _$NetWorthDayCWProxy {
|
||||
const _$NetWorthDayCWProxyImpl(this._value);
|
||||
|
||||
final NetWorthDay _value;
|
||||
|
||||
@override
|
||||
NetWorthDay byCurrency(Map<String, String> byCurrency) =>
|
||||
this(byCurrency: byCurrency);
|
||||
|
||||
@override
|
||||
NetWorthDay d(DateTime d) => this(d: d);
|
||||
|
||||
@override
|
||||
NetWorthDay debtRub(String debtRub) => this(debtRub: debtRub);
|
||||
|
||||
@override
|
||||
NetWorthDay investmentRub(String investmentRub) =>
|
||||
this(investmentRub: investmentRub);
|
||||
|
||||
@override
|
||||
NetWorthDay liquidRub(String liquidRub) => this(liquidRub: liquidRub);
|
||||
|
||||
@override
|
||||
NetWorthDay missingFxCount(int missingFxCount) =>
|
||||
this(missingFxCount: missingFxCount);
|
||||
|
||||
@override
|
||||
NetWorthDay savingsRub(String savingsRub) => this(savingsRub: savingsRub);
|
||||
|
||||
@override
|
||||
NetWorthDay totalRub(String totalRub) => this(totalRub: totalRub);
|
||||
|
||||
@override
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `NetWorthDay(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// NetWorthDay(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
NetWorthDay call({
|
||||
Object? byCurrency = const $CopyWithPlaceholder(),
|
||||
Object? d = const $CopyWithPlaceholder(),
|
||||
Object? debtRub = const $CopyWithPlaceholder(),
|
||||
Object? investmentRub = const $CopyWithPlaceholder(),
|
||||
Object? liquidRub = const $CopyWithPlaceholder(),
|
||||
Object? missingFxCount = const $CopyWithPlaceholder(),
|
||||
Object? savingsRub = const $CopyWithPlaceholder(),
|
||||
Object? totalRub = const $CopyWithPlaceholder(),
|
||||
}) {
|
||||
return NetWorthDay(
|
||||
byCurrency: byCurrency == const $CopyWithPlaceholder()
|
||||
? _value.byCurrency
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: byCurrency as Map<String, String>,
|
||||
d: d == const $CopyWithPlaceholder()
|
||||
? _value.d
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: d as DateTime,
|
||||
debtRub: debtRub == const $CopyWithPlaceholder()
|
||||
? _value.debtRub
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: debtRub as String,
|
||||
investmentRub: investmentRub == const $CopyWithPlaceholder()
|
||||
? _value.investmentRub
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: investmentRub as String,
|
||||
liquidRub: liquidRub == const $CopyWithPlaceholder()
|
||||
? _value.liquidRub
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: liquidRub as String,
|
||||
missingFxCount: missingFxCount == const $CopyWithPlaceholder()
|
||||
? _value.missingFxCount
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: missingFxCount as int,
|
||||
savingsRub: savingsRub == const $CopyWithPlaceholder()
|
||||
? _value.savingsRub
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: savingsRub as String,
|
||||
totalRub: totalRub == const $CopyWithPlaceholder()
|
||||
? _value.totalRub
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: totalRub as String,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
extension $NetWorthDayCopyWith on NetWorthDay {
|
||||
/// Returns a callable class that can be used as follows: `instanceOfNetWorthDay.copyWith(...)` or like so:`instanceOfNetWorthDay.copyWith.fieldName(...)`.
|
||||
// ignore: library_private_types_in_public_api
|
||||
_$NetWorthDayCWProxy get copyWith => _$NetWorthDayCWProxyImpl(this);
|
||||
}
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
NetWorthDay _$NetWorthDayFromJson(Map<String, dynamic> json) => $checkedCreate(
|
||||
'NetWorthDay',
|
||||
json,
|
||||
($checkedConvert) {
|
||||
$checkKeys(
|
||||
json,
|
||||
requiredKeys: const [
|
||||
'by_currency',
|
||||
'd',
|
||||
'debt_rub',
|
||||
'investment_rub',
|
||||
'liquid_rub',
|
||||
'missing_fx_count',
|
||||
'savings_rub',
|
||||
'total_rub',
|
||||
],
|
||||
);
|
||||
final val = NetWorthDay(
|
||||
byCurrency: $checkedConvert(
|
||||
'by_currency',
|
||||
(v) => Map<String, String>.from(v as Map),
|
||||
),
|
||||
d: $checkedConvert('d', (v) => DateTime.parse(v as String)),
|
||||
debtRub: $checkedConvert('debt_rub', (v) => v as String),
|
||||
investmentRub: $checkedConvert('investment_rub', (v) => v as String),
|
||||
liquidRub: $checkedConvert('liquid_rub', (v) => v as String),
|
||||
missingFxCount: $checkedConvert(
|
||||
'missing_fx_count',
|
||||
(v) => (v as num).toInt(),
|
||||
),
|
||||
savingsRub: $checkedConvert('savings_rub', (v) => v as String),
|
||||
totalRub: $checkedConvert('total_rub', (v) => v as String),
|
||||
);
|
||||
return val;
|
||||
},
|
||||
fieldKeyMap: const {
|
||||
'byCurrency': 'by_currency',
|
||||
'debtRub': 'debt_rub',
|
||||
'investmentRub': 'investment_rub',
|
||||
'liquidRub': 'liquid_rub',
|
||||
'missingFxCount': 'missing_fx_count',
|
||||
'savingsRub': 'savings_rub',
|
||||
'totalRub': 'total_rub',
|
||||
},
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$NetWorthDayToJson(NetWorthDay instance) =>
|
||||
<String, dynamic>{
|
||||
'by_currency': instance.byCurrency,
|
||||
'd': instance.d.toIso8601String(),
|
||||
'debt_rub': instance.debtRub,
|
||||
'investment_rub': instance.investmentRub,
|
||||
'liquid_rub': instance.liquidRub,
|
||||
'missing_fx_count': instance.missingFxCount,
|
||||
'savings_rub': instance.savingsRub,
|
||||
'total_rub': instance.totalRub,
|
||||
};
|
||||
@@ -0,0 +1,106 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:copy_with_extension/copy_with_extension.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'problem.g.dart';
|
||||
|
||||
|
||||
@CopyWith()
|
||||
@JsonSerializable(
|
||||
checked: true,
|
||||
createToJson: true,
|
||||
disallowUnrecognizedKeys: false,
|
||||
explicitToJson: true,
|
||||
)
|
||||
class Problem {
|
||||
/// Returns a new [Problem] instance.
|
||||
Problem({
|
||||
|
||||
this.detail,
|
||||
|
||||
this.errors,
|
||||
|
||||
required this.status,
|
||||
|
||||
required this.title,
|
||||
});
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'detail',
|
||||
required: false,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String? detail;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'errors',
|
||||
required: false,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final List<Object>? errors;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'status',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final int status;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'title',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String title;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) => identical(this, other) || other is Problem &&
|
||||
other.detail == detail &&
|
||||
other.errors == errors &&
|
||||
other.status == status &&
|
||||
other.title == title;
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
detail.hashCode +
|
||||
errors.hashCode +
|
||||
status.hashCode +
|
||||
title.hashCode;
|
||||
|
||||
factory Problem.fromJson(Map<String, dynamic> json) => _$ProblemFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$ProblemToJson(this);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return toJson().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,114 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'problem.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// CopyWithGenerator
|
||||
// **************************************************************************
|
||||
|
||||
abstract class _$ProblemCWProxy {
|
||||
Problem detail(String? detail);
|
||||
|
||||
Problem errors(List<Object>? errors);
|
||||
|
||||
Problem status(int status);
|
||||
|
||||
Problem title(String title);
|
||||
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `Problem(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// Problem(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
Problem call({
|
||||
String? detail,
|
||||
List<Object>? errors,
|
||||
int status,
|
||||
String title,
|
||||
});
|
||||
}
|
||||
|
||||
/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfProblem.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfProblem.copyWith.fieldName(...)`
|
||||
class _$ProblemCWProxyImpl implements _$ProblemCWProxy {
|
||||
const _$ProblemCWProxyImpl(this._value);
|
||||
|
||||
final Problem _value;
|
||||
|
||||
@override
|
||||
Problem detail(String? detail) => this(detail: detail);
|
||||
|
||||
@override
|
||||
Problem errors(List<Object>? errors) => this(errors: errors);
|
||||
|
||||
@override
|
||||
Problem status(int status) => this(status: status);
|
||||
|
||||
@override
|
||||
Problem title(String title) => this(title: title);
|
||||
|
||||
@override
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `Problem(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// Problem(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
Problem call({
|
||||
Object? detail = const $CopyWithPlaceholder(),
|
||||
Object? errors = const $CopyWithPlaceholder(),
|
||||
Object? status = const $CopyWithPlaceholder(),
|
||||
Object? title = const $CopyWithPlaceholder(),
|
||||
}) {
|
||||
return Problem(
|
||||
detail: detail == const $CopyWithPlaceholder()
|
||||
? _value.detail
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: detail as String?,
|
||||
errors: errors == const $CopyWithPlaceholder()
|
||||
? _value.errors
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: errors as List<Object>?,
|
||||
status: status == const $CopyWithPlaceholder()
|
||||
? _value.status
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: status as int,
|
||||
title: title == const $CopyWithPlaceholder()
|
||||
? _value.title
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: title as String,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
extension $ProblemCopyWith on Problem {
|
||||
/// Returns a callable class that can be used as follows: `instanceOfProblem.copyWith(...)` or like so:`instanceOfProblem.copyWith.fieldName(...)`.
|
||||
// ignore: library_private_types_in_public_api
|
||||
_$ProblemCWProxy get copyWith => _$ProblemCWProxyImpl(this);
|
||||
}
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
Problem _$ProblemFromJson(Map<String, dynamic> json) =>
|
||||
$checkedCreate('Problem', json, ($checkedConvert) {
|
||||
$checkKeys(json, requiredKeys: const ['status', 'title']);
|
||||
final val = Problem(
|
||||
detail: $checkedConvert('detail', (v) => v as String?),
|
||||
errors: $checkedConvert(
|
||||
'errors',
|
||||
(v) => (v as List<dynamic>?)?.map((e) => e as Object).toList(),
|
||||
),
|
||||
status: $checkedConvert('status', (v) => (v as num).toInt()),
|
||||
title: $checkedConvert('title', (v) => v as String),
|
||||
);
|
||||
return val;
|
||||
});
|
||||
|
||||
Map<String, dynamic> _$ProblemToJson(Problem instance) => <String, dynamic>{
|
||||
'detail': ?instance.detail,
|
||||
'errors': ?instance.errors,
|
||||
'status': instance.status,
|
||||
'title': instance.title,
|
||||
};
|
||||
@@ -0,0 +1,122 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:copy_with_extension/copy_with_extension.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'refresh_log_out.g.dart';
|
||||
|
||||
|
||||
@CopyWith()
|
||||
@JsonSerializable(
|
||||
checked: true,
|
||||
createToJson: true,
|
||||
disallowUnrecognizedKeys: false,
|
||||
explicitToJson: true,
|
||||
)
|
||||
class RefreshLogOut {
|
||||
/// Returns a new [RefreshLogOut] instance.
|
||||
RefreshLogOut({
|
||||
|
||||
required this.error,
|
||||
|
||||
required this.finishedAt,
|
||||
|
||||
required this.id,
|
||||
|
||||
required this.startedAt,
|
||||
|
||||
required this.trigger,
|
||||
});
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'error',
|
||||
required: true,
|
||||
includeIfNull: true,
|
||||
)
|
||||
|
||||
|
||||
final String? error;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'finished_at',
|
||||
required: true,
|
||||
includeIfNull: true,
|
||||
)
|
||||
|
||||
|
||||
final DateTime? finishedAt;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'id',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final int id;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'started_at',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final DateTime startedAt;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'trigger',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String trigger;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) => identical(this, other) || other is RefreshLogOut &&
|
||||
other.error == error &&
|
||||
other.finishedAt == finishedAt &&
|
||||
other.id == id &&
|
||||
other.startedAt == startedAt &&
|
||||
other.trigger == trigger;
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
(error == null ? 0 : error.hashCode) +
|
||||
(finishedAt == null ? 0 : finishedAt.hashCode) +
|
||||
id.hashCode +
|
||||
startedAt.hashCode +
|
||||
trigger.hashCode;
|
||||
|
||||
factory RefreshLogOut.fromJson(Map<String, dynamic> json) => _$RefreshLogOutFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$RefreshLogOutToJson(this);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return toJson().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,149 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'refresh_log_out.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// CopyWithGenerator
|
||||
// **************************************************************************
|
||||
|
||||
abstract class _$RefreshLogOutCWProxy {
|
||||
RefreshLogOut error(String? error);
|
||||
|
||||
RefreshLogOut finishedAt(DateTime? finishedAt);
|
||||
|
||||
RefreshLogOut id(int id);
|
||||
|
||||
RefreshLogOut startedAt(DateTime startedAt);
|
||||
|
||||
RefreshLogOut trigger(String trigger);
|
||||
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `RefreshLogOut(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// RefreshLogOut(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
RefreshLogOut call({
|
||||
String? error,
|
||||
DateTime? finishedAt,
|
||||
int id,
|
||||
DateTime startedAt,
|
||||
String trigger,
|
||||
});
|
||||
}
|
||||
|
||||
/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfRefreshLogOut.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfRefreshLogOut.copyWith.fieldName(...)`
|
||||
class _$RefreshLogOutCWProxyImpl implements _$RefreshLogOutCWProxy {
|
||||
const _$RefreshLogOutCWProxyImpl(this._value);
|
||||
|
||||
final RefreshLogOut _value;
|
||||
|
||||
@override
|
||||
RefreshLogOut error(String? error) => this(error: error);
|
||||
|
||||
@override
|
||||
RefreshLogOut finishedAt(DateTime? finishedAt) =>
|
||||
this(finishedAt: finishedAt);
|
||||
|
||||
@override
|
||||
RefreshLogOut id(int id) => this(id: id);
|
||||
|
||||
@override
|
||||
RefreshLogOut startedAt(DateTime startedAt) => this(startedAt: startedAt);
|
||||
|
||||
@override
|
||||
RefreshLogOut trigger(String trigger) => this(trigger: trigger);
|
||||
|
||||
@override
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `RefreshLogOut(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// RefreshLogOut(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
RefreshLogOut call({
|
||||
Object? error = const $CopyWithPlaceholder(),
|
||||
Object? finishedAt = const $CopyWithPlaceholder(),
|
||||
Object? id = const $CopyWithPlaceholder(),
|
||||
Object? startedAt = const $CopyWithPlaceholder(),
|
||||
Object? trigger = const $CopyWithPlaceholder(),
|
||||
}) {
|
||||
return RefreshLogOut(
|
||||
error: error == const $CopyWithPlaceholder()
|
||||
? _value.error
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: error as String?,
|
||||
finishedAt: finishedAt == const $CopyWithPlaceholder()
|
||||
? _value.finishedAt
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: finishedAt as DateTime?,
|
||||
id: id == const $CopyWithPlaceholder()
|
||||
? _value.id
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: id as int,
|
||||
startedAt: startedAt == const $CopyWithPlaceholder()
|
||||
? _value.startedAt
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: startedAt as DateTime,
|
||||
trigger: trigger == const $CopyWithPlaceholder()
|
||||
? _value.trigger
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: trigger as String,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
extension $RefreshLogOutCopyWith on RefreshLogOut {
|
||||
/// Returns a callable class that can be used as follows: `instanceOfRefreshLogOut.copyWith(...)` or like so:`instanceOfRefreshLogOut.copyWith.fieldName(...)`.
|
||||
// ignore: library_private_types_in_public_api
|
||||
_$RefreshLogOutCWProxy get copyWith => _$RefreshLogOutCWProxyImpl(this);
|
||||
}
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
RefreshLogOut _$RefreshLogOutFromJson(Map<String, dynamic> json) =>
|
||||
$checkedCreate(
|
||||
'RefreshLogOut',
|
||||
json,
|
||||
($checkedConvert) {
|
||||
$checkKeys(
|
||||
json,
|
||||
requiredKeys: const [
|
||||
'error',
|
||||
'finished_at',
|
||||
'id',
|
||||
'started_at',
|
||||
'trigger',
|
||||
],
|
||||
);
|
||||
final val = RefreshLogOut(
|
||||
error: $checkedConvert('error', (v) => v as String?),
|
||||
finishedAt: $checkedConvert(
|
||||
'finished_at',
|
||||
(v) => v == null ? null : DateTime.parse(v as String),
|
||||
),
|
||||
id: $checkedConvert('id', (v) => (v as num).toInt()),
|
||||
startedAt: $checkedConvert(
|
||||
'started_at',
|
||||
(v) => DateTime.parse(v as String),
|
||||
),
|
||||
trigger: $checkedConvert('trigger', (v) => v as String),
|
||||
);
|
||||
return val;
|
||||
},
|
||||
fieldKeyMap: const {
|
||||
'finishedAt': 'finished_at',
|
||||
'startedAt': 'started_at',
|
||||
},
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$RefreshLogOutToJson(RefreshLogOut instance) =>
|
||||
<String, dynamic>{
|
||||
'error': instance.error,
|
||||
'finished_at': instance.finishedAt?.toIso8601String(),
|
||||
'id': instance.id,
|
||||
'started_at': instance.startedAt.toIso8601String(),
|
||||
'trigger': instance.trigger,
|
||||
};
|
||||
@@ -0,0 +1,58 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:copy_with_extension/copy_with_extension.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'refresh_request.g.dart';
|
||||
|
||||
|
||||
@CopyWith()
|
||||
@JsonSerializable(
|
||||
checked: true,
|
||||
createToJson: true,
|
||||
disallowUnrecognizedKeys: false,
|
||||
explicitToJson: true,
|
||||
)
|
||||
class RefreshRequest {
|
||||
/// Returns a new [RefreshRequest] instance.
|
||||
RefreshRequest({
|
||||
|
||||
required this.refreshToken,
|
||||
});
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'refresh_token',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String refreshToken;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) => identical(this, other) || other is RefreshRequest &&
|
||||
other.refreshToken == refreshToken;
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
refreshToken.hashCode;
|
||||
|
||||
factory RefreshRequest.fromJson(Map<String, dynamic> json) => _$RefreshRequestFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$RefreshRequestToJson(this);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return toJson().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'refresh_request.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// CopyWithGenerator
|
||||
// **************************************************************************
|
||||
|
||||
abstract class _$RefreshRequestCWProxy {
|
||||
RefreshRequest refreshToken(String refreshToken);
|
||||
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `RefreshRequest(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// RefreshRequest(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
RefreshRequest call({String refreshToken});
|
||||
}
|
||||
|
||||
/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfRefreshRequest.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfRefreshRequest.copyWith.fieldName(...)`
|
||||
class _$RefreshRequestCWProxyImpl implements _$RefreshRequestCWProxy {
|
||||
const _$RefreshRequestCWProxyImpl(this._value);
|
||||
|
||||
final RefreshRequest _value;
|
||||
|
||||
@override
|
||||
RefreshRequest refreshToken(String refreshToken) =>
|
||||
this(refreshToken: refreshToken);
|
||||
|
||||
@override
|
||||
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `RefreshRequest(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
|
||||
///
|
||||
/// Usage
|
||||
/// ```dart
|
||||
/// RefreshRequest(...).copyWith(id: 12, name: "My name")
|
||||
/// ````
|
||||
RefreshRequest call({Object? refreshToken = const $CopyWithPlaceholder()}) {
|
||||
return RefreshRequest(
|
||||
refreshToken: refreshToken == const $CopyWithPlaceholder()
|
||||
? _value.refreshToken
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: refreshToken as String,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
extension $RefreshRequestCopyWith on RefreshRequest {
|
||||
/// Returns a callable class that can be used as follows: `instanceOfRefreshRequest.copyWith(...)` or like so:`instanceOfRefreshRequest.copyWith.fieldName(...)`.
|
||||
// ignore: library_private_types_in_public_api
|
||||
_$RefreshRequestCWProxy get copyWith => _$RefreshRequestCWProxyImpl(this);
|
||||
}
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
RefreshRequest _$RefreshRequestFromJson(Map<String, dynamic> json) =>
|
||||
$checkedCreate('RefreshRequest', json, ($checkedConvert) {
|
||||
$checkKeys(json, requiredKeys: const ['refresh_token']);
|
||||
final val = RefreshRequest(
|
||||
refreshToken: $checkedConvert('refresh_token', (v) => v as String),
|
||||
);
|
||||
return val;
|
||||
}, fieldKeyMap: const {'refreshToken': 'refresh_token'});
|
||||
|
||||
Map<String, dynamic> _$RefreshRequestToJson(RefreshRequest instance) =>
|
||||
<String, dynamic>{'refresh_token': instance.refreshToken};
|
||||
@@ -0,0 +1,158 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
|
||||
// ignore_for_file: unused_element
|
||||
import 'package:fintracker_api/src/model/rule_match_type.dart';
|
||||
import 'package:fintracker_api/src/model/rule_kind.dart';
|
||||
import 'package:copy_with_extension/copy_with_extension.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'rule_create.g.dart';
|
||||
|
||||
|
||||
@CopyWith()
|
||||
@JsonSerializable(
|
||||
checked: true,
|
||||
createToJson: true,
|
||||
disallowUnrecognizedKeys: false,
|
||||
explicitToJson: true,
|
||||
)
|
||||
class RuleCreate {
|
||||
/// Returns a new [RuleCreate] instance.
|
||||
RuleCreate({
|
||||
|
||||
this.enabled = true,
|
||||
|
||||
required this.kind,
|
||||
|
||||
required this.matchType,
|
||||
|
||||
this.note,
|
||||
|
||||
required this.pattern,
|
||||
|
||||
this.priority = 100,
|
||||
|
||||
this.value,
|
||||
});
|
||||
|
||||
@JsonKey(
|
||||
defaultValue: true,
|
||||
name: r'enabled',
|
||||
required: false,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final bool? enabled;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'kind',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
unknownEnumValue: RuleKind.unknownDefaultOpenApi,
|
||||
)
|
||||
|
||||
|
||||
final RuleKind kind;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'match_type',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
unknownEnumValue: RuleMatchType.unknownDefaultOpenApi,
|
||||
)
|
||||
|
||||
|
||||
final RuleMatchType matchType;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'note',
|
||||
required: false,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String? note;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'pattern',
|
||||
required: true,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String pattern;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
defaultValue: 100,
|
||||
name: r'priority',
|
||||
required: false,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final int? priority;
|
||||
|
||||
|
||||
|
||||
@JsonKey(
|
||||
|
||||
name: r'value',
|
||||
required: false,
|
||||
includeIfNull: false,
|
||||
)
|
||||
|
||||
|
||||
final String? value;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) => identical(this, other) || other is RuleCreate &&
|
||||
other.enabled == enabled &&
|
||||
other.kind == kind &&
|
||||
other.matchType == matchType &&
|
||||
other.note == note &&
|
||||
other.pattern == pattern &&
|
||||
other.priority == priority &&
|
||||
other.value == value;
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
enabled.hashCode +
|
||||
kind.hashCode +
|
||||
matchType.hashCode +
|
||||
(note == null ? 0 : note.hashCode) +
|
||||
pattern.hashCode +
|
||||
priority.hashCode +
|
||||
(value == null ? 0 : value.hashCode);
|
||||
|
||||
factory RuleCreate.fromJson(Map<String, dynamic> json) => _$RuleCreateFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$RuleCreateToJson(this);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return toJson().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user