Skip to content

Commit 7c46095

Browse files
authored
Naif/add-IDV-add-document-call. (deriv-com#343)
1 parent c919a92 commit 7c46095

File tree

4 files changed

+78
-0
lines changed

4 files changed

+78
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import 'package:deriv_dependency_injector/dependency_injector.dart';
2+
import 'package:flutter_deriv_api/api/exceptions/base_api_exception.dart';
3+
import 'package:flutter_deriv_api/api/models/base_exception_model.dart';
4+
import 'package:flutter_deriv_api/api/response/identity_verification_document_add_response_result.dart';
5+
import 'package:flutter_deriv_api/basic_api/generated/identity_verification_document_add_receive.dart';
6+
import 'package:flutter_deriv_api/basic_api/generated/identity_verification_document_add_send.dart';
7+
import 'package:flutter_deriv_api/helpers/miscellaneous_helper.dart';
8+
import 'package:flutter_deriv_api/services/connection/api_manager/base_api.dart';
9+
10+
/// Extended model for [IdentityVerificationDocumentAddResponse] to add API calls.
11+
class IdentityVerificationDocumentAddResponseExtended
12+
extends IdentityVerificationDocumentAddResponse {
13+
static final BaseAPI _api = Injector()<BaseAPI>();
14+
15+
/// Adds an identity verification document.
16+
static Future<IdentityVerificationDocumentAddResponse>
17+
addIdentityVerificationDocument(
18+
IdentityVerificationDocumentAddRequest request,
19+
) async {
20+
final IdentityVerificationDocumentAddReceive response =
21+
await _api.call(request: request);
22+
23+
checkException(
24+
response: response,
25+
exceptionCreator: ({
26+
BaseExceptionModel? baseExceptionModel,
27+
}) =>
28+
BaseAPIException(
29+
baseExceptionModel: baseExceptionModel,
30+
),
31+
);
32+
33+
return IdentityVerificationDocumentAddResponse.fromJson(
34+
response.identityVerificationDocumentAdd);
35+
}
36+
}

lib/services/connection/api_manager/mock_api.dart

+3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import 'package:flutter_deriv_api/services/connection/api_manager/mock_data/pass
1717
import 'package:flutter_deriv_api/services/connection/api_manager/mock_data/passkeys/passkeys_register_options_response.dart';
1818
import 'package:flutter_deriv_api/services/connection/api_manager/mock_data/passkeys/passkeys_register_response.dart';
1919
import 'package:flutter_deriv_api/services/connection/api_manager/mock_data/common/crypto_config_response.dart';
20+
import 'package:flutter_deriv_api/services/connection/api_manager/mock_data/user/identity_verification_document_add_response.dart';
2021
import 'package:flutter_deriv_api/services/connection/call_manager/base_call_manager.dart';
2122
import 'package:flutter_deriv_api/services/connection/call_manager/exceptions/call_manager_exception.dart';
2223

@@ -390,6 +391,8 @@ class MockAPI extends BaseAPI {
390391
return passkeysRegisterResponse;
391392
case 'passkeys_list':
392393
return passkeysListResponse;
394+
case 'identity_verification_document_add':
395+
return identityVerificationDocumentAddResponse;
393396

394397
default:
395398
throw APIManagerException(
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/// Identity Verification Document Add Response
2+
const String identityVerificationDocumentAddResponse = '''
3+
{
4+
"echo_req": {
5+
"documentType": "test",
6+
"documentNumber": "123",
7+
"issuingCountry": "US"
8+
},
9+
"identity_verification_document_add": 1,
10+
"msg_type": "identity_verification_document_add"
11+
}
12+
''';
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import 'package:flutter_deriv_api/api/api_initializer.dart';
2+
import 'package:flutter_deriv_api/api/response/identity_verification_document_add_response_extended.dart';
3+
import 'package:flutter_deriv_api/api/response/identity_verification_document_add_response_result.dart';
4+
import 'package:flutter_deriv_api/basic_api/generated/identity_verification_document_add_send.dart';
5+
import 'package:flutter_deriv_api/services/connection/api_manager/mock_api.dart';
6+
import 'package:deriv_dependency_injector/dependency_injector.dart';
7+
import 'package:test/test.dart';
8+
9+
void main() {
10+
setUp(() => APIInitializer().initialize(api: MockAPI()));
11+
12+
tearDown(() => Injector().dispose());
13+
14+
test('Add Identity Verification Document', () async {
15+
final IdentityVerificationDocumentAddResponse? identityDocumentResponse =
16+
await IdentityVerificationDocumentAddResponseExtended
17+
.addIdentityVerificationDocument(
18+
const IdentityVerificationDocumentAddRequest(
19+
documentNumber: '123',
20+
documentType: 'test',
21+
issuingCountry: 'US',
22+
),
23+
);
24+
25+
expect(identityDocumentResponse?.identityVerificationDocumentAdd, 1);
26+
});
27+
}

0 commit comments

Comments
 (0)