Skip to content

Commit

Permalink
[feat] #40 통계 Api 연동
Browse files Browse the repository at this point in the history
  • Loading branch information
Dan2dani committed Dec 4, 2023
1 parent b79f927 commit b72889e
Show file tree
Hide file tree
Showing 6 changed files with 81 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.example.howdroid.data.datasource.remote

import com.example.howdroid.data.model.response.ResponseStatistic
import com.example.howdroid.data.service.ChartService
import javax.inject.Inject

class ChartDataSource @Inject constructor(
private val chartService: ChartService
) {
suspend fun fetchStatistic(selectedDate: String): ResponseStatistic =
chartService.fetchStatistic(selectedDate)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.example.howdroid.data.model.response

import kotlinx.serialization.Serializable

@Serializable
data class ResponseStatistic(
val nowBestCategory: String,
val nowCategoryDate: List<NowCategoryDate>,
val nowFailtagList: List<NowFailtag>,
val nowTodoCnt: Int,
val nowTodoDoneCnt: Int,
val nowWorstFailtag: String,
val prevTodoCnt: Int,
val prevTodoDoneCnt: Int,
val rateOfChange: Int,
val selectedDate: String
) {
@Serializable
data class NowCategoryDate(
val nowCategory: String,
val nowCategoryRate: Int
)
@Serializable
data class NowFailtag(
val nowFailtag: String,
val nowFailtagRate: Int
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.example.howdroid.data.repository

import com.example.howdroid.data.datasource.remote.ChartDataSource
import com.example.howdroid.data.model.response.ResponseStatistic
import com.example.howdroid.domain.repository.ChartRepository
import javax.inject.Inject

class ChartRepositoryImpl @Inject constructor(
private val chartDataSource: ChartDataSource
) : ChartRepository {
override suspend fun fetchStatistic(selectedDate: String): Result<ResponseStatistic> =
runCatching {
chartDataSource.fetchStatistic(selectedDate)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.example.howdroid.data.service

import com.example.howdroid.data.model.response.ResponseStatistic
import retrofit2.http.GET
import retrofit2.http.Path

interface ChartService {
@GET("statistic/{selectedDate}")
suspend fun fetchStatistic(
@Path("selectedDate") selectedDate: String,
): ResponseStatistic
}
7 changes: 7 additions & 0 deletions app/src/main/java/com/example/howdroid/di/RepositoryModule.kt
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package com.example.howdroid.di

import com.example.howdroid.data.repository.AuthRepositoryImpl
import com.example.howdroid.data.repository.ChartRepositoryImpl
import com.example.howdroid.data.repository.HomeRepositoryImpl
import com.example.howdroid.data.repository.MyFailTagRepositoryImpl
import com.example.howdroid.data.repository.ToDoRepositoryImpl
import com.example.howdroid.domain.repository.AuthRepository
import com.example.howdroid.domain.repository.ChartRepository
import com.example.howdroid.domain.repository.HomeRepository
import com.example.howdroid.domain.repository.MyFailTagRepository
import com.example.howdroid.domain.repository.ToDoRepository
Expand Down Expand Up @@ -37,4 +39,9 @@ object RepositoryModule {
@Singleton
fun providesToDoRepository(toDoRepositoryImpl: ToDoRepositoryImpl): ToDoRepository =
toDoRepositoryImpl

@Provides
@Singleton
fun providesChartRepository(chartRepositoryImpl: ChartRepositoryImpl): ChartRepository =
chartRepositoryImpl
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.example.howdroid.domain.repository

import com.example.howdroid.data.model.response.ResponseStatistic

interface ChartRepository {
suspend fun fetchStatistic(selectedDate: String): Result<ResponseStatistic>
}

0 comments on commit b72889e

Please sign in to comment.