postService method

Future<(HaStates?, HaFailure?)> postService({
  1. required String domain,
  2. required String service,
  3. Map<String, dynamic>? serviceData,
})

Calls a service within a specific domain.

Will return when the service has been executed. You can pass an optional JSON object to be used as service_data. Returns a list of states that have changed while the service was being executed.

Implementation

Future<(HaStates?, HaFailure?)> postService({
  required String domain,
  required String service,
  Map<String, dynamic>? serviceData,
}) async {
  final endpoint = '/api/services/$domain/$service';
  final data = jsonEncode(serviceData);
  final response =
      await sl.get<HttpClient>().post(url + endpoint, _headers, data);
  return response.success
      ? (HaStates.fromResponse(jsonDecode(response.dataStr)), null)
      : (null, HaFailure(message: response.dataStr));
}