initialise method
Future<bool>
initialise({
- TerminalManagerSettings? settings,
- dynamic onRealTimeEvent(
- NotificationEvent
- dynamic onAsyncEvent(
- NotificationEvent
override
Implementation
@override
Future<bool> initialise({
TerminalManagerSettings? settings,
Function(NotificationEvent)? onRealTimeEvent,
Function(NotificationEvent)? onAsyncEvent,
}) async {
final settingsFromConfig = await configService.getObjectValue(
key: 'settings_terminal_manager',
defaultValue: {},
) as Map;
if (settingsFromConfig is Map<String, dynamic> &&
settingsFromConfig.isNotEmpty) {
final jsonSettings = TerminalManagerSettings.fromJson(settingsFromConfig);
terminalManagerSettings = TerminalManagerSettings(
baseUrl: jsonSettings.baseUrl,
version: jsonSettings.version.isEmpty ? 'v1' : jsonSettings.version,
);
}
final useParameterSettings =
terminalManagerSettings.baseUrl.isEmpty && settings != null;
if (useParameterSettings) {
terminalManagerSettings = settings;
}
final urlInfoReady = terminalManagerSettings.baseUrl.isNotEmpty &&
terminalManagerSettings.version.isNotEmpty;
if (!urlInfoReady) {
logger.warning(
this,
'No settings found for terminal manager, please check your configuration',
);
return false;
}
final baseUrl = terminalManagerSettings.baseUrl;
final updatedUrl = baseUrl.replaceFirst('/api', '');
final manager = this as TerminalManager;
manager._endpoint =
'$updatedUrl/terminalmgr/api/${terminalManagerSettings.version}/terminals';
manager._eventHubUrl = '$updatedUrl/terminalmgr/eventhub';
manager._terminalUrl = '$updatedUrl/terminalmgr/api/v1';
try {
LocationPermission r = await manager._locator.checkPermission();
switch (r) {
case LocationPermission.always:
case LocationPermission.whileInUse:
manager._hasLocationAccess = true;
break;
case LocationPermission.denied:
case LocationPermission.deniedForever:
manager._hasLocationAccess = false;
break;
default:
manager._hasLocationAccess = false;
}
} catch (e) {
logger.error(
this,
'Error checking location permission: $e',
error: e,
stackTrace: StackTrace.current,
);
manager._hasLocationAccess = false;
}
logger.debug(
this,
'Terminal Manager Service initialised, with endpoint: ${manager._endpoint}',
);
setIsReady(true);
return true;
}