Advertisement
Guest User

Untitled

a guest
Feb 3rd, 2019
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.96 KB | None | 0 0
  1. class Api(private val context: Context) {
  2.  
  3. private val builder: Retrofit.Builder
  4. private val logging = HttpLoggingInterceptor()
  5. private val httpClient = OkHttpClient.Builder()
  6.  
  7.  
  8. init {
  9. val gson = GsonBuilder().setLenient().create()
  10. builder = Retrofit.Builder()
  11. .baseUrl("http://192.168.113.109:8080")
  12. .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
  13. .addConverterFactory(GsonConverterFactory.create(gson))
  14. logging.level = HttpLoggingInterceptor.Level.BODY
  15. httpClient.addInterceptor(logging)
  16.  
  17. }
  18.  
  19. fun <S> createService(serviceClass: Class<S>): S {
  20. return createService(serviceClass, null)
  21. }
  22.  
  23. fun <S> createService(serviceClass: Class<S>, authToken: String?): S {
  24. val retrofit: Retrofit
  25.  
  26. if (!TextUtils.isEmpty(authToken)) {
  27. val interceptor = AuthorizationInterceptor(authToken!!)
  28. if (!httpClient.interceptors().contains(interceptor)) {
  29. httpClient.addInterceptor(RefleshTokenInterception(context))
  30. httpClient.addInterceptor(interceptor)
  31. }
  32. } else {
  33. httpClient.addInterceptor(AuthenticatorInterception(context))
  34. }
  35.  
  36. httpClient.addInterceptor(object : NetworkConnectionInterceptor() {
  37. override fun isInternetAvailable(): Boolean {
  38.  
  39. val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
  40. val netInfo = connectivityManager.activeNetworkInfo
  41.  
  42. return netInfo != null && netInfo.isConnected
  43. }
  44. override fun onInternetUnavailable() {
  45.  
  46. }
  47. })
  48.  
  49. httpClient.connectTimeout(100, TimeUnit.SECONDS)
  50. .readTimeout(100, TimeUnit.SECONDS)
  51. .writeTimeout(100, TimeUnit.SECONDS)
  52.  
  53. builder.client(httpClient.build())
  54. retrofit = builder.build()
  55.  
  56. return retrofit.create(serviceClass)
  57. }
  58.  
  59.  
  60. fun produtoService(): ProdutoService {
  61. val tokenPreference = AccessTokenPreference(context)
  62. return createService(ProdutoService::class.java, tokenPreference.getToken())
  63. }
  64.  
  65. fun clienteService(): ClienteService {
  66. val tokenPreference = AccessTokenPreference(context)
  67. return createService(ClienteService::class.java, tokenPreference.getToken())
  68. }
  69.  
  70. fun municipioService() :MunicipioService {
  71. val tokenPreference = AccessTokenPreference(context)
  72. return createService(MunicipioService::class.java, tokenPreference.getToken())
  73. }
  74.  
  75. fun segurancaService(): TokenService {
  76. return createService(TokenService::class.java)
  77. }
  78.  
  79.  
  80.  
  81. fun login(usuario: String, senha: String): Observable<AccessToken> {
  82. return segurancaService().getAccessToken(
  83. userName = usuario,
  84. password = senha
  85. )
  86. }
  87.  
  88.  
  89.  
  90.  
  91.  
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement