TF-56 Implement upload single attachment

This commit is contained in:
dab246
2021-09-17 18:04:47 +07:00
committed by Dat H. Pham
parent 6aaa8f93d3
commit 39ca213285
23 changed files with 575 additions and 12 deletions
@@ -0,0 +1,28 @@
import 'dart:io';
import 'package:core/core.dart';
import 'package:dio/dio.dart';
import 'package:model/model.dart';
class ComposerAPI {
final DioClient _dioClient;
ComposerAPI(this._dioClient);
Future<UploadResponse> uploadAttachment(UploadRequest uploadRequest) async {
final resultJson = await _dioClient.post(
Uri.decodeFull(uploadRequest.uploadUrl.toString()),
options: Options(headers: _buildHeaderRequestParam(uploadRequest.accountRequest.basicAuth())),
data: File(uploadRequest.fileInfo.filePath).readAsBytesSync());
return UploadResponse.fromJson(resultJson);
}
Map<String, dynamic> _buildHeaderRequestParam(String basicAuth) {
final headerParam = _dioClient.getHeaders();
headerParam[HttpHeaders.authorizationHeader] = basicAuth;
headerParam[HttpHeaders.acceptHeader] = DioClient.jmapHeader;
return headerParam;
}
}