putCustomerInfo method

Future<PutCustomerInfoResponse> putCustomerInfo (
  1. PutCustomerInfoRequest request
)

Upload customer information to an anchor in an authenticated and idempotent fashion.

Implementation

Future<PutCustomerInfoResponse> putCustomerInfo(
    PutCustomerInfoRequest request) async {
  checkNotNull(request, "request cannot be null");
  Uri serverURI = Uri.parse(_serviceAddress + "/customer");

  _PutCustomerInfoRequestBuilder requestBuilder =
      new _PutCustomerInfoRequestBuilder(httpClient, serverURI);

  final Map<String, String> fields = {};
  final Map<String, Uint8List> files = {};

  if (request.id != null) {
    fields["id"] = request.id;
  }
  if (request.account != null) {
    fields["account"] = request.account;
  }
  if (request.memo != null) {
    fields["memo"] = request.memo;
  }
  if (request.memoType != null) {
    fields["memo_type"] = request.memoType;
  }
  if (request.type != null) {
    fields["type"] = request.type;
  }
  if (request.kycFields != null &&
      request.kycFields.naturalPersonKYCFields != null) {
    fields.addAll(request.kycFields.naturalPersonKYCFields.fields());
  }
  if (request.kycFields != null &&
      request.kycFields.organizationKYCFields != null) {
    fields.addAll(request.kycFields.organizationKYCFields.fields());
  }
  if (request.customFields != null) {
    fields.addAll(request.customFields);
  }

  // files always at the end.
  if (request.kycFields != null &&
      request.kycFields.naturalPersonKYCFields != null) {
    files.addAll(request.kycFields.naturalPersonKYCFields.files());
  }
  if (request.kycFields != null &&
      request.kycFields.organizationKYCFields != null) {
    files.addAll(request.kycFields.organizationKYCFields.files());
  }
  if (request.customFiles != null) {
    files.addAll(request.customFiles);
  }

  PutCustomerInfoResponse response = await requestBuilder
      .forFields(fields)
      .forFiles(files)
      .execute(request.jwt);

  return response;
}