Client code ``` class Client { private var rf...
# squarelibraries
m
Client code
Copy code
class Client {

    private var rfBuilder = Retrofit.Builder()
    private var service: ClientService

    init {
        this.rfBuilder.apply {
            baseUrl(BASE_URL)
            addConverterFactory(
                GsonConverterFactory.create(
                    GsonBuilder().apply {
                        excludeFieldsWithoutExposeAnnotation()
                        setPrettyPrinting()
                    }.create()
                )
            )
            client(
                OkHttpClient.Builder().apply {
                    addInterceptor { chain ->
                        val original = chain.request()

                        val requestBuilder = original.newBuilder().addHeader("User-Agent", USER_AGENT)
                        val request = requestBuilder.build()
                        chain.proceed(request)
                    }
                }.build()
            )
        }

        <http://logger.info|logger.info> { "Client running with user agent $USER_AGENT" }
        this.service = rfBuilder.build().create()
    }