Skip to content

akhil/1340/fetching_the_list_of_wallets_available_to_create #290

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
6d12981
naif/add_dart_new_features_to_code_generator (#244)
naif-deriv Feb 21, 2023
ba31043
Merge branch 'dev' into flutter-version-3
hamed-rezaee Mar 27, 2023
8c01473
Merge branch 'dev' into flutter-version-3
hamed-rezaee Mar 27, 2023
fbf0ffe
Merge branch 'dev' into flutter-version-3
hamed-rezaee Mar 30, 2023
9d6e570
sahani/upgrade_deriv_api_to_flutter_version_3 (#251)
sahani-deriv Apr 19, 2023
e1544fd
Merge branch 'dev' into flutter-version-3
hamed-rezaee May 25, 2023
8ba6902
bassam/upgrade_to_flutter_3.10.0 (#254)
bassam-deriv May 25, 2023
d0facdf
bassam/migrate_flutter_version_to_3_10 (#261)
bassam-deriv Jun 1, 2023
665e9a7
Merge branch 'dev' into flutter-version-3
hamed-rezaee Jun 1, 2023
3db0b4a
hamed/update_dependencies (#264)
hamed-rezaee Jun 1, 2023
198ac7c
sahani/ upgrade_kotlin_version (#266)
sahani-deriv Jun 12, 2023
11a07ac
hamed/improve_test_coverage (#265)
hamed-rezaee Jun 15, 2023
ddc27f4
Merge branch 'dev' into flutter-version-3
hamed-rezaee Jun 23, 2023
8cbb46c
Merge branch 'dev' into flutter-version-3
hamed-rezaee Aug 3, 2023
2973132
MOBC-450/fix_connectivity_issue (#275)
sahani-deriv Aug 10, 2023
83b17b7
add auth endpoint to connection_information.dart class
osama-deriv Sep 6, 2023
f0d8352
add auth endpoint to connection_cubit.dart
osama-deriv Sep 6, 2023
b70287a
hamed/remove_http_client (#280)
hamed-rezaee Sep 6, 2023
de4a7dd
fix test
osama-deriv Sep 11, 2023
c3a2a71
ramin/update_package_for_wallet (#281)
ramin-deriv Sep 27, 2023
7e829ef
weng/updated_p2p_order_list_api_request (#282)
weng-deriv Oct 11, 2023
58038b0
Merge pull request #279 from osama-deriv/use-auth-for-redirection
waqas-younas-deriv Oct 25, 2023
13ce004
waqas/add_language_support_to_deriv_api
waqas-younas-deriv Nov 14, 2023
b4db925
chore: fix dependency injector branch (#289)
balakrishna-deriv Nov 23, 2023
2914565
Ramin/update_for_accumulators (#288)
ramin-deriv Dec 6, 2023
3a957ce
Updated p2p api send and receive requests for flexible order time sel…
weng-deriv Dec 6, 2023
10e5608
fix: deriv_dependency_injector versioning (#284)
sahani-deriv Dec 6, 2023
aa273fc
Merge pull request #287 from waqas-younas-deriv/add_language_change_s…
waqas-younas-deriv Dec 8, 2023
8167835
added available_accounts API endpoint
akhil-deriv Dec 8, 2023
a96d28e
updated sample app
akhil-deriv Dec 11, 2023
e2c7c76
Update lib/basic_api/generated/methods/available_accounts_receive_met…
akhil-deriv Dec 11, 2023
686a96b
added available accounts response extended
akhil-deriv Dec 13, 2023
d1b4762
Update lib/api/response/available_accounts_response_extended.dart
akhil-deriv Dec 13, 2023
42d1d21
Update lib/api/response/available_accounts_response_extended.dart
akhil-deriv Dec 13, 2023
0403fa1
added available accounts to response mapper helper
akhil-deriv Dec 18, 2023
fb03e94
Merge remote-tracking branch 'upstream/flutter-version-3' into akhil/…
akhil-deriv Dec 20, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 3 additions & 4 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ analyzer:
exclude:
- lib/basic_api/generated/api.dart

strong-mode:
implicit-dynamic: false

language:
strict-raw-types: true
errors:
todo: ignore
missing_required_param: warning
Expand Down Expand Up @@ -92,7 +92,6 @@ linter:
- prefer_const_literals_to_create_immutables
- prefer_constructors_over_static_methods
- prefer_contains
- prefer_equal_for_default_values
- prefer_expression_function_bodies # https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#consider-using--for-short-functions-and-methods
- prefer_final_fields
- prefer_final_in_for_each
Expand Down
4 changes: 2 additions & 2 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ group 'com.deriv.flutter_deriv_api'
version '1.0-SNAPSHOT'

buildscript {
ext.kotlin_version = '1.3.50'
ext.kotlin_version = '1.7.10'
repositories {
google()
jcenter()
}

dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath 'com.android.tools.build:gradle:7.3.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
Expand Down
2 changes: 1 addition & 1 deletion android/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-all.zip
43 changes: 25 additions & 18 deletions api_builder.dart
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,8 @@ class APIBuilder extends Builder {
/// Initialize $classFullName.
const $classFullName({
${_getConstructorParameters(methodName, schema, schemaType, properties)}
${_getSuperClassParameters(schemaType)},
}): super(${_getSuperClassCallParameters(schemaType, methodName)},);
${_getSuperClassConstructorParameters(schemaType, methodName)},
});

${_getFromJsonMethod(classFullName, schema, schemaType, properties)}

Expand Down Expand Up @@ -169,6 +169,7 @@ class APIBuilder extends Builder {
return '${_isFieldRequired(key, schemaType, property) ? 'required ' : ''} this.${ReCase(key).camelCase}';
},
).join(', ');

return fields.isEmpty ? result : '$result , ';
}

Expand Down Expand Up @@ -380,6 +381,7 @@ class APIBuilder extends Builder {
fields.map(
(String key) {
final String name = ReCase(key).camelCase;

return '$name: $name ?? this.$name';
},
).join(', '),
Expand All @@ -388,40 +390,45 @@ class APIBuilder extends Builder {
..write('${_getSupperClassAssignments(schemaType)},);');
}

static String _getSuperClassParameters(String? schemaType) {
static String _getSuperClassParameters(String schemaType) {
final Map<String, String> superClassFields =
_getSuperClassFields(schemaType);

return superClassFields.keys
.map((String key) =>
'${typeMap[superClassFields[key]!]} ${ReCase(key).camelCase}')
.join(', ');
final Iterable<String> parameters = superClassFields.keys.map((String key) {
final String type = typeMap[superClassFields[key]!] ?? 'dynamic';
final String parameterName = ReCase(key).camelCase;

return '$type $parameterName';
});

return parameters.join(', ');
}

static String _getSuperClassCallParameters(
static String _getSuperClassConstructorParameters(
String schemaType,
String methodName,
) {
final StringBuffer superCallParameters = StringBuffer();
final Map<String, String> superClassFields =
_getSuperClassFields(schemaType);
final StringBuffer superClassParameters = StringBuffer();

if (schemaType == 'send') {
superCallParameters.write('msgType: \'$methodName\',');
superClassParameters.write('super.msgType = \'$methodName\', ');
}

superCallParameters.write(_getSuperClassFields(schemaType).keys.map(
(String key) {
final String parameterName = ReCase(key).camelCase;
return '$parameterName: $parameterName';
},
).join(', '));
final Iterable<String> parameters = superClassFields.keys
.map((String key) => 'super.${ReCase(key).camelCase}');

return superCallParameters.toString();
superClassParameters.write(parameters.join(', '));

return superClassParameters.toString();
}

static String _getSupperClassAssignments(String schemaType) =>
_getSuperClassFields(schemaType).keys.map(
(String key) {
final String propertyName = ReCase(key).camelCase;

return '$propertyName: $propertyName ?? this.$propertyName';
},
).join(', ');
Expand Down Expand Up @@ -458,7 +465,7 @@ class APIBuilder extends Builder {
}
}

class GeneratedResponseJson extends Comparable<GeneratedResponseJson> {
class GeneratedResponseJson implements Comparable<GeneratedResponseJson> {
GeneratedResponseJson({
this.msgType,
this.fileName,
Expand Down
2 changes: 1 addition & 1 deletion binary-websocket-api
2 changes: 1 addition & 1 deletion example/android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
compileSdkVersion 28
compileSdkVersion 33

sourceSets {
main.java.srcDirs += 'src/main/kotlin'
Expand Down
6 changes: 3 additions & 3 deletions example/android/build.gradle
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
buildscript {
ext.kotlin_version = '1.3.50'
ext.kotlin_version = '1.7.10'
repositories {
google()
jcenter()
}

dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath 'com.android.tools.build:gradle:7.3.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
Expand All @@ -26,6 +26,6 @@ subprojects {
project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
tasks.register("clean", Delete) {
delete rootProject.buildDir
}
2 changes: 1 addition & 1 deletion example/android/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-all.zip
59 changes: 34 additions & 25 deletions example/lib/blocs/active_symbols/active_symbols_bloc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,31 +11,40 @@ part 'active_symbols_state.dart';
/// ActiveSymbolsBloc
class ActiveSymbolsBloc extends Bloc<ActiveSymbolsEvent, ActiveSymbolsState> {
/// ActiveSymbolsBloc initializer
ActiveSymbolsBloc() : super(ActiveSymbolsLoading());

@override
Stream<ActiveSymbolsState> mapEventToState(ActiveSymbolsEvent event) async* {
if (event is FetchActiveSymbols) {
yield ActiveSymbolsLoading();

try {
final ActiveSymbolsResponse symbols = await _fetchActiveSymbols();
yield ActiveSymbolsLoaded(activeSymbols: symbols.activeSymbols!);
} on ActiveSymbolsException catch (error) {
yield ActiveSymbolsError(error.message);
}
} else if (event is SelectActiveSymbol) {
if (state is ActiveSymbolsLoaded) {
final ActiveSymbolsLoaded loadedState = state as ActiveSymbolsLoaded;

yield ActiveSymbolsLoaded(
activeSymbols: loadedState.activeSymbols,
selectedSymbol: loadedState.activeSymbols[event.index],
);
} else {
yield ActiveSymbolsLoading();
add(FetchActiveSymbols());
}
ActiveSymbolsBloc() : super(ActiveSymbolsLoading()) {
on<FetchActiveSymbols>(
(FetchActiveSymbols event, Emitter<ActiveSymbolsState> emit) =>
_handleFetchActiveSymbols(event, emit));

on<SelectActiveSymbol>(
(SelectActiveSymbol event, Emitter<ActiveSymbolsState> emit) =>
_handleSelectActiveSymbol(event, emit));
}

Future<void> _handleFetchActiveSymbols(
FetchActiveSymbols event, Emitter<ActiveSymbolsState> emit) async {
emit(ActiveSymbolsLoading());

try {
final ActiveSymbolsResponse symbols = await _fetchActiveSymbols();
emit(ActiveSymbolsLoaded(activeSymbols: symbols.activeSymbols!));
} on BaseAPIException catch (error) {
emit(ActiveSymbolsError(error.message));
}
}

Future<void> _handleSelectActiveSymbol(
SelectActiveSymbol event, Emitter<ActiveSymbolsState> emit) async {
if (state is ActiveSymbolsLoaded) {
final ActiveSymbolsLoaded loadedState = state as ActiveSymbolsLoaded;

emit(ActiveSymbolsLoaded(
activeSymbols: loadedState.activeSymbols,
selectedSymbol: loadedState.activeSymbols[event.index],
));
} else {
emit(ActiveSymbolsLoading());
add(FetchActiveSymbols());
}
}

Expand Down
61 changes: 36 additions & 25 deletions example/lib/blocs/available_contracts/available_contracts_bloc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -26,36 +26,47 @@ class AvailableContractsBloc
);
}
});

on<FetchAvailableContracts>((FetchAvailableContracts event,
Emitter<AvailableContractsState> emit) =>
_handleFetchAvailableContracts(event, emit));

on<SelectContract>(
(SelectContract event, Emitter<AvailableContractsState> emit) =>
_handleSelectContract(event, emit));
}

@override
Stream<AvailableContractsState> mapEventToState(
AvailableContractsEvent event,
) async* {
if (event is FetchAvailableContracts) {
yield AvailableContractsLoading();
Future<void> _handleFetchAvailableContracts(
FetchAvailableContracts event,
Emitter<AvailableContractsState> emit,
) async {
emit(AvailableContractsLoading());

try {
final ContractsForResponse contracts =
await _fetchAvailableContracts(event.activeSymbol);
try {
final ContractsForResponse contracts =
await _fetchAvailableContracts(event.activeSymbol);

yield AvailableContractsLoaded(contracts: contracts.contractsFor!);
} on ContractsForSymbolException catch (error) {
yield AvailableContractsError(error.message);
}
} else if (event is SelectContract) {
if (state is AvailableContractsLoaded) {
final AvailableContractsLoaded loadedState =
state as AvailableContractsLoaded;
emit(AvailableContractsLoaded(contracts: contracts.contractsFor!));
} on BaseAPIException catch (error) {
emit(AvailableContractsError(error.message));
}
}

yield AvailableContractsLoaded(
contracts: loadedState.contracts,
selectedContract: loadedState.contracts.available[event.index],
);
} else {
yield AvailableContractsLoading();
add(FetchAvailableContracts());
}
void _handleSelectContract(
SelectContract event,
Emitter<AvailableContractsState> emit,
) {
if (state is AvailableContractsLoaded) {
final AvailableContractsLoaded loadedState =
state as AvailableContractsLoaded;

emit(AvailableContractsLoaded(
contracts: loadedState.contracts,
selectedContract: loadedState.contracts.available[event.index],
));
} else {
emit(AvailableContractsLoading());
add(FetchAvailableContracts());
}
}

Expand Down
41 changes: 23 additions & 18 deletions example/lib/blocs/price_proposal/price_proposal_bloc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -22,28 +22,33 @@ class PriceProposalBloc extends Bloc<PriceProposalEvent, PriceProposalState> {
add(SubscribeProposal(state.selectedContract));
}
});

on<SubscribeProposal>(
(SubscribeProposal event, Emitter<PriceProposalState> emit) =>
_handleSubscribeProposal(event, emit));

on<YieldProposalLoaded>(
(YieldProposalLoaded event, Emitter<PriceProposalState> emit) =>
emit(PriceProposalLoaded(event.proposal.proposal)));

on<YieldError>((YieldError event, Emitter<PriceProposalState> emit) =>
emit(PriceProposalError(event.message)));
}

@override
Stream<PriceProposalState> mapEventToState(
PriceProposalEvent event,
) async* {
if (event is SubscribeProposal) {
yield PriceProposalLoading();
Future<void> _handleSubscribeProposal(
SubscribeProposal event,
Emitter<PriceProposalState> emit,
) async {
emit(PriceProposalLoading());

await _unsubscribeProposal();
await _unsubscribeProposal();

_subscribeProposal(event)
.handleError((dynamic error) => error is ContractOperationException
? add(YieldError(error.message))
: add(YieldError(error.toString())))
.listen((ProposalResponse? proposal) =>
add(YieldProposalLoaded(proposal!)));
} else if (event is YieldProposalLoaded) {
yield PriceProposalLoaded(event.proposal.proposal);
} else if (event is YieldError) {
yield PriceProposalError(event.message);
}
_subscribeProposal(event)
.handleError((dynamic error) => error is BaseAPIException
? add(YieldError(error.message))
: add(YieldError(error.toString())))
.listen((ProposalResponse? proposal) =>
add(YieldProposalLoaded(proposal!)));
}

Stream<ProposalResponse?> _subscribeProposal(SubscribeProposal event) =>
Expand Down
Loading