uploadDocument method

  1. @override
Future<UploadDocument> uploadDocument({
  1. required String token,
  2. required String distinctId,
  3. required File document,
  4. String? documentName,
})
override

Implementation

@override
Future<UploadDocument> uploadDocument({
  required String token,
  required String distinctId,
  required File document,
  String? documentName,
}) async {
  final response = await dio.post(
    '/microsite/documents',
    options: Options(headers: {'Authorization': 'Bearer $token'}),
    data: FormData.fromMap({
      'document_name': ?documentName,
      'campaign': Environment.campaign,
      'api_key': Environment.apiKey,
      'distinct_id': distinctId,
      'upload_document': await MultipartFile.fromFile(
        document.path,
        filename: document.path.split('/').last,
      ),
    }),
  );
  final raw = response.data;
  final Map<String, dynamic> responseData =
      raw is String ? json.decode(raw) : Map<String, dynamic>.from(raw as Map);
  return DocumentMapper.uploadDocumentToEntity(UploadDocumentResponse.fromJson(responseData));
}