Advertisement
Guest User

Untitled

a guest
Jul 19th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 2.86 KB | None | 0 0
  1. package madbrains.omnicomm.system.service.session.dao
  2.  
  3. import com.google.firebase.iid.FirebaseInstanceId
  4. import madbrains.omnicomm.ioc.InjectionContainer
  5. import madbrains.omnicomm.system.exception.FormatInvalidException
  6. import madbrains.omnicomm.system.exception.InvalidStateException
  7. import madbrains.omnicomm.system.service.route.Route
  8. import madbrains.omnicomm.system.service.session.Expires
  9. import madbrains.omnicomm.system.service.session.Session
  10. import madbrains.omnicomm.system.service.session.SessionId
  11. import madbrains.omnicomm.system.service.session.credentials.Credentials
  12. import madbrains.omnicomm.system.service.session.dao.soap.*
  13. import retrofit2.Retrofit
  14. import javax.inject.Inject
  15.  
  16. class SessionSoapDAO(container: InjectionContainer<SessionSoapDAO>) : SessionDAO {
  17.     @Inject
  18.     internal lateinit var retrofit: Retrofit
  19.     @Inject
  20.     internal lateinit var errorMessage: String
  21.  
  22.     private val sessionApi: SessionApi
  23.  
  24.     init {
  25.         container.inject(this)
  26.  
  27.         sessionApi = retrofit.create(SessionApi::class.java)
  28.     }
  29.  
  30.     @Throws(SessionErrorException::class, FormatInvalidException::class)
  31.     override fun getSession(route: Route, credentials: Credentials): Session {
  32.         val request = SignInRequest(credentials.login.toString(), credentials.password.toString())
  33.         val body = SignInRequestBody(request)
  34.         val envelope = SignInRequestEnvelope(body)
  35.  
  36.  
  37.         val response = sessionApi.signIn(envelope,
  38.             FirebaseInstanceId.getInstance().token.toString()).execute()
  39.  
  40.         if (!response.isSuccessful) {
  41.             throw SessionErrorException(response.message())
  42.         }
  43.  
  44.         val loginResponse = response
  45.             .body()
  46.             ?.signInResponseBody
  47.             ?.signInResponse
  48.             ?.signInResponseReturn
  49.             ?: throw SessionErrorException(errorMessage)
  50.  
  51.         loginResponse.validate()
  52.  
  53.         return Session(
  54.             SessionId(loginResponse.sessionId!!),
  55.             Expires(loginResponse.dateTimeEnd!!),
  56.             route
  57.         )
  58.     }
  59.  
  60.     @Throws(SessionErrorException::class, InvalidStateException::class)
  61.     override fun closeSession(session: Session) {
  62.         val request = SignOutRequest(session.sessionId.toString())
  63.         val body = SignOutRequestBody(request)
  64.         val envelope = SignOutRequestEnvelope(body)
  65.         val response = sessionApi.signOut(
  66.             envelope,
  67.             FirebaseInstanceId.getInstance().token.toString()
  68.         ).execute()
  69.  
  70.         if (!response.isSuccessful) {
  71.             throw SessionErrorException(response.message())
  72.         }
  73.  
  74.         val loginResponse = response
  75.             .body()
  76.             ?.signOutResponseBody
  77.             ?.signOutResponse
  78.             ?.signOutResponseReturn
  79.             ?: throw SessionErrorException(errorMessage)
  80.  
  81.         loginResponse.validate()
  82.     }
  83.  
  84.  
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement