exec method
食事記録を登録する。
指定された日時と写真データを使用して食事記録をサーバーへ登録し、タスクIDを返します。
Parameters:
dateTime: 食事記録の日時photoData: 食事記録の写真データ
Return: Future<String> が返されます。このFutureは、操作が完了するとタスクIDを含みます。
使用するリポジトリ:
- MealRecordRepository : 食事記録のデータ操作を管理するリポジトリ 使用するAPI:
MealRecordApi.mealRecordPost: 食事記録の登録または更新を行うAPI 使用するサービス:- ConvertPhotoToMultipartFileService : 写真データをMultipartFile形式に変換するサービス
Implementation
Future<String> exec({
required DateTime dateTime,
required Uint8List photoData,
}) async {
try {
final utcDateTime = dateTime.toUtc();
final image = await _convertPhotoToMultipartFile.exec(
photoData: photoData,
);
final responce = await _mealRecordRepository.upsertRecord(
dateTime: utcDateTime,
image: image,
);
final taskId = responce.taskId;
return taskId;
} on RepositoryException catch (error, stackTrace) {
throw _errorHandler.handleRepositoryError(error, stackTrace);
} on ServiceException catch (error) {
switch (error.type) {
case ServiceErrorType.imageConvertError:
throw UsecaseException(
UsecaseErrorType.imageConvertError,
UsecaseErrorType.imageConvertError.message,
);
default:
throw UsecaseException(
UsecaseErrorType.unknown,
UsecaseErrorType.unknown.message,
);
}
} on UsecaseException {
rethrow;
} catch (error, stackTrace) {
throw _errorHandler.handleUnknownError(error, stackTrace);
}
}