processAttachments method

Future<List<Map<String, dynamic>>> processAttachments({
  1. required List<File> attachments,
  2. required String token,
  3. required String mediaType,
  4. required String validatorType,
})

Implementation

Future<List<Map<String, dynamic>>> processAttachments(
    {required List<File> attachments,
    required String token,
    required String mediaType,
    required String validatorType}) async {
  Map mimeTypes = {
    'video': Constants.videoMimeTypes,
    'image': Constants.imageMimeTypes,
    'audio': Constants.audioMimeTypes,
  };

  List<Map<String, dynamic>> details = [];
  for (var file in attachments) {
    var hash;

    if (validatorType == 'lighthouse') {
      hash = await LightHouseValidator()
          .postData(file: file, token: token, validatorType: validatorType);
    }

    final extension = file.path.split('.').last.toLowerCase();
    final mimeType = mimeTypes[mediaType][extension];
    details.add({
      "item": "${Constants.validatorTypes[validatorType]}${hash.data['Hash']}",
      "type": mimeType,
    });
  }

  return details;
}