@@ -4,15 +4,20 @@ import android.content.Context
44import com.google.android.libraries.places.api.Places
55import com.google.android.libraries.places.api.net.PlacesClient
66import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
7+ import com.yapp.ndgl.data.core.di.GeocodingClient
78import com.yapp.ndgl.data.core.di.RouteApiKey
89import com.yapp.ndgl.data.core.di.RouteBaseUrl
910import com.yapp.ndgl.data.core.di.RouteClient
11+ import com.yapp.ndgl.data.core.di.WeatherApiKey
12+ import com.yapp.ndgl.data.core.di.WeatherClient
1013import com.yapp.ndgl.data.travel.BuildConfig
14+ import com.yapp.ndgl.data.travel.api.GeocodingApi
1115import com.yapp.ndgl.data.travel.api.PlaceApi
1216import com.yapp.ndgl.data.travel.api.RouteApi
1317import com.yapp.ndgl.data.travel.api.TravelProgramApi
1418import com.yapp.ndgl.data.travel.api.TravelTemplateApi
1519import com.yapp.ndgl.data.travel.api.UserTravelApi
20+ import com.yapp.ndgl.data.travel.api.WeatherApi
1621import dagger.Module
1722import dagger.Provides
1823import dagger.hilt.InstallIn
@@ -28,6 +33,8 @@ import javax.inject.Singleton
2833@InstallIn(SingletonComponent ::class )
2934object TravelNetworkModule {
3035 private const val ROUTES_BASE_URL = " https://routes.googleapis.com/"
36+ private const val WEATHER_BASE_URL = " https://weather.googleapis.com/"
37+ private const val GEOCODING_BASE_URL = " https://maps.googleapis.com/"
3138
3239 @Provides
3340 @Singleton
@@ -45,6 +52,45 @@ object TravelNetworkModule {
4552 @Singleton
4653 fun provideRouteApiKey (): String = BuildConfig .ROUTE_API_KEY
4754
55+ @WeatherApiKey
56+ @Provides
57+ @Singleton
58+ fun provideWeatherApiKey (): String = BuildConfig .WEATHER_API_KEY
59+
60+ @WeatherClient
61+ @Provides
62+ @Singleton
63+ fun provideWeatherRetrofit (
64+ @WeatherClient okHttpClient : OkHttpClient ,
65+ json : Json ,
66+ ): Retrofit = Retrofit .Builder ()
67+ .baseUrl(WEATHER_BASE_URL )
68+ .client(okHttpClient)
69+ .addConverterFactory(json.asConverterFactory(" application/json" .toMediaType()))
70+ .build()
71+
72+ @Provides
73+ @Singleton
74+ fun provideWeatherApi (@WeatherClient retrofit : Retrofit ): WeatherApi =
75+ retrofit.create(WeatherApi ::class .java)
76+
77+ @GeocodingClient
78+ @Provides
79+ @Singleton
80+ fun provideGeocodingRetrofit (
81+ @WeatherClient okHttpClient : OkHttpClient ,
82+ json : Json ,
83+ ): Retrofit = Retrofit .Builder ()
84+ .baseUrl(GEOCODING_BASE_URL )
85+ .client(okHttpClient)
86+ .addConverterFactory(json.asConverterFactory(" application/json" .toMediaType()))
87+ .build()
88+
89+ @Provides
90+ @Singleton
91+ fun provideGeocodingApi (@GeocodingClient retrofit : Retrofit ): GeocodingApi =
92+ retrofit.create(GeocodingApi ::class .java)
93+
4894 @RouteBaseUrl
4995 @Provides
5096 @Singleton
0 commit comments