Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package madbrains.omnicomm.system.service.session.dao
- import com.google.firebase.iid.FirebaseInstanceId
- import madbrains.omnicomm.ioc.InjectionContainer
- import madbrains.omnicomm.system.exception.FormatInvalidException
- import madbrains.omnicomm.system.exception.InvalidStateException
- import madbrains.omnicomm.system.service.route.Route
- import madbrains.omnicomm.system.service.session.Expires
- import madbrains.omnicomm.system.service.session.Session
- import madbrains.omnicomm.system.service.session.SessionId
- import madbrains.omnicomm.system.service.session.credentials.Credentials
- import madbrains.omnicomm.system.service.session.dao.soap.*
- import retrofit2.Retrofit
- import javax.inject.Inject
- class SessionSoapDAO(container: InjectionContainer<SessionSoapDAO>) : SessionDAO {
- @Inject
- internal lateinit var retrofit: Retrofit
- @Inject
- internal lateinit var errorMessage: String
- private val sessionApi: SessionApi
- init {
- container.inject(this)
- sessionApi = retrofit.create(SessionApi::class.java)
- }
- @Throws(SessionErrorException::class, FormatInvalidException::class)
- override fun getSession(route: Route, credentials: Credentials): Session {
- val request = SignInRequest(credentials.login.toString(), credentials.password.toString())
- val body = SignInRequestBody(request)
- val envelope = SignInRequestEnvelope(body)
- val response = sessionApi.signIn(envelope,
- FirebaseInstanceId.getInstance().token.toString()).execute()
- if (!response.isSuccessful) {
- throw SessionErrorException(response.message())
- }
- val loginResponse = response
- .body()
- ?.signInResponseBody
- ?.signInResponse
- ?.signInResponseReturn
- ?: throw SessionErrorException(errorMessage)
- loginResponse.validate()
- return Session(
- SessionId(loginResponse.sessionId!!),
- Expires(loginResponse.dateTimeEnd!!),
- route
- )
- }
- @Throws(SessionErrorException::class, InvalidStateException::class)
- override fun closeSession(session: Session) {
- val request = SignOutRequest(session.sessionId.toString())
- val body = SignOutRequestBody(request)
- val envelope = SignOutRequestEnvelope(body)
- val response = sessionApi.signOut(
- envelope,
- FirebaseInstanceId.getInstance().token.toString()
- ).execute()
- if (!response.isSuccessful) {
- throw SessionErrorException(response.message())
- }
- val loginResponse = response
- .body()
- ?.signOutResponseBody
- ?.signOutResponse
- ?.signOutResponseReturn
- ?: throw SessionErrorException(errorMessage)
- loginResponse.validate()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement