Skip to content

Commit

Permalink
feat(clean): #83 클린 아키텍쳐 적용
Browse files Browse the repository at this point in the history
  • Loading branch information
kez-lab committed May 4, 2023
1 parent 35046fc commit f2ea4b1
Show file tree
Hide file tree
Showing 52 changed files with 217 additions and 108 deletions.
2 changes: 1 addition & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@

<receiver android:name=".alarm.AlarmBroadCastReceiver" />
<receiver
android:name=".ui.widget.MenuWidget"
android:name=".presentation.widget.MenuWidget"
android:exported="true">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,6 @@ interface HomeFoodApi {
@Body body: RequestReviewData
): Response<ResponseReviewData>

@POST("/api/v2/users")
suspend fun postUser(
@Body body: RequestUserData
): Response<ResponseUserData>

@POST("/api/v2/meals/evaluate")
suspend fun postMeal(
@Body body: RequestMealData
Expand Down
12 changes: 12 additions & 0 deletions app/src/main/java/com/myongsik/myongsikandroid/data/api/UserApi.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.myongsik.myongsikandroid.data.api

import com.myongsik.myongsikandroid.data.model.user.RequestUserData
import com.myongsik.myongsikandroid.data.model.user.ResponseUserData
import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.POST

interface UserApi {
@POST("/api/v2/users")
suspend fun postUser(@Body body: RequestUserData): Response<ResponseUserData>
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
package com.myongsik.myongsikandroid.data.model.user

import com.myongsik.myongsikandroid.domain.model.RequestUserEntity


data class RequestUserData(
var phoneId : String
var phoneId: String
)

fun RequestUserData.toRequestUserEntity() = RequestUserEntity(
phoneId = this.phoneId
)

fun RequestUserEntity.toRequestUserData() = RequestUserData(
phoneId = this.phoneId
)

Original file line number Diff line number Diff line change
@@ -1,16 +1,40 @@
package com.myongsik.myongsikandroid.data.model.user

import com.myongsik.myongsikandroid.domain.model.ResponseUserEntity

data class ResponseUserData(
val httpCode: Int,
val success : Boolean,
val localDataTime : ArrayList<Int>,
val httpStatus : String,
val message : String,
val data : Result
){
val success: Boolean,
val localDataTime: ArrayList<Int>,
val httpStatus: String,
val message: String,
val data: Result
) {
data class Result(
val id: String,
val phoneId : String
val phoneId: String
)
}

fun ResponseUserData.toResponseUserEntity() = ResponseUserEntity(
httpCode = this.httpCode,
success = this.success,
localDataTime = this.localDataTime,
httpStatus = this.httpStatus,
message = this.message,
id = data.id,
phoneId = data.phoneId
)

fun ResponseUserEntity.toResponseUserData() = ResponseUserData(
httpCode = this.httpCode,
success = this.success,
localDataTime = this.localDataTime,
httpStatus = this.httpStatus,
message = this.message,
data = ResponseUserData.Result(
id = this.id,
phoneId = this.phoneId
)
)

Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@ interface FoodRepository {

suspend fun postReview(requestReviewData: RequestReviewData): Response<ResponseReviewData>

suspend fun postUser(requestUserData: RequestUserData): Response<ResponseUserData>

suspend fun postScrapRestaurant(requestScrap: RequestScrap): Response<ResponseScrap>

suspend fun getRankRestaurant(sort : String, campus : String, size : Int) : Response<RankRestaurantResponse>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,6 @@ class FoodRepositoryImpl @Inject constructor(
return api.postReview(requestReviewData)
}

override suspend fun postUser(requestUserData: RequestUserData): Response<ResponseUserData> {
return api.postUser(requestUserData)
}

override suspend fun postScrapRestaurant(requestScrap: RequestScrap): Response<ResponseScrap> {
return api.postRestaurantScrap(requestScrap)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.myongsik.myongsikandroid.data.repository.user

import com.myongsik.myongsikandroid.domain.model.RequestUserEntity
import com.myongsik.myongsikandroid.domain.model.ResponseUserEntity

interface UserRepository {

suspend fun postUser(requestUserEntity: RequestUserEntity): ResponseUserEntity?

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.myongsik.myongsikandroid.data.repository.user

import com.myongsik.myongsikandroid.data.api.UserApi
import com.myongsik.myongsikandroid.data.model.user.RequestUserData
import com.myongsik.myongsikandroid.data.model.user.ResponseUserData
import com.myongsik.myongsikandroid.data.model.user.toRequestUserData
import com.myongsik.myongsikandroid.data.model.user.toResponseUserEntity
import com.myongsik.myongsikandroid.domain.model.RequestUserEntity
import com.myongsik.myongsikandroid.domain.model.ResponseUserEntity
import retrofit2.Response
import javax.inject.Inject

class UserRepositoryImpl @Inject constructor(private val userApi: UserApi) : UserRepository {
override suspend fun postUser(requestUserEntity: RequestUserEntity): ResponseUserEntity? {
val response = userApi.postUser(requestUserEntity.toRequestUserData())
return if (response.isSuccessful) {
response.body()?.toResponseUserEntity()
} else {
null
}
}
}
12 changes: 12 additions & 0 deletions app/src/main/java/com/myongsik/myongsikandroid/di/AppModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import androidx.datastore.preferences.preferencesDataStoreFile
import androidx.room.Room
import com.myongsik.myongsikandroid.data.api.HomeFoodApi
import com.myongsik.myongsikandroid.data.api.SearchFoodApi
import com.myongsik.myongsikandroid.data.api.UserApi
import com.myongsik.myongsikandroid.data.db.RestaurantDatabase
import com.myongsik.myongsikandroid.util.Constant
import com.myongsik.myongsikandroid.util.Constant.DATASTORE_NAME
Expand Down Expand Up @@ -68,6 +69,17 @@ object AppModule {
.build()
.create()
}

@Singleton
@Provides
fun provideUserApi(okHttpClient: OkHttpClient, gsonConverterFactory: GsonConverterFactory): UserApi {
return Retrofit.Builder()
.baseUrl(Constant.MYONG_SIK_BASE_URL)
.client(okHttpClient)
.addConverterFactory(gsonConverterFactory)
.build()
.create()
}

//Room
@Singleton
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import com.myongsik.myongsikandroid.data.repository.food.FoodRepository
import com.myongsik.myongsikandroid.data.repository.food.FoodRepositoryImpl
import com.myongsik.myongsikandroid.data.repository.search.SearchFoodRepository
import com.myongsik.myongsikandroid.data.repository.search.SearchFoodRepositoryImpl
import com.myongsik.myongsikandroid.data.repository.user.UserRepository
import com.myongsik.myongsikandroid.data.repository.user.UserRepositoryImpl
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
Expand All @@ -25,4 +27,10 @@ abstract class RepositoryModule {
abstract fun bindSearchFoodRepository(
searchFoodRepositoryImpl: SearchFoodRepositoryImpl
): SearchFoodRepository

@Singleton
@Binds
abstract fun bindUserRepository(
userRepositoryImpl: UserRepositoryImpl
): UserRepository
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.myongsik.myongsikandroid.domain

interface UserCase {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.myongsik.myongsikandroid.domain.model

data class RequestUserEntity(
val phoneId: String
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.myongsik.myongsikandroid.domain.model

data class ResponseUserEntity(
val httpCode: Int,
val success: Boolean,
val localDataTime: ArrayList<Int>,
val httpStatus: String,
val message: String,
val id: String,
val phoneId: String
)

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.myongsik.myongsikandroid.domain.user

import com.myongsik.myongsikandroid.data.repository.user.UserRepository
import com.myongsik.myongsikandroid.domain.UserCase
import com.myongsik.myongsikandroid.domain.model.RequestUserEntity
import javax.inject.Inject

class PostUserDataUseCase @Inject constructor(private val userRepository: UserRepository) : UserCase {
suspend operator fun invoke(requestUserEntity: RequestUserEntity) = userRepository.postUser(requestUserEntity)
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.myongsik.myongsikandroid.ui.adapter.food
package com.myongsik.myongsikandroid.presentation.adapter.food

import android.graphics.Color
import android.graphics.Typeface
Expand All @@ -13,7 +13,7 @@ import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.myongsik.myongsikandroid.R
import com.myongsik.myongsikandroid.databinding.ItemHomeTodayFoodBinding
import com.myongsik.myongsikandroid.ui.viewmodel.food.HomeViewModel
import com.myongsik.myongsikandroid.presentation.viewmodel.food.HomeViewModel
import com.myongsik.myongsikandroid.util.Constant.DINNER
import com.myongsik.myongsikandroid.util.Constant.DINNER_H
import com.myongsik.myongsikandroid.util.Constant.DINNER_S
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.myongsik.myongsikandroid.ui.adapter.food
package com.myongsik.myongsikandroid.presentation.adapter.food

import com.myongsik.myongsikandroid.data.model.food.GetRankRestaurant

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.myongsik.myongsikandroid.ui.adapter.food
package com.myongsik.myongsikandroid.presentation.adapter.food

import android.view.LayoutInflater
import android.view.ViewGroup
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.myongsik.myongsikandroid.ui.adapter.food
package com.myongsik.myongsikandroid.presentation.adapter.food

import android.util.Log
import android.view.View
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.myongsik.myongsikandroid.ui.adapter.food
package com.myongsik.myongsikandroid.presentation.adapter.food

import android.view.LayoutInflater
import android.view.ViewGroup
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.myongsik.myongsikandroid.ui.adapter.food
package com.myongsik.myongsikandroid.presentation.adapter.food

import android.content.Intent
import android.net.Uri
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.myongsik.myongsikandroid.ui.adapter.search
package com.myongsik.myongsikandroid.presentation.adapter.search

import android.view.LayoutInflater
import android.view.View
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.myongsik.myongsikandroid.ui.adapter.search
package com.myongsik.myongsikandroid.presentation.adapter.search

import android.view.View
import androidx.recyclerview.widget.RecyclerView
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.myongsik.myongsikandroid.ui.adapter.search
package com.myongsik.myongsikandroid.presentation.adapter.search

import com.myongsik.myongsikandroid.data.model.kakao.Restaurant

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.myongsik.myongsikandroid.ui.adapter.search
package com.myongsik.myongsikandroid.presentation.adapter.search

import android.view.LayoutInflater
import android.view.ViewGroup
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.myongsik.myongsikandroid.ui.adapter.search
package com.myongsik.myongsikandroid.presentation.adapter.search

import android.view.LayoutInflater
import android.view.ViewGroup
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.myongsik.myongsikandroid.ui.adapter.search
package com.myongsik.myongsikandroid.presentation.adapter.search

import android.content.Intent
import android.net.Uri
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.myongsik.myongsikandroid.ui.adapter.state
package com.myongsik.myongsikandroid.presentation.adapter.state

import android.view.LayoutInflater
import android.view.ViewGroup
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.myongsik.myongsikandroid.ui.adapter.state
package com.myongsik.myongsikandroid.presentation.adapter.state

import androidx.core.view.isVisible
import androidx.paging.LoadState
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.myongsik.myongsikandroid.ui.view.food
package com.myongsik.myongsikandroid.presentation.view.food

import android.app.AlertDialog
import android.graphics.BlendMode
Expand All @@ -23,8 +23,8 @@ import com.myongsik.myongsikandroid.R
import com.myongsik.myongsikandroid.data.model.review.RequestReviewData
import com.myongsik.myongsikandroid.databinding.DialogBottomUpdateSheetBinding
import com.myongsik.myongsikandroid.databinding.FragmentHomeBinding
import com.myongsik.myongsikandroid.ui.adapter.food.MyPagerAdapter
import com.myongsik.myongsikandroid.ui.viewmodel.food.HomeViewModel
import com.myongsik.myongsikandroid.presentation.adapter.food.MyPagerAdapter
import com.myongsik.myongsikandroid.presentation.viewmodel.food.HomeViewModel
import com.myongsik.myongsikandroid.util.*
import com.myongsik.myongsikandroid.util.Constant.DINNER
import com.myongsik.myongsikandroid.util.Constant.DINNER_H
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.myongsik.myongsikandroid.ui.view.food
package com.myongsik.myongsikandroid.presentation.view.food

import android.content.Intent
import android.net.Uri
Expand All @@ -14,8 +14,8 @@ import com.myongsik.myongsikandroid.R
import com.myongsik.myongsikandroid.data.model.food.RequestScrap
import com.myongsik.myongsikandroid.data.model.kakao.Restaurant
import com.myongsik.myongsikandroid.databinding.DialogBottomRestaurantSheetBinding
import com.myongsik.myongsikandroid.ui.viewmodel.food.HomeViewModel
import com.myongsik.myongsikandroid.ui.viewmodel.search.LoveViewModel
import com.myongsik.myongsikandroid.presentation.viewmodel.food.HomeViewModel
import com.myongsik.myongsikandroid.presentation.viewmodel.search.LoveViewModel
import com.myongsik.myongsikandroid.util.CommonUtil
import com.myongsik.myongsikandroid.util.MyongsikApplication
import dagger.hilt.android.AndroidEntryPoint
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.myongsik.myongsikandroid.ui.view.food
package com.myongsik.myongsikandroid.presentation.view.food

import android.annotation.SuppressLint
import android.graphics.Bitmap
import android.graphics.Canvas
import android.view.LayoutInflater
Expand All @@ -13,8 +12,7 @@ import androidx.navigation.fragment.findNavController
import com.myongsik.myongsikandroid.BaseFragment
import com.myongsik.myongsikandroid.R
import com.myongsik.myongsikandroid.databinding.FragmentMapBinding
import com.myongsik.myongsikandroid.ui.viewmodel.food.HomeViewModel
import com.myongsik.myongsikandroid.ui.viewmodel.search.LoveViewModel
import com.myongsik.myongsikandroid.presentation.viewmodel.food.HomeViewModel
import com.myongsik.myongsikandroid.util.Constant
import com.myongsik.myongsikandroid.util.MyongsikApplication
import dagger.hilt.android.AndroidEntryPoint
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.myongsik.myongsikandroid.ui.view.food
package com.myongsik.myongsikandroid.presentation.view.food

import android.annotation.SuppressLint
import android.content.res.ColorStateList
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.myongsik.myongsikandroid.ui.view.food
package com.myongsik.myongsikandroid.presentation.view.food

import android.view.LayoutInflater
import android.view.ViewGroup
Expand Down
Loading

0 comments on commit f2ea4b1

Please sign in to comment.