updateCustomer method
Update customer information
Implementation
Future<Customer> updateCustomer({
required CustomerUpdateRequest request,
}) async {
try {
final response = await _client.authenticatedRequest<Map<String, dynamic>>(
'/rest/V1/customers/me',
options: Options(method: 'PUT'),
data: request.toJson(),
);
if (response.statusCode == 200) {
return Customer.fromJson(response.data!);
} else {
throw Exception('Failed to update customer: ${response.statusMessage}');
}
} on DioException catch (e) {
if (e.response?.statusCode == 401) {
throw Exception('User not authenticated');
}
if (e.response?.statusCode == 400) {
final errorData = e.response?.data;
if (errorData is Map<String, dynamic>) {
final message = errorData['message'] ?? 'Update failed';
throw Exception(message);
}
}
throw Exception('Failed to update customer: ${e.message}');
} catch (e) {
throw Exception('Failed to update customer: $e');
}
}