updateContact method
Update an existing contact.
Implementation
Future<ResendResult<ResendUpdateContactResponse>> updateContact(
{
/// The Audience ID.
required String audienceId,
/// The Contact ID.
required String contactId,
/// The first name of the contact.
String? firstName,
/// The last name of the contact.
String? lastName,
/// The subscription status.
bool? unsubscribed}) async {
// Validation
assert(audienceId.isNotEmpty, 'The audience ID can not be empty.');
assert(contactId.isNotEmpty, 'The contact ID can not be empty.');
assert(firstName != null || lastName != null || unsubscribed != null,
'At least one optional parameter is required.');
// Construct the request URI
final Uri uri = Uri(
scheme: _baseUri.scheme,
host: _baseUri.host,
path: '${_baseUri.path}/$audienceId/contacts/$contactId');
// Send GET request to the API
final http.Response response = await http.patch(uri,
headers: <String, String>{
'Authorization': 'Bearer $_apiKey',
'Content-Type': 'application/json'
},
body: jsonEncode(<String, dynamic>{
if (firstName != null) 'first_name': firstName,
if (lastName != null) 'last_name': lastName,
if (unsubscribed != null) 'unsubscribed': unsubscribed
}));
// Decode the response
final Json body = json.decode(response.body);
// Return Failure when statusCode is not OK
if (response.statusCode != 200) {
return ResendFailure.fromJson(body);
}
// Return parsed data when statusCode is OK
final ResendUpdateContactResponse result =
ResendUpdateContactResponse.fromJson(body);
return ResendResult<ResendUpdateContactResponse>.success(result);
}