-
-
Save c4software/b3eb79cc5649d12e497dbf6d35649dcd to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * ApiService | |
| */ | |
| interface ApiService { | |
| @GET("/status") | |
| suspend fun readStatus(@Query("identifier") identifier: String): LedStatus | |
| @POST("/status") | |
| suspend fun writeStatus(@Body status: LedStatus): LedStatus | |
| companion object { | |
| /** | |
| * Création d'un singleton pour la simplicité, mais normalement nous utilisons plutôt un | |
| * injecteur de dépendances. | |
| */ | |
| val instance = build() | |
| /** | |
| * Création de l'objet qui nous permettra de faire les appels d'API | |
| */ | |
| private fun build(): ApiService { | |
| val gson = GsonBuilder().create() // JSON deserializer/serializer | |
| // Create the OkHttp Instance | |
| val okHttpClient = OkHttpClient.Builder() | |
| .readTimeout(30, TimeUnit.SECONDS) | |
| .writeTimeout(30, TimeUnit.SECONDS) | |
| .addInterceptor(HttpLoggingInterceptor().setLevel(if (BuildConfig.DEBUG) HttpLoggingInterceptor.Level.BODY else HttpLoggingInterceptor.Level.NONE)) | |
| .addInterceptor(Interceptor { chain: Interceptor.Chain -> | |
| val request = chain.request().newBuilder().addHeader("Accept", "application/json").build() | |
| chain.proceed(request) | |
| }) | |
| .build() | |
| return Retrofit.Builder() | |
| .baseUrl(BuildConfig.URI_REMOTE_SERVER) | |
| .client(okHttpClient) | |
| .addConverterFactory(GsonConverterFactory.create(gson)) | |
| .build() | |
| .create(ApiService::class.java) | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment