buildHeader method
default Header builder
Implementation
Future<Map<String, String>> buildHeader() async {
String userAgent;
PackageInfo p = await PackageInfo.fromPlatform();
String dtbLinkVersion = "0.1.23+44";
if (Platform.isAndroid) {
final deviceData = await DeviceInfoPlugin().androidInfo;
final model = deviceData.model;
final brand = deviceData.brand;
final sdk = "${deviceData.version.sdkInt}";
final release = deviceData.version.release;
final deviceName = (await DeviceMarketingNames().getSingleName()).replaceAll(" ", "_");
userAgent =
"DtbLink/$dtbLinkVersion(${Platform.operatingSystem}_$release(SDK_$sdk)/$model)/$brand/$deviceName";
} else {
final deviceData = await DeviceInfoPlugin().iosInfo;
final systemName = deviceData.systemName;
final brand = deviceData.name;
final systemVersion = deviceData.systemVersion;
final release = deviceData.utsname.release;
final deviceName = (await DeviceMarketingNames().getSingleName()).replaceAll(" ", "_");
userAgent = "DtbLink/$dtbLinkVersion($systemName($systemVersion)/$release)/$brand/$deviceName";
}
String? readerId = await _storage.readerId;
String dayTime = tranDateFormatter.format(DateTime.now());
bool initType = await _storage.dtbInitType;
Map<String, String> header = {
HttpHeaders.userAgentHeader: userAgent,
"AppName": "DtbLink",
"Model": "DtbLink",
"Operating-System": Platform.operatingSystem,
"Term-App-Name": "DtbLink",
"App-Version": "${p.version}.${p.buildNumber}",
"DTBVersion": "DtbLink/${p.version}.${p.buildNumber}(${Platform.operatingSystem})",
"Backend-Address": utf8.decode(base64.decode(initType ? host : devHost)),
"Version": p.buildNumber,
"ReaderId": "$readerId",
"Terminal-Datetime": dayTime,
};
return header;
}