getApplication method

  1. @override
Future<Application> getApplication(
  1. String clientId,
  2. String clientSecret
)
override

Implementation

@override
Future<Application> getApplication(String clientId, String clientSecret) async{
  AccessTokenResult accessTokenResult = await this.getAccessToken(clientId, clientSecret);

  final String url = "$API_URL/merchants/applications/current";
  final http.Response response = await http.get(
      Uri.parse(url),
      headers: {
        'Authorization' : 'Bearer ${accessTokenResult.accessToken}',
        'Accept':'application/json'
      }
  );

  if(response.statusCode == 200){
    final Map<String, dynamic> json = jsonDecode(response.body);
    if(json.containsKey('data')){
      Map<String, dynamic> jsonData = json['data'];
      final Application result = Application.fromJson(jsonData);
      return result;
    }else{

      String? message =  "";
      int? code =  -1;
      String? status = "";
      if(json.containsKey('message')){
        code = StatusCode.codes[StatusCode.OPERATION_ERROR];
        status = StatusCode.OPERATION_ERROR;
        message = json['message'] as String;

      }
      throw  AdjeminPayException(message, response.statusCode, code,status);
    }

  }else{
    var message = StatusCode.messages[StatusCode.OPERATION_ERROR];
    var code = StatusCode.codes[StatusCode.OPERATION_ERROR];
    var status = StatusCode.OPERATION_ERROR;
    if(response.headers['content-type'] == 'application/json'){
      final Map<String, dynamic> json = jsonDecode(response.body);

      if(json.containsKey('message')){
        message = json['message'];
      }

      if(json.containsKey('code')){
        code = json['code'];
      }

      if(json.containsKey('status')){
        status = json['status'];
      }

    }else{
      message  = "An error has occurred";
    }

    throw AdjeminPayException(message, response.statusCode, code,status);
  }
}