Назад к задачам
Junior — Senior
6

Отложенное сохранение и получение сессии устройства

Компании, где спрашивали:

Salmon
Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Необходимо реализовать систему, которая будет сохранять и предоставлять сессию, полученную из внешней библиотеки, собирающей информацию об устройстве. Эта сессия будет использоваться для идентификации пользователя на серверной стороне.

  1. Запустить инициализацию библиотеки DeviceScrapingLibrary, а после её готовности сохранить полученную сессию.
  2. Обеспечить возможность извлечения сохранённой сессии через слой хранения SessionStorage.
  3. Доступ к сессии должен быть возможен только после успешного завершения инициализации.
class DeviceScrapingLibraryInitializer(
    private val sessionRepo: DeviceScrapingSessionRepository
) {
    fun initialize() {
        val builder = DeviceScrapingLibrary.Builder()
            .onSessionReady { session ->
                sessionRepo.save(session)
            }
            .build()
        DeviceScrapingLibrary.initialize(builder)
    }
}

class DeviceScrapingSessionRepository {
    fun save(session: Session) {
        // TODO store session
    }

    suspend fun retrieve(): Session {
        // TODO suspend until session is available
    }
}