From acc732871fe3edbbb30b93251fb32e8a383af960 Mon Sep 17 00:00:00 2001 From: Cutiful <113351087+Syaroful@users.noreply.github.com> Date: Thu, 10 Jul 2025 18:17:45 +0700 Subject: [PATCH] feat: Add Koin module for clustering network service This commit introduces a Koin module, `clusterNetworkModule`, to provide instances for network-related dependencies for the clustering feature. Specifically, it provides: - An `OkHttpClient` instance with a 5-second connection timeout. - A `Retrofit` instance configured with a base URL ("http://labai.polinema.ac.id:5050/"), the provided `OkHttpClient`, and `GsonConverterFactory`. - A `ClusteringService` instance created by the `Retrofit` instance. --- .../di/ClusterNetwotkModule.kt | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 agrilinkvocpro/growth_recipe_feature/src/main/java/com/syaroful/agrilinkvocpro/growth_recipe_feature/di/ClusterNetwotkModule.kt diff --git a/agrilinkvocpro/growth_recipe_feature/src/main/java/com/syaroful/agrilinkvocpro/growth_recipe_feature/di/ClusterNetwotkModule.kt b/agrilinkvocpro/growth_recipe_feature/src/main/java/com/syaroful/agrilinkvocpro/growth_recipe_feature/di/ClusterNetwotkModule.kt new file mode 100644 index 0000000..052b95c --- /dev/null +++ b/agrilinkvocpro/growth_recipe_feature/src/main/java/com/syaroful/agrilinkvocpro/growth_recipe_feature/di/ClusterNetwotkModule.kt @@ -0,0 +1,26 @@ +package com.syaroful.agrilinkvocpro.growth_recipe_feature.di + +import com.syaroful.agrilinkvocpro.growth_recipe_feature.data.network.ClusteringService +import okhttp3.OkHttpClient +import org.koin.dsl.module +import retrofit2.Retrofit +import retrofit2.converter.gson.GsonConverterFactory +import java.util.concurrent.TimeUnit + +val clusterNetworkModule = module { + single { + OkHttpClient.Builder() + .connectTimeout(5, TimeUnit.SECONDS) + .build() + } + + single { + Retrofit.Builder() + .baseUrl("http://labai.polinema.ac.id:5050/") + .client(get()) + .addConverterFactory(GsonConverterFactory.create()) + .build() + } + + single { get().create(ClusteringService::class.java) } +} \ No newline at end of file