Skip to content

Commit

Permalink
feat : user 정보 get #7
Browse files Browse the repository at this point in the history
  • Loading branch information
SeonHwan-Kim committed May 9, 2023
1 parent 93632bf commit 2f285b7
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 1 deletion.
16 changes: 15 additions & 1 deletion app/src/main/java/org/android/go/sopt/data/remote/ApiFactory.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@ import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFact
import kotlinx.serialization.json.Json
import okhttp3.MediaType.Companion.toMediaType
import org.android.go.sopt.BuildConfig
import org.android.go.sopt.data.remote.service.HomeUserService
import org.android.go.sopt.data.remote.service.SignInService
import org.android.go.sopt.data.remote.service.SignUpService
import retrofit2.Retrofit

object ApiFactory {
val retrofit: Retrofit by lazy{
val retrofit: Retrofit by lazy {
Retrofit.Builder()
.baseUrl(BuildConfig.BASE_URL)
.addConverterFactory(Json.asConverterFactory("application/json".toMediaType()))
Expand All @@ -20,7 +21,20 @@ object ApiFactory {
inline fun <reified T> create(): T = retrofit.create<T>(T::class.java)
}

object ReqresApiFactory {
val json = Json { ignoreUnknownKeys = true }
val retrofit: Retrofit by lazy {
Retrofit.Builder()
.baseUrl("https://reqres.in/api/")
.addConverterFactory(json.asConverterFactory("application/json".toMediaType()))
.build()
}

inline fun <reified T> create(): T = retrofit.create<T>(T::class.java)
}

object ServicePool {
val signUpService = ApiFactory.create<SignUpService>()
val signInService = ApiFactory.create<SignInService>()
val getHomeUserService = ReqresApiFactory.create<HomeUserService>()
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package org.android.go.sopt.data.remote.model

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

@Serializable
data class ResponseHomeUserDto(
@SerialName("page")
val page: Int,
@SerialName("per_page")
val per_page: Int,
@SerialName("total")
val total: Int,
@SerialName("total_pages")
val total_pages:Int,
@SerialName("data")
val data: List<UserData>
){
@Serializable
data class UserData(
@SerialName("id")
val id: Int,
@SerialName("email")
val email: String,
@SerialName("first_name")
val first_name: String,
@SerialName("last_name")
val last_name: String,
@SerialName("avatar")
val avatar: String
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package org.android.go.sopt.data.remote.service

import org.android.go.sopt.data.remote.model.ResponseHomeUserDto
import retrofit2.Call
import retrofit2.http.Body
import retrofit2.http.GET

interface HomeUserService {
@GET("users?page=2")
fun GetHomeUserData(): Call<ResponseHomeUserDto>
}

0 comments on commit 2f285b7

Please sign in to comment.