issueCertificate method

Future<Map<String, dynamic>> issueCertificate(
  1. String complianceRequestId
)

Issues a production certificate using the provided compliance request ID.

Implementation

Future<Map<String, dynamic>> issueCertificate(
  String complianceRequestId,
) async {
  final headers = {
    "Accept-Version": API.settings["API_VERSION"]!,
    'Content-Type': 'application/json',
    ...authHeaders,
  };

  final response = await http.post(
    Uri.parse('$baseUrl/production/csids'),
    headers: headers,
    body: jsonEncode({"compliance_request_id": complianceRequestId}),
  );

  if (response.statusCode != 200) {
    throw Exception("Error issuing a production certificate.");
  }

  final data = jsonDecode(response.body);
  final issuedCertificate = '''
-----BEGIN CERTIFICATE-----
${utf8.decode(base64Decode(data["binarySecurityToken"]))}
-----END CERTIFICATE-----
''';
  return {
    "issued_certificate": issuedCertificate,
    "api_secret": data["secret"],
    "request_id": data["requestID"],
  };
}