Sobes.tech
Back to tasks
Junior — Senior
50

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

Companies where asked:

Salmon
Get help with live coding in real time with Sobes Copilot
Task condition

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

  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
    }
}