post method

Future<Map<String, dynamic>?> post(
  1. Resource resource
)

Fetch the given resource from this bridge.

Will return null if:

  • The resource does not exist on this bridge
  • This bridge does not have an IP address
  • This bridge does not have an application key
  • The resource does not have any data to POST
  • Any other unforeseen error

Implementation

Future<Map<String, dynamic>?> post(Resource resource) async {
  if (ipAddress == null) return null;
  if (applicationKey == null) return null;

  final Map<String, dynamic> resourceJson =
      resource.toJson(optimizeFor: OptimizeFor.post);

  if (resourceJson.isEmpty) return null;

  String body = JsonTool.writeJson(resourceJson);

  try {
    return await HueHttpRepo.post(
      bridgeIpAddr: ipAddress!,
      pathToResource: resource.id,
      applicationKey: applicationKey!,
      resourceType: resource.type,
      body: body,
    );
  } catch (_) {
    return null;
  }
}