uploadFileToMDM method

Future<UploadFileToMDMResponseDto> uploadFileToMDM(
  1. String apiKey, {
  2. required String fileName,
  3. required File appFile,
  4. required ContentTypeFileEnum contentType,
})

Implementation

Future<UploadFileToMDMResponseDto> uploadFileToMDM(
  String apiKey, {
  required String fileName,
  required File appFile,
  required ContentTypeFileEnum contentType,
}) async {
  final String url = '$channel/api/v1/mdm/files';

  final request = http.Request(
    'POST',
    Uri.parse('https://mdm.manageengine.eu/api/v1/mdm/files'),
  )
    ..headers['Authorization'] = 'Zoho-oauthtoken $apiKey'
    ..headers['Content-Type'] = contentType.contentType
    ..headers['Content-Disposition'] = 'file_name=$fileName'
    ..bodyBytes = await appFile.readAsBytes();

  final response = await request.send();

  if (!response.statusCode.isSuccessful) {
    throw MdmEngineException(
      method: response.request?.method,
      url: url,
      statusCode: response.statusCode,
      error: response.stream.bytesToString(),
    );
  }

  return UploadFileToMDMResponseDto.fromJson(
    jsonDecode(await response.stream.bytesToString()),
  );
}