bannerImpression method

Future<void> bannerImpression(
  1. BannerResponse banner
)

Implementation

Future<void> bannerImpression(BannerResponse banner) async {
  final storage = HiveStorageService.instance;

  Map<String, dynamic> body = {
    'profileId': await storage.getProfileId(),
    'deviceId': await storage.getDeviceId(),
    'sessionId': await storage.getSessionId(),
    'banners': [
      {
        'token': banner.token,
        'bannerId': banner.bannerId.toString(),
        'segmentId': banner.segmentId.toString(),
      }
    ]
  };

  final response = await http.post(
    Uri.parse('${_getEndpoint()}/api/v0/impressions'),
    headers: {
      'content-type': 'application/json',
      'authorization': 'Bearer $_accessToken',
    },
    body: jsonEncode(body),
  );

  if (response.statusCode != 200) {
    throw Exception(
      'Banner Impression API error: ${response.statusCode} - ${response.body}',
    );
  }
}