package com.example.smartlab.Model

import com.google.gson.GsonBuilder
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import retrofit2.converter.scalars.ScalarsConverterFactory

object APIUse {

    val _URL =
        "https://iis.ngknn.ru/NGKNN/МамшеваЮС/MedicMadlab/" //ссылка на API - статично, НЕ ТРОГАЙ !

    private val interceptor = HttpLoggingInterceptor()
    //interceptor.level = HttpLoggingInterceptor.Level.BODY //эта штука здесь не работает

    private val httpClient = OkHttpClient.Builder()
        .addInterceptor(interceptor)
        .build()

    private val gsonBuilder = GsonBuilder()
        .setLenient()
        .create()

    private val retrofit = Retrofit.Builder()
        .baseUrl(_URL)
        .client(httpClient)
        .addConverterFactory(ScalarsConverterFactory.create())
        .addConverterFactory(GsonConverterFactory.create(gsonBuilder))
        .build()

    //Полезная фича для вызова любого запроса!
    val apiService: ApiRequest
        get() = retrofit.create(ApiRequest::class.java) //НЕ ТРОГАЙ !
    /*Пример использования:
    CoroutineScope(Dispatchers.IO).launch {
        try {
            APIUse.apiService.getUser("123").awaitResponse()
            startActivity(intent) //это делаешь заранее
            Log.d("Response", "Success send Email") // Вывод информации на консоль
        } catch (e: Exception) {
            Log.d(ContentValues.TAG, e.toString()) // Вывод информации на консоль
        }
    }
    */
}
