createBlog method

  1. @override
Future<CreateBlog> createBlog({
  1. required String title,
  2. required String body,
  3. required String format,
  4. required String category,
  5. required String distinctId,
  6. List<String>? tags,
  7. File? attachedFile,
  8. String? pushRedirectUrl,
})
override

Implementation

@override
Future<CreateBlog> createBlog({
  required String title,
  required String body,
  required String format,
  required String category,
  required String distinctId,
  List<String>? tags,
  File? attachedFile,
  String? pushRedirectUrl,
}) async {
  final data = attachedFile != null
      ? FormData.fromMap({
          'api_key': Environment.apiKey,
          'campaign': Environment.campaign,
          'distinct_id': distinctId,
          'blog_post[title]': title,
          'blog_post[body]': body,
          'blog_post[format]': format,
          'blog_post[category]': category,
          if (tags != null && tags.isNotEmpty) 'blog_post[tags]': tags,
          'blog_post[push_redirect_url]': ?pushRedirectUrl,
          'blog_post[attached_file]': await MultipartFile.fromFile(
            attachedFile.path,
            filename: attachedFile.path.split('/').last,
          ),
        })
      : {
          'api_key': Environment.apiKey,
          'campaign': Environment.campaign,
          'distinct_id': distinctId,
          'blog_post': {
            'title': title,
            'body': body,
            'format': format,
            'category': category,
            if (tags != null && tags.isNotEmpty) 'tags': tags,
            'push_redirect_url': ?pushRedirectUrl,
          },
        };

  final response = await dio.post('/blogs', data: data);
  return _jsonToCreateBlog(_parseResponse(response.data));
}