@@ -7,6 +7,11 @@ import 'dart:ui' as ui;
7
7
import 'package:flutter/services.dart' ;
8
8
9
9
import 'package:flutter/widgets.dart' ;
10
+ import 'package:flutter_deriv_api/api/exceptions/base_api_exception.dart' ;
11
+ import 'package:flutter_deriv_api/api/models/base_exception_model.dart' ;
12
+ import 'package:flutter_deriv_api/api/response/active_symbols_response_result.dart' ;
13
+ import 'package:flutter_deriv_api/basic_api/generated/active_symbols_receive.dart' ;
14
+ import 'package:flutter_deriv_api/basic_api/generated/active_symbols_send.dart' ;
10
15
import 'package:flutter_system_proxy/flutter_system_proxy.dart' ;
11
16
import 'package:rxdart/rxdart.dart' ;
12
17
import 'package:web_socket_channel/io.dart' ;
@@ -26,6 +31,7 @@ import 'package:flutter_deriv_api/services/connection/call_manager/exceptions/ca
26
31
import 'package:flutter_deriv_api/services/connection/call_manager/subscription_manager.dart' ;
27
32
28
33
part 'isolate_events.dart' ;
34
+
29
35
part 'isolate_task.dart' ;
30
36
31
37
/// This class is for handling Binary API connection and calling Binary APIs.
@@ -319,6 +325,40 @@ class IsolateWrappingAPI extends BaseAPI {
319
325
}
320
326
}
321
327
328
+ if (message is CustomIsolateEvent ) {
329
+ switch (message.event) {
330
+ case CustomEvent .ping:
331
+ case CustomEvent .activeSymbols:
332
+ final ActiveSymbolsResponse activeSymbolsResponse =
333
+ message.data as ActiveSymbolsResponse ;
334
+ _pendingEvents[message.eventId]? .complete (activeSymbolsResponse);
335
+
336
+ case CustomEvent .assetIndex:
337
+ case CustomEvent .balance:
338
+ case CustomEvent .buy:
339
+ case CustomEvent .accountList:
340
+ case CustomEvent .accountClosure:
341
+ case CustomEvent .cancel:
342
+ case CustomEvent .cashierPayment:
343
+ case CustomEvent .changeEmail:
344
+ case CustomEvent .changePassword:
345
+ case CustomEvent .confirmEmail:
346
+ case CustomEvent .contractUpdateHistory:
347
+ case CustomEvent .contractUpdate:
348
+ case CustomEvent .contractsFor:
349
+ case CustomEvent .getAccountStatus:
350
+ case CustomEvent .getAccountTypes:
351
+ case CustomEvent .getAvailableAccounts:
352
+ case CustomEvent .getFinancialAssessment:
353
+ case CustomEvent .getLimits:
354
+ case CustomEvent .getSelfExclusion:
355
+ case CustomEvent .getSettings:
356
+ case CustomEvent .identityVerification:
357
+ case CustomEvent .jTokenCreate:
358
+ case CustomEvent .kycAuthStatus:
359
+ }
360
+ }
361
+
322
362
// Check for other messages coming out from Isolate.
323
363
});
324
364
}
@@ -396,6 +436,22 @@ class IsolateWrappingAPI extends BaseAPI {
396
436
return _callEvent (event);
397
437
}
398
438
439
+ /// Gets the list of active symbols.
440
+ ///
441
+ /// For parameters information refer to [ActiveSymbolsRequest] .
442
+ /// Throws an [BaseAPIException] if API response contains an error
443
+ Future <ActiveSymbolsResponse > fetchActiveSymbols (
444
+ ActiveSymbolsRequest request,
445
+ ) async {
446
+ final event = CustomIsolateEvent <ActiveSymbolsResponse >(
447
+ request: request,
448
+ eventId: _getEventId,
449
+ event: CustomEvent .activeSymbols,
450
+ );
451
+
452
+ return _callEvent (event);
453
+ }
454
+
399
455
@override
400
456
Stream <Response >? subscribe ({
401
457
required Request request,
@@ -434,4 +490,3 @@ class IsolateWrappingAPI extends BaseAPI {
434
490
_isolateSendPort? .send (_DisconnectEvent (eventId: _getEventId));
435
491
}
436
492
}
437
-
0 commit comments