pesalinkProcessTransaction function Null safety

Future<BankReponse> pesalinkProcessTransaction(
  1. String url,
  2. Map<String, String> headers,
  3. Map<String, dynamic> payload,
  4. ApplicationMode applicationMode
)

Implementation

Future<BankReponse> pesalinkProcessTransaction(
  String url, Map<String, String> headers, Map<String, dynamic> payload, ApplicationMode applicationMode
)async{
  String finalUrl = url;
  if(applicationMode == ApplicationMode.production){
    finalUrl = '$prodUrl$url';
  } else{
    finalUrl = '$testUrl$url';
  }

  try{
    final http.Response _res = await http.post(Uri.parse(finalUrl), headers: headers, body: json.encode(payload));
    dynamic _body;
    Map<String, dynamic>? _bodyAsmap;
    try{
      _body = json.decode(_res.body);
      _bodyAsmap = _body as Map<String, dynamic>?;
    } catch (e){
      _body = _res.body;
    }

    var _bankReponse = BankReponse.fromMap(_bodyAsmap ?? {});
    _bankReponse.statusCode = _res.statusCode;

    return _bankReponse;


    } catch (e){
      rethrow;
    }

}