Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: 쪽지 관련 공통 코드 작성 #450

Merged
merged 12 commits into from
Oct 12, 2023
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.now.naaga.data.mapper

import com.now.domain.model.AdventureResult
import com.now.domain.model.AdventureResultType
import com.now.domain.model.type.AdventureResultType
import com.now.naaga.data.remote.dto.AdventureResultDto
import java.time.LocalDateTime

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.now.naaga.data.mapper

import com.now.domain.model.AuthPlatformType
import com.now.domain.model.PlatformAuth
import com.now.domain.model.type.AuthPlatformType
import com.now.naaga.data.remote.dto.PlatformAuthDto

fun PlatformAuthDto.toDomain(): PlatformAuth {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package com.now.naaga.data.mapper

import com.now.domain.model.Place
import com.now.naaga.data.remote.dto.PlaceDto
import com.now.naaga.data.remote.dto.PostPlaceDto
import com.now.naaga.data.remote.dto.post.PostPlaceDto

fun Place.toDto(): PlaceDto {
return PlaceDto(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.now.naaga.data.remote.dto

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class ClosedLetterDto(
@SerialName("id")
val id: Long,
@SerialName("coordinate")
val coordinateDto: CoordinateDto,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.now.naaga.data.remote.dto

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class OpenLetterDto(
@SerialName("id")
val id: Long,
@SerialName("player")
val player: PlayerDto,
@SerialName("coordinate")
val coordinateDto: CoordinateDto,
@SerialName("message")
val message: String,
@SerialName("registerDate")
val registerDate: String,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.now.naaga.data.remote.dto.post

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class PostLetterDto(
@SerialName("message")
val message: String,
@SerialName("latitude")
val latitude: Double,
@SerialName("longitude")
val longitude: Double,
)
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.now.naaga.data.remote.dto
package com.now.naaga.data.remote.dto.post

import com.now.naaga.data.remote.dto.CoordinateDto
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.now.naaga.data.remote.retrofit.service

import com.now.naaga.data.remote.dto.ClosedLetterDto
import com.now.naaga.data.remote.dto.OpenLetterDto
import com.now.naaga.data.remote.dto.post.PostLetterDto
import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.POST
import retrofit2.http.Path
import retrofit2.http.Query

interface LetterService {
@POST("/letters")
suspend fun registerLetter(
@Body postLetterDto: PostLetterDto,
): Response<OpenLetterDto>

@GET("/letters/nearby")
suspend fun getNearbyLetters(
@Query("latitude") latitude: Double,
@Query("longitude") longitude: Double,
): Response<List<ClosedLetterDto>>

@GET("/letters/{letterId}")
suspend fun getLetter(
@Path("letterId") letterId: Long,
): Response<OpenLetterDto>

@GET("/letterlogs")
suspend fun getInGameLetters(
@Query("gameId") gameId: Long,
@Query("logType") logType: String,
): Response<List<OpenLetterDto>>
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.now.naaga.data.remote.retrofit.service

import com.now.naaga.data.remote.dto.PlaceDto
import com.now.naaga.data.remote.dto.PostPlaceDto
import com.now.naaga.data.remote.dto.post.PostPlaceDto
import okhttp3.MultipartBody
import okhttp3.RequestBody
import retrofit2.Response
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package com.now.naaga.data.repository

import com.now.domain.model.Adventure
import com.now.domain.model.AdventureEndType
import com.now.domain.model.AdventureResult
import com.now.domain.model.AdventureStatus
import com.now.domain.model.Coordinate
import com.now.domain.model.Hint
import com.now.domain.model.OrderType
import com.now.domain.model.SortType
import com.now.domain.model.type.AdventureEndType
import com.now.domain.model.type.OrderType
import com.now.domain.model.type.SortType
import com.now.domain.repository.AdventureRepository
import com.now.naaga.data.mapper.toDomain
import com.now.naaga.data.mapper.toDto
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.now.naaga.data.repository

import com.now.domain.model.letter.ClosedLetter
import com.now.domain.model.letter.OpenLetter
import com.now.domain.model.type.LogType
import com.now.domain.repository.LetterRepository
import com.now.naaga.data.remote.retrofit.service.LetterService

class DefaultLetterRepository(
private val letterService: LetterService,
) : LetterRepository {
override suspend fun postLetter(message: String, latitude: Double, longitude: Double): OpenLetter {
TODO("Not yet implemented")
}

override suspend fun fetchNearbyLetters(latitude: Double, longitude: Double): List<ClosedLetter> {
TODO("Not yet implemented")
}

override suspend fun fetchLetter(letterId: Long): OpenLetter {
TODO("Not yet implemented")
}

override suspend fun fetchLetterLogs(gameId: Long, logType: LogType): List<OpenLetter> {
TODO("Not yet implemented")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@ import com.now.domain.repository.StatisticsRepository
import com.now.naaga.data.local.AuthDataSource
import com.now.naaga.data.remote.retrofit.service.AdventureService
import com.now.naaga.data.remote.retrofit.service.AuthService
import com.now.naaga.data.remote.retrofit.service.LetterService
import com.now.naaga.data.remote.retrofit.service.PlaceService
import com.now.naaga.data.remote.retrofit.service.RankService
import com.now.naaga.data.remote.retrofit.service.StatisticsService
import com.now.naaga.data.repository.DefaultAdventureRepository
import com.now.naaga.data.repository.DefaultAuthRepository
import com.now.naaga.data.repository.DefaultLetterRepository
import com.now.naaga.data.repository.DefaultPlaceRepository
import com.now.naaga.data.repository.DefaultRankRepository
import com.now.naaga.data.repository.DefaultStatisticsRepository
Expand Down Expand Up @@ -47,4 +49,9 @@ class RepositoryModule {
@Provides
fun provideStatisticsRepository(statisticsService: StatisticsService): StatisticsRepository =
DefaultStatisticsRepository(statisticsService)

@Singleton
@Provides
fun provideLetterRepository(letterService: LetterService): DefaultLetterRepository =
DefaultLetterRepository(letterService)
}
5 changes: 5 additions & 0 deletions android/app/src/main/java/com/now/naaga/di/ServiceModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import com.now.naaga.BuildConfig
import com.now.naaga.data.remote.retrofit.AuthInterceptor
import com.now.naaga.data.remote.retrofit.service.AdventureService
import com.now.naaga.data.remote.retrofit.service.AuthService
import com.now.naaga.data.remote.retrofit.service.LetterService
import com.now.naaga.data.remote.retrofit.service.PlaceService
import com.now.naaga.data.remote.retrofit.service.RankService
import com.now.naaga.data.remote.retrofit.service.StatisticsService
Expand Down Expand Up @@ -56,4 +57,8 @@ class ServiceModule {
@Singleton
@Provides
fun provideAuthService(retrofit: Retrofit): AuthService = retrofit.create(AuthService::class.java)

@Singleton
@Provides
fun provideLetterService(retrofit: Retrofit): LetterService = retrofit.create(LetterService::class.java)
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.now.domain.model.AdventureResult
import com.now.domain.model.OrderType
import com.now.domain.model.SortType
import com.now.domain.model.type.OrderType
import com.now.domain.model.type.SortType
import com.now.domain.repository.AdventureRepository
import com.now.naaga.data.throwable.DataThrowable
import com.now.naaga.data.throwable.DataThrowable.PlayerThrowable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.now.domain.model.AdventureResult
import com.now.domain.model.AdventureResultType
import com.now.domain.model.type.AdventureResultType
import com.now.naaga.R
import com.now.naaga.databinding.ItemHistoryBinding

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import com.bumptech.glide.Glide
import com.now.domain.model.AdventureResult
import com.now.domain.model.AdventureResultType
import com.now.domain.model.type.AdventureResultType
import com.now.naaga.R
import com.now.naaga.data.firebase.analytics.ADVENTURE_RESULT
import com.now.naaga.data.firebase.analytics.AnalyticsDelegate
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import android.os.Bundle
import android.widget.Toast
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import com.now.domain.model.AuthPlatformType
import com.now.domain.model.type.AuthPlatformType
import com.now.naaga.data.firebase.analytics.AnalyticsDelegate
import com.now.naaga.data.firebase.analytics.DefaultAnalyticsDelegate
import com.now.naaga.data.firebase.analytics.LOGIN_AUTH
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.now.domain.model.AuthPlatformType
import com.now.domain.model.PlatformAuth
import com.now.domain.model.type.AuthPlatformType
import com.now.domain.repository.AuthRepository
import com.now.naaga.data.throwable.DataThrowable
import dagger.hilt.android.lifecycle.HiltViewModel
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.now.domain.model.OrderType
import com.now.domain.model.Place
import com.now.domain.model.Rank
import com.now.domain.model.SortType
import com.now.domain.model.Statistics
import com.now.domain.model.type.OrderType
import com.now.domain.model.type.SortType
import com.now.domain.repository.PlaceRepository
import com.now.domain.repository.RankRepository
import com.now.domain.repository.StatisticsRepository
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.map
import androidx.lifecycle.viewModelScope
import com.now.domain.model.Adventure
import com.now.domain.model.AdventureEndType
import com.now.domain.model.AdventureStatus
import com.now.domain.model.Coordinate
import com.now.domain.model.Hint
import com.now.domain.model.RemainingTryCount
import com.now.domain.model.type.AdventureEndType
import com.now.domain.repository.AdventureRepository
import com.now.naaga.data.throwable.DataThrowable
import com.now.naaga.data.throwable.DataThrowable.Companion.hintThrowable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.now.domain.model.OrderType
import com.now.domain.model.Rank
import com.now.domain.model.SortType
import com.now.domain.model.type.OrderType
import com.now.domain.model.type.SortType
import com.now.domain.repository.RankRepository
import com.now.naaga.data.throwable.DataThrowable
import com.now.naaga.data.throwable.DataThrowable.PlayerThrowable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ package com.now.naaga

import androidx.arch.core.executor.testing.InstantTaskExecutorRule
import com.now.domain.model.AdventureResult
import com.now.domain.model.AdventureResultType
import com.now.domain.model.Coordinate
import com.now.domain.model.OrderType
import com.now.domain.model.Place
import com.now.domain.model.SortType
import com.now.domain.model.type.AdventureResultType
import com.now.domain.model.type.OrderType
import com.now.domain.model.type.SortType
import com.now.domain.repository.AdventureRepository
import com.now.naaga.presentation.adventurehistory.AdventureHistoryViewModel
import io.mockk.coEvery
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ package com.now.naaga

import androidx.arch.core.executor.testing.InstantTaskExecutorRule
import com.now.domain.model.AdventureResult
import com.now.domain.model.AdventureResultType
import com.now.domain.model.Coordinate
import com.now.domain.model.Place
import com.now.domain.model.Player
import com.now.domain.model.Rank
import com.now.domain.model.type.AdventureResultType
import com.now.domain.repository.AdventureRepository
import com.now.domain.repository.RankRepository
import com.now.naaga.presentation.adventureresult.AdventureResultViewModel
Expand Down
4 changes: 2 additions & 2 deletions android/app/src/test/java/com/now/naaga/RankViewModelTest.kt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.now.naaga

import androidx.arch.core.executor.testing.InstantTaskExecutorRule
import com.now.domain.model.OrderType
import com.now.domain.model.Player
import com.now.domain.model.Rank
import com.now.domain.model.SortType
import com.now.domain.model.type.OrderType
import com.now.domain.model.type.SortType
import com.now.domain.repository.RankRepository
import com.now.naaga.presentation.rank.RankViewModel
import io.mockk.coEvery
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.now.domain.model

import com.now.domain.model.type.AdventureResultType
import java.time.LocalDateTime

data class AdventureResult(
Expand Down
4 changes: 0 additions & 4 deletions android/domain/src/main/java/com/now/domain/model/Place.kt
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,6 @@ data class Place(
return getDistance(coordinate) <= NEARBY_STANDARD
}

fun isNearBy(distance: Int): Boolean {
return distance <= NEARBY_STANDARD
}

companion object {
const val NEARBY_STANDARD = 70L
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.now.domain.model

import com.now.domain.model.type.AuthPlatformType

data class PlatformAuth(
val token: String,
val type: AuthPlatformType,
Expand Down
16 changes: 0 additions & 16 deletions android/domain/src/main/java/com/now/domain/model/RestTryCount.kt

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.now.domain.model.letter

import com.now.domain.model.Coordinate

data class ClosedLetter(
val id: Long,
val coordinate: Coordinate,
)
Loading