Skip to content

Commit 517219b

Browse files
authored
Merge pull request #81 from Nico1eKim/api/home
[FEAT] home api 연결
2 parents a56eaa0 + 6710078 commit 517219b

25 files changed

Lines changed: 440 additions & 316 deletions

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ output.json
5959
misc.xml
6060
deploymentTargetDropDown.xml
6161
render.experimental.xml
62+
deploymentTargetSelector.xml
6263

6364
# Keystore files
6465
*.jks

app/src/main/java/com/kuit/ourmenu/data/di/ServiceModule.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.kuit.ourmenu.data.di
33
import com.kuit.ourmenu.data.service.AuthService
44
import com.kuit.ourmenu.data.service.CacheService
55
import com.kuit.ourmenu.data.service.DummyService
6+
import com.kuit.ourmenu.data.service.HomeService
67
import com.kuit.ourmenu.data.service.MapService
78
import com.kuit.ourmenu.data.service.MenuFolderService
89
import com.kuit.ourmenu.data.service.MenuInfoService
@@ -48,6 +49,11 @@ object ServiceModule {
4849
fun provideMenuFolderService(retrofit: Retrofit): MenuFolderService =
4950
retrofit.create(MenuFolderService::class.java)
5051

52+
@Provides
53+
@Singleton
54+
fun provideHomeService(retrofit: Retrofit): HomeService =
55+
retrofit.create(HomeService::class.java)
56+
5157
@Provides
5258
@Singleton
5359
fun provideMenuInfoService(retrofit: Retrofit): MenuInfoService =
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.kuit.ourmenu.data.model.home.request
2+
3+
import kotlinx.serialization.Serializable
4+
5+
@Serializable
6+
data class HomeAnswerRequest(
7+
val answer: String
8+
)
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.kuit.ourmenu.data.model.home.response
2+
3+
import kotlinx.serialization.Serializable
4+
5+
@Serializable
6+
data class HomeQuestionResponse(
7+
val question: String,
8+
val answers: List<Answer>
9+
)
10+
11+
@Serializable
12+
data class Answer(
13+
val answer: String,
14+
val answerImgUrl: String
15+
)
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.kuit.ourmenu.data.model.home.response
2+
3+
import kotlinx.serialization.Serializable
4+
5+
@Serializable
6+
data class HomeResponse(
7+
val answerImgUrl: String = "",
8+
val answerRecommendMenus: List<RecommendMenuList> = emptyList(),
9+
val tagRecommendImgUrl: String = "",
10+
val tagRecommendMenus: List<RecommendMenuList> = emptyList(),
11+
val otherRecommendImgUrl: String = "",
12+
val otherRecommendMenus: List<RecommendMenuList> = emptyList(),
13+
)
14+
15+
@Serializable
16+
data class RecommendMenuList(
17+
val menuId: Long = 0,
18+
val menuTitle: String = "",
19+
val storeName: String = "",
20+
val menuImgUrl: String = "",
21+
)
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.kuit.ourmenu.data.repository
2+
3+
import com.kuit.ourmenu.data.model.base.handleBaseResponse
4+
import com.kuit.ourmenu.data.model.home.request.HomeAnswerRequest
5+
import com.kuit.ourmenu.data.service.HomeService
6+
import javax.inject.Inject
7+
import javax.inject.Singleton
8+
9+
@Singleton
10+
class HomeRepository @Inject constructor(
11+
private val homeService: HomeService,
12+
) {
13+
suspend fun getHome() = runCatching {
14+
homeService.getHome().handleBaseResponse().getOrThrow()
15+
}
16+
17+
suspend fun postHomeQuestion() = runCatching {
18+
homeService.postHomeQuestion().handleBaseResponse().getOrThrow()
19+
}
20+
21+
suspend fun postHomeAnswer(answer: String) = runCatching {
22+
homeService.postHomeAnswer(HomeAnswerRequest(answer))
23+
.handleBaseResponse()
24+
.getOrThrow()
25+
}
26+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.kuit.ourmenu.data.service
2+
3+
import com.kuit.ourmenu.data.model.base.BaseResponse
4+
import com.kuit.ourmenu.data.model.home.request.HomeAnswerRequest
5+
import com.kuit.ourmenu.data.model.home.response.HomeQuestionResponse
6+
import com.kuit.ourmenu.data.model.home.response.HomeResponse
7+
import retrofit2.http.Body
8+
import retrofit2.http.GET
9+
import retrofit2.http.POST
10+
11+
interface HomeService {
12+
@GET("api/home")
13+
suspend fun getHome(): BaseResponse<HomeResponse>
14+
15+
@POST("/api/home/questions")
16+
suspend fun postHomeQuestion(): BaseResponse<HomeQuestionResponse>
17+
18+
@POST("/api/home/questions/answers")
19+
suspend fun postHomeAnswer(
20+
@Body answerRequest: HomeAnswerRequest
21+
): BaseResponse<Unit>
22+
}

app/src/main/java/com/kuit/ourmenu/ui/common/dialog/DialogBigButton.kt

Lines changed: 0 additions & 115 deletions
This file was deleted.

app/src/main/java/com/kuit/ourmenu/ui/common/topappbar/OurMenuAddButtonTopAppBar.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@ import com.kuit.ourmenu.ui.theme.NeutralWhite
1818

1919
@OptIn(ExperimentalMaterial3Api::class)
2020
@Composable
21-
fun OurMenuAddButtonTopAppBar(modifier: Modifier = Modifier) {
21+
fun OurMenuAddButtonTopAppBar(
22+
modifier: Modifier = Modifier,
23+
onAddMenuClick: () -> Unit = {}
24+
) {
2225
// 기본
2326
TopAppBar(
2427
modifier = modifier.fillMaxWidth(),
@@ -35,7 +38,7 @@ fun OurMenuAddButtonTopAppBar(modifier: Modifier = Modifier) {
3538
},
3639
actions = {
3740
IconButton(
38-
onClick = { /* TODO : Add Menu Button Click Event */ },
41+
onClick = onAddMenuClick,
3942
modifier = Modifier.padding(end = 20.dp)
4043
) {
4144
Icon(

0 commit comments

Comments
 (0)