upsertRecord method

Future<UpsertMealRecordResponceModel> upsertRecord(
  1. {required DateTime dateTime,
  2. required MultipartFile image}
)

Implementation

Future<UpsertMealRecordResponceModel> upsertRecord({
  required DateTime dateTime,
  required MultipartFile image,
}) async {
  try {
    final responce = await _client.mealRecordPost(
      dateTime: dateTime,
      image: image,
    );

    final responceData = responce.data;

    if (responceData == null) {
      throw RepositoryException(
        RepositoryErrorType.notFound,
        RepositoryErrorType.notFound.message,
      );
    }

    final upsertMealRecordResponceModel =
        _convertToUpsertMealRecordResponceModel.exec(
      responce: responceData,
    );

    return upsertMealRecordResponceModel;
  } on RepositoryException catch (_) {
    rethrow;
  } on DioException catch (error, stackTrace) {
    throw await _dioErrorHandler.handleDioError(
      error,
      stackTrace,
      {
        'dateTime': dateTime.toString(),
        'image': image,
      },
    );
  } catch (error, stackTrace) {
    throw _repositoryErrorHandler.handleUnknownError(error, stackTrace);
  }
}