putCustomerInfo method
Upload customer information to an anchor in an authenticated and idempotent fashion.
Implementation
Future<PutCustomerInfoResponse> putCustomerInfo(
PutCustomerInfoRequest request) async {
Uri serverURI = Uri.parse(_serviceAddress + "/customer");
_PutCustomerInfoRequestBuilder requestBuilder =
_PutCustomerInfoRequestBuilder(httpClient, serverURI,
httpRequestHeaders: this.httpRequestHeaders);
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.transactionId != null) {
fields["transaction_id"] = request.transactionId!;
}
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;
}