Эйч
Эйч
  • Все менторы
Задачи/Android-разработчик/Рефакторинг кода с UseCase

Рефакторинг кода с UseCase

Условие задачи

Есть код с UseCase от другого разработчика. Нужно понять, какую бизнес-задачу решает данный код, и отрефакторить его

kotlinclass MainUseCase @Inject constructor(
    private val firstUseCase: FirstUseCase,
    private val secondUseCase: SecondUseCase
) {

    @CheckResult
    fun execute(result: Result): Completable {
        val orderedItems = result.items
        return if (orderedItems.isEmpty()) {
            Completable.complete()
        } else {
            firstUseCase.getCartItems()
                .map { cartItems ->
                    orderedItems.mapNotNull { orderItem ->
                        cartItems.firstOrNull { it.id == orderItem.id }
                    }
                }
                .map { cartItem ->
                    CartItemId(
                        cartItemId = cartItem.id,
                        skuId = cartItem.skuId,
                        bundleId = cartItem.bundleId,
                        isPrimaryBundleItem = cartItem.isPrimaryBundleItem
                    )
                }
                .flatMapCompletable {
                    if (it.isEmpty()) {
                        Completable.complete()
                    } else {
                        secondUseCase.deleteItems(it)
                    }
                }
        }
    }
}

Профессия

Android-разработчик

Сопроводим до оффера

Умножим шансы на каждом этапе поиска и поможем получить выгодный оффер

Узнать больше

Сервис развития карьеры

Контактыteam@h.careers@hcareers
TelegramVKYouTubeLinkedIn
Профессии
Компания
С чем помогаемОтзывыВопросы и ответыСертификатыВебинарыСтать ментором

Платформа принадлежит ООО "Эйч Карьера"
ИНН 9710095807 ОГРН 1227700077340
Адрес: 127006, город Москва, Старопименовский пер, д. 18 стр. 2, помещ./ком./этаж I/19/2

Copyright © 2020-2025 Сервис развития карьеры Эйч. Все права защищены.

Политика конфиденциальностиПользовательское соглашениеОферта