Skip to content

Commit 21aca13

Browse files
committed
refactor: 공공데이터 포털 관련 remote Data Source 함수에서 Response 대신 데이터 리스트 반환
1 parent c67a77d commit 21aca13

File tree

5 files changed

+23
-33
lines changed

5 files changed

+23
-33
lines changed

data/src/main/java/com/stop/data/remote/source/route/RouteRemoteDataSource.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ package com.stop.data.remote.source.route
22

33
import com.stop.domain.model.geoLocation.AddressType
44
import com.stop.domain.model.route.gyeonggi.*
5-
import com.stop.domain.model.route.seoul.bus.BusLastTimeResponse
6-
import com.stop.domain.model.route.seoul.bus.BusRouteResponse
7-
import com.stop.domain.model.route.seoul.bus.BusStationArsIdResponse
5+
import com.stop.domain.model.route.seoul.bus.BusRouteInfo
6+
import com.stop.domain.model.route.seoul.bus.BusStationInfo
7+
import com.stop.domain.model.route.seoul.bus.LastTimeInfo
88
import com.stop.domain.model.route.seoul.subway.Station
99
import com.stop.domain.model.route.seoul.subway.StationLastTime
1010
import com.stop.domain.model.route.seoul.subway.SubwayCircleType
@@ -27,9 +27,9 @@ internal interface RouteRemoteDataSource {
2727
weekType: WeekType,
2828
): List<StationLastTime>
2929

30-
suspend fun getSeoulBusStationArsId(stationName: String): BusStationArsIdResponse
31-
suspend fun getSeoulBusRoute(stationId: String): BusRouteResponse
32-
suspend fun getSeoulBusLastTime(stationId: String, lineId: String): BusLastTimeResponse
30+
suspend fun getSeoulBusStationArsId(stationName: String): List<BusStationInfo>
31+
suspend fun getSeoulBusRoute(stationId: String): List<BusRouteInfo>
32+
suspend fun getSeoulBusLastTime(stationId: String, lineId: String): List<LastTimeInfo>
3333

3434
suspend fun getGyeonggiBusStationId(stationName: String): List<GyeonggiBusStation>
3535
suspend fun getGyeonggiBusRoute(stationId: String): List<GyeonggiBusRoute>

data/src/main/java/com/stop/data/remote/source/route/RouteRemoteDataSourceImpl.kt

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@ import com.stop.domain.model.geoLocation.AddressType
99
import com.stop.domain.model.route.gyeonggi.GyeonggiBusStation
1010
import com.stop.domain.model.route.gyeonggi.GyeonggiBusRoute
1111
import com.stop.domain.model.route.gyeonggi.GyeonggiBusLastTime
12-
import com.stop.domain.model.route.seoul.bus.BusLastTimeResponse
13-
import com.stop.domain.model.route.seoul.bus.BusRouteResponse
14-
import com.stop.domain.model.route.seoul.bus.BusStationArsIdResponse
12+
import com.stop.domain.model.route.seoul.bus.*
1513
import com.stop.domain.model.route.seoul.subway.*
1614
import com.stop.domain.model.route.tmap.RouteRequest
1715
import com.stop.domain.model.route.tmap.custom.Coordinate
@@ -117,21 +115,21 @@ internal class RouteRemoteDataSourceImpl @Inject constructor(
117115
}
118116
}
119117

120-
override suspend fun getSeoulBusStationArsId(stationName: String): BusStationArsIdResponse {
118+
override suspend fun getSeoulBusStationArsId(stationName: String): List<BusStationInfo> {
121119
with(wsBusApiService.getBusArsId(stationName)) {
122120
return when (this) {
123-
is NetworkResult.Success -> this.data
121+
is NetworkResult.Success -> this.data.arsIdMsgBody.busStations
124122
is NetworkResult.Failure -> throw IllegalArgumentException(this.message)
125123
is NetworkResult.NetworkError -> throw this.exception
126124
is NetworkResult.Unexpected -> throw this.exception
127125
}
128126
}
129127
}
130128

131-
override suspend fun getSeoulBusRoute(stationId: String): BusRouteResponse {
129+
override suspend fun getSeoulBusRoute(stationId: String): List<BusRouteInfo> {
132130
with(wsBusApiService.getBusRoute(stationId)) {
133131
return when (this) {
134-
is NetworkResult.Success -> this.data
132+
is NetworkResult.Success -> this.data.routeIdMsgBody.busRoutes
135133
is NetworkResult.Failure -> throw IllegalArgumentException(this.message)
136134
is NetworkResult.NetworkError -> throw this.exception
137135
is NetworkResult.Unexpected -> throw this.exception
@@ -142,10 +140,10 @@ internal class RouteRemoteDataSourceImpl @Inject constructor(
142140
override suspend fun getSeoulBusLastTime(
143141
stationId: String,
144142
lineId: String
145-
): BusLastTimeResponse {
143+
): List<LastTimeInfo> {
146144
with(wsBusApiService.getBusLastTime(stationId, lineId)) {
147145
return when (this) {
148-
is NetworkResult.Success -> this.data
146+
is NetworkResult.Success -> this.data.lastTimeMsgBody.lastTimes
149147
is NetworkResult.Failure -> throw IllegalArgumentException(this.message)
150148
is NetworkResult.NetworkError -> throw this.exception
151149
is NetworkResult.Unexpected -> throw this.exception

data/src/main/java/com/stop/data/repository/RouteRepositoryImpl.kt

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ package com.stop.data.repository
33
import com.stop.data.remote.source.route.RouteRemoteDataSource
44
import com.stop.domain.model.geoLocation.AddressType
55
import com.stop.domain.model.route.gyeonggi.*
6-
import com.stop.domain.model.route.seoul.bus.BusRouteResponse
7-
import com.stop.domain.model.route.seoul.bus.BusStationArsIdResponse
6+
import com.stop.domain.model.route.seoul.bus.*
87
import com.stop.domain.model.route.seoul.subway.Station
98
import com.stop.domain.model.route.seoul.subway.StationLastTime
109
import com.stop.domain.model.route.seoul.subway.SubwayCircleType
@@ -47,20 +46,16 @@ internal class RouteRepositoryImpl @Inject constructor(
4746
return remoteDataSource.getSubwayStationLastTime(stationId, subwayCircleType, weekType)
4847
}
4948

50-
override suspend fun getSeoulBusStationArsId(stationName: String): BusStationArsIdResponse {
49+
override suspend fun getSeoulBusStationArsId(stationName: String): List<BusStationInfo> {
5150
return remoteDataSource.getSeoulBusStationArsId(stationName)
5251
}
5352

54-
override suspend fun getSeoulBusRoute(stationId: String): BusRouteResponse {
53+
override suspend fun getSeoulBusRoute(stationId: String): List<BusRouteInfo> {
5554
return remoteDataSource.getSeoulBusRoute(stationId)
5655
}
5756

58-
override suspend fun getSeoulBusLastTime(stationId: String, lineId: String): String? {
57+
override suspend fun getSeoulBusLastTime(stationId: String, lineId: String): List<LastTimeInfo> {
5958
return remoteDataSource.getSeoulBusLastTime(stationId, lineId)
60-
.lastTimeMsgBody
61-
.lastTimes
62-
.first()
63-
.lastTime
6459
}
6560

6661
override suspend fun getGyeonggiBusStationId(stationName: String): List<GyeonggiBusStation> {

domain/src/main/java/com/stop/domain/repository/RouteRepository.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ import com.stop.domain.model.geoLocation.AddressType
44
import com.stop.domain.model.route.gyeonggi.GyeonggiBusLastTime
55
import com.stop.domain.model.route.gyeonggi.GyeonggiBusRoute
66
import com.stop.domain.model.route.gyeonggi.GyeonggiBusStation
7-
import com.stop.domain.model.route.seoul.bus.BusRouteResponse
8-
import com.stop.domain.model.route.seoul.bus.BusStationArsIdResponse
7+
import com.stop.domain.model.route.seoul.bus.*
98
import com.stop.domain.model.route.seoul.subway.Station
109
import com.stop.domain.model.route.seoul.subway.StationLastTime
1110
import com.stop.domain.model.route.seoul.subway.SubwayCircleType
@@ -28,9 +27,9 @@ interface RouteRepository {
2827
weekType: WeekType,
2928
): List<StationLastTime>
3029

31-
suspend fun getSeoulBusStationArsId(stationName: String): BusStationArsIdResponse
32-
suspend fun getSeoulBusRoute(stationId: String): BusRouteResponse
33-
suspend fun getSeoulBusLastTime(stationId: String, lineId: String): String?
30+
suspend fun getSeoulBusStationArsId(stationName: String): List<BusStationInfo>
31+
suspend fun getSeoulBusRoute(stationId: String): List<BusRouteInfo>
32+
suspend fun getSeoulBusLastTime(stationId: String, lineId: String): List<LastTimeInfo>
3433

3534
suspend fun getGyeonggiBusStationId(stationName: String): List<GyeonggiBusStation>
3635
suspend fun getGyeonggiBusRoute(stationId: String): List<GyeonggiBusRoute>

domain/src/main/java/com/stop/domain/usecase/route/GetLastTransportTimeUseCaseImpl.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ internal class GetLastTransportTimeUseCaseImpl @Inject constructor(
306306
var lastTime = routeRepository.getSeoulBusLastTime(
307307
transportIdRequest.stationId,
308308
transportIdRequest.routeId
309-
)?.toInt() ?: throw ApiServerDataException()
309+
).first().lastTime?.toInt() ?: throw ApiServerDataException()
310310

311311
if (lastTime < MID_NIGHT) {
312312
lastTime += TIME_CORRECTION_VALUE
@@ -369,7 +369,7 @@ internal class GetLastTransportTimeUseCaseImpl @Inject constructor(
369369
): TransportIdRequest {
370370
val busName = transportIdRequest.routeName.split(":")[1]
371371
val route = routeRepository.getSeoulBusRoute(transportIdRequest.stationId)
372-
.routeIdMsgBody.busRoutes.firstOrNull {
372+
.firstOrNull {
373373
it.busRouteName.contains(busName)
374374
} ?: throw NoAppropriateDataException("버스 노선 고유 아이디가 없습니다.")
375375

@@ -405,8 +405,6 @@ internal class GetLastTransportTimeUseCaseImpl @Inject constructor(
405405
): TransportIdRequest {
406406
val busStations =
407407
routeRepository.getSeoulBusStationArsId(transportIdRequest.stationName)
408-
.arsIdMsgBody
409-
.busStations
410408

411409
val arsId = findClosestSeoulBusStation(transportIdRequest, busStations)
412410

0 commit comments

Comments
 (0)