From 7a7ec3a0d78edca40f1d68e13e25017813250ead Mon Sep 17 00:00:00 2001 From: Naif-Deriv Date: Wed, 18 Sep 2024 13:53:40 +0400 Subject: [PATCH 1/4] add IDV add document call. --- ...cation_document_add_response_extended.dart | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 lib/api/response/identity_verification_document_add_response_extended.dart diff --git a/lib/api/response/identity_verification_document_add_response_extended.dart b/lib/api/response/identity_verification_document_add_response_extended.dart new file mode 100644 index 0000000000..f971dcd972 --- /dev/null +++ b/lib/api/response/identity_verification_document_add_response_extended.dart @@ -0,0 +1,36 @@ +import 'package:deriv_dependency_injector/dependency_injector.dart'; +import 'package:flutter_deriv_api/api/exceptions/base_api_exception.dart'; +import 'package:flutter_deriv_api/api/models/base_exception_model.dart'; +import 'package:flutter_deriv_api/api/response/identity_verification_document_add_response_result.dart'; +import 'package:flutter_deriv_api/basic_api/generated/identity_verification_document_add_receive.dart'; +import 'package:flutter_deriv_api/basic_api/generated/identity_verification_document_add_send.dart'; +import 'package:flutter_deriv_api/helpers/miscellaneous_helper.dart'; +import 'package:flutter_deriv_api/services/connection/api_manager/base_api.dart'; + +/// Extended model for [IdentityVerificationDocumentAddResponse] to add API calls. +class IdentityVerificationDocumentAddResponseExtended + extends IdentityVerificationDocumentAddResponse { + static final BaseAPI _api = Injector()(); + + /// Adds an identity verification document. + static Future + addIdentityVerificationDocument( + IdentityVerificationDocumentAddRequest request, + ) async { + final IdentityVerificationDocumentAddReceive response = + await _api.call(request: request); + + checkException( + response: response, + exceptionCreator: ({ + BaseExceptionModel? baseExceptionModel, + }) => + BaseAPIException( + baseExceptionModel: baseExceptionModel, + ), + ); + + return IdentityVerificationDocumentAddResponse.fromJson( + response.identityVerificationDocumentAdd); + } +} From 7177434bb4e82307365d22495c1b7cfe623071dd Mon Sep 17 00:00:00 2001 From: Naif-Deriv Date: Thu, 10 Oct 2024 09:06:41 +0400 Subject: [PATCH 2/4] add mock and test. --- .../connection/api_manager/mock_api.dart | 3 +++ ...ty_verification_document_add_response.dart | 12 +++++++++ ...entity_verification_document_add_test.dart | 27 +++++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 lib/services/connection/api_manager/mock_data/user/identity_verification_document_add_response.dart create mode 100644 test/api/user/identity_verification/identity_verification_document_add_test.dart diff --git a/lib/services/connection/api_manager/mock_api.dart b/lib/services/connection/api_manager/mock_api.dart index a60a4415d6..221aad593e 100644 --- a/lib/services/connection/api_manager/mock_api.dart +++ b/lib/services/connection/api_manager/mock_api.dart @@ -17,6 +17,7 @@ import 'package:flutter_deriv_api/services/connection/api_manager/mock_data/pass import 'package:flutter_deriv_api/services/connection/api_manager/mock_data/passkeys/passkeys_register_options_response.dart'; import 'package:flutter_deriv_api/services/connection/api_manager/mock_data/passkeys/passkeys_register_response.dart'; import 'package:flutter_deriv_api/services/connection/api_manager/mock_data/common/crypto_config_response.dart'; +import 'package:flutter_deriv_api/services/connection/api_manager/mock_data/user/identity_verification_document_add_response.dart'; import 'package:flutter_deriv_api/services/connection/call_manager/base_call_manager.dart'; import 'package:flutter_deriv_api/services/connection/call_manager/exceptions/call_manager_exception.dart'; @@ -390,6 +391,8 @@ class MockAPI extends BaseAPI { return passkeysRegisterResponse; case 'passkeys_list': return passkeysListResponse; + case 'identity_verification_document_add': + return identityVerificationDocumentAddResponse; default: throw APIManagerException( diff --git a/lib/services/connection/api_manager/mock_data/user/identity_verification_document_add_response.dart b/lib/services/connection/api_manager/mock_data/user/identity_verification_document_add_response.dart new file mode 100644 index 0000000000..2a7dc1f82f --- /dev/null +++ b/lib/services/connection/api_manager/mock_data/user/identity_verification_document_add_response.dart @@ -0,0 +1,12 @@ +/// Identity Verification Document Add Response +const String identityVerificationDocumentAddResponse = ''' +{ + "echo_req": { + "documentType": 'test', + "documentNumber": '123', + "issuingCountry": 'US', + }, + "identity_verification_document_add": 1, + "msg_type": "identity_verification_document_add" +} +'''; diff --git a/test/api/user/identity_verification/identity_verification_document_add_test.dart b/test/api/user/identity_verification/identity_verification_document_add_test.dart new file mode 100644 index 0000000000..f264b1f616 --- /dev/null +++ b/test/api/user/identity_verification/identity_verification_document_add_test.dart @@ -0,0 +1,27 @@ +import 'package:flutter_deriv_api/api/api_initializer.dart'; +import 'package:flutter_deriv_api/api/response/identity_verification_document_add_response_extended.dart'; +import 'package:flutter_deriv_api/api/response/identity_verification_document_add_response_result.dart'; +import 'package:flutter_deriv_api/basic_api/generated/identity_verification_document_add_send.dart'; +import 'package:flutter_deriv_api/services/connection/api_manager/mock_api.dart'; +import 'package:deriv_dependency_injector/dependency_injector.dart'; +import 'package:test/test.dart'; + +void main() { + setUp(() => APIInitializer().initialize(api: MockAPI())); + + tearDown(() => Injector().dispose()); + + test('Add Identity Verification Document', () async { + final IdentityVerificationDocumentAddResponse? identityDocumentResponse = + await IdentityVerificationDocumentAddResponseExtended + .addIdentityVerificationDocument( + const IdentityVerificationDocumentAddRequest( + documentNumber: '123', + documentType: 'test', + issuingCountry: 'US', + ), + ); + + expect(identityDocumentResponse?.identityVerificationDocumentAdd, 1); + }); +} From 9b914837d9cd4ec340bef7113d7b6f9de8f27056 Mon Sep 17 00:00:00 2001 From: Naif-Deriv Date: Thu, 10 Oct 2024 10:47:58 +0400 Subject: [PATCH 3/4] reformat json for tests. --- .../user/identity_verification_document_add_response.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/services/connection/api_manager/mock_data/user/identity_verification_document_add_response.dart b/lib/services/connection/api_manager/mock_data/user/identity_verification_document_add_response.dart index 2a7dc1f82f..413728d4e4 100644 --- a/lib/services/connection/api_manager/mock_data/user/identity_verification_document_add_response.dart +++ b/lib/services/connection/api_manager/mock_data/user/identity_verification_document_add_response.dart @@ -4,7 +4,7 @@ const String identityVerificationDocumentAddResponse = ''' "echo_req": { "documentType": 'test', "documentNumber": '123', - "issuingCountry": 'US', + "issuingCountry": 'US' }, "identity_verification_document_add": 1, "msg_type": "identity_verification_document_add" From 39e67f6ea3c123fd3c003e1ad44d90046730632d Mon Sep 17 00:00:00 2001 From: Naif-Deriv Date: Thu, 10 Oct 2024 10:51:14 +0400 Subject: [PATCH 4/4] replace single quotes with double quotes. --- .../user/identity_verification_document_add_response.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/services/connection/api_manager/mock_data/user/identity_verification_document_add_response.dart b/lib/services/connection/api_manager/mock_data/user/identity_verification_document_add_response.dart index 413728d4e4..4a30a4d48d 100644 --- a/lib/services/connection/api_manager/mock_data/user/identity_verification_document_add_response.dart +++ b/lib/services/connection/api_manager/mock_data/user/identity_verification_document_add_response.dart @@ -2,9 +2,9 @@ const String identityVerificationDocumentAddResponse = ''' { "echo_req": { - "documentType": 'test', - "documentNumber": '123', - "issuingCountry": 'US' + "documentType": "test", + "documentNumber": "123", + "issuingCountry": "US" }, "identity_verification_document_add": 1, "msg_type": "identity_verification_document_add"