commonPhilipinesApi method

Future<IdMetaResult> commonPhilipinesApi({
  1. required dynamic data,
  2. required String url,
})

Implementation

Future<IdMetaResult> commonPhilipinesApi({
  required dynamic data,
  required String url,
}) async {
  try {
    Options option = Options(headers: {
      "Accept": "application/json",
      "Authorization": Api.authToken,
      "Content-Type": "application/json"
    });

    Map<String, dynamic> requestData = data.toJson();
    if (requestData["metadata"] is Map &&
        (requestData["metadata"] as Map).isEmpty) {
      requestData.remove("metadata");
    }

    var value = await Dio().post(
      '${Api.baseUrl}$url',
      options: option,
      data: requestData,
    );

    if (value.statusCode == Api.successRequestCode) {
      PhilipinesCommonResultModel philipinesDrivingLicenseResultModel =
          PhilipinesCommonResultModel.fromJson(value.data);
      IdMetaResult? apiResponse = await philipinesVerificationApi(
        data: philipinesDrivingLicenseResultModel.resultId!,
      );
      if (apiResponse != null) {
        return apiResponse;
      } else {
        return IdMetaResult(
          status: false,
          error: const ErrorMessage(
            status: false,
            message: Constants.commonError,
          ).toJson(),
        );
      }
    } else {
      return IdMetaResult(
        status: false,
        error: const ErrorMessage(
          status: false,
          message: Constants.commonError,
        ).toJson(),
      );
    }
  } on DioException catch (e) {
    return IdMetaResult(
      status: false,
      error: e.response?.data ??
          ErrorMessage(
            status: false,
            message: e.message ?? Constants.commonError,
          ).toJson(),
    );
  } on Error catch (e) {
    return IdMetaResult(
      status: false,
      error: ErrorMessage(
        status: false,
        message: e.toString(),
      ).toJson(),
    );
  }
}