Advertisement
Guest User

JobService.kt

a guest
Jun 17th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 3.39 KB | None | 0 0
  1. package com.comtrade.aicapone.Services
  2.  
  3. import android.app.Service
  4. import android.content.res.Resources
  5. import android.database.Observable
  6. import android.util.Log
  7. import com.comtrade.aicapone.Models.Coordinate
  8. import com.comtrade.aicapone.Models.Job
  9. import com.comtrade.aicapone.R
  10. import com.google.gson.Gson
  11. import com.google.gson.JsonObject
  12. import okhttp3.Interceptor
  13.  
  14. import okhttp3.OkHttpClient
  15. import okhttp3.Request
  16. import retrofit2.Call
  17.  
  18. import retrofit2.Retrofit
  19. import retrofit2.Callback
  20. import retrofit2.Response
  21. import retrofit2.converter.gson.GsonConverterFactory
  22. import retrofit2.http.*
  23. import java.util.*
  24.  
  25. interface JobBaseService {
  26.     @POST("Jobs")
  27.     fun post(@Body body: Job): Call<Job>
  28.  
  29.     @GET("Jobs")
  30.     fun get(@Query("statusId") statusId: Int): Call<Array<Job>>
  31.  
  32.     @GET("Jobs/{id}")
  33.     fun getById(@Path("id") id: Int): Call<Job>
  34.  
  35.     @PUT("Jobs/{id}")
  36.     fun updateJob(@Body body: Job, @Path("id") id: Long): Call<Job>
  37.  
  38.     @PUT("Jobs/Location/{userID}")
  39.     fun updateJobsLocation(@Body body: Coordinate, @Path("userID") userID: Long): Call<Job>
  40.  
  41. }
  42.  
  43. fun getClient(token: String?): OkHttpClient {
  44.     var httpClient: OkHttpClient.Builder = OkHttpClient.Builder().addInterceptor(object: okhttp3.Interceptor{
  45.         override fun intercept(chain: Interceptor.Chain?): okhttp3.Response {
  46.             var request: Request = chain!!.request().newBuilder().addHeader("Authorization","Bearer "+ token).build()
  47.             return chain.proceed(request)
  48.         }
  49.     })
  50.  
  51.     return httpClient.build()
  52. }
  53.  
  54. class JobService(val API_BASE_URL: String) {
  55.  
  56.     fun create(job: Job, token: String?): Call<Job> {
  57.         val retrofit = Retrofit.Builder()
  58.                 .baseUrl(API_BASE_URL)
  59.                 .addConverterFactory(GsonConverterFactory.create()).client(getClient(token))
  60.                 .build().create(JobBaseService::class.java).post(job)
  61.         return retrofit
  62.     }
  63.  
  64.     fun getAll(statusId: Int, token: String?): Call<Array<Job>> {
  65.         val retrofit = Retrofit.Builder()
  66.                 .baseUrl(API_BASE_URL)
  67.                 .addConverterFactory(GsonConverterFactory.create()).client(getClient(token))
  68.                 .build().create(JobBaseService::class.java).get(statusId)
  69.         return retrofit
  70.     }
  71.  
  72.     fun getById(id: Int, token: String?): Call<Job> {
  73.         val retrofit = Retrofit.Builder()
  74.                 .baseUrl(API_BASE_URL)
  75.                 .addConverterFactory(GsonConverterFactory.create()).client(getClient(token))
  76.                 .build().create(JobBaseService::class.java).getById(id)
  77.         return retrofit
  78.     }
  79.  
  80.     fun updateJob(job: Job, id: Long, token: String?): Call<Job> {
  81.         val retrofit = Retrofit.Builder()
  82.                 .baseUrl(API_BASE_URL)
  83.                 .addConverterFactory(GsonConverterFactory.create()).client(getClient(token))
  84.                 .build().create(JobBaseService::class.java).updateJob(job, id)
  85.         return retrofit
  86.     }
  87.     fun updateJobsLocation(body: Coordinate, userID: Long, token: String?): Call<Job> {
  88.         val retrofit = Retrofit.Builder()
  89.                 .baseUrl(API_BASE_URL)
  90.                 .addConverterFactory(GsonConverterFactory.create()).client(getClient(token))
  91.                 .build().create(JobBaseService::class.java).updateJobsLocation(body,userID)
  92.         return retrofit
  93.     }
  94.  
  95. }
  96.  
  97. /*
  98. updateJobsLocation je dodato sa poslednjim @PUT om*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement