Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@ import com.eatssu.android.data.service.ReviewService
import com.eatssu.android.domain.repository.ReviewRepository
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow
import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.MultipartBody
import okhttp3.RequestBody.Companion.asRequestBody
import java.io.File
import javax.inject.Inject

class ReviewRepositoryImpl @Inject constructor(private val reviewService: ReviewService) :
Expand Down Expand Up @@ -55,12 +58,11 @@ class ReviewRepositoryImpl @Inject constructor(private val reviewService: Review
flow {
emit(reviewService.getMealReviewInfo(mealId))
}

override suspend fun getImageString(
image: MultipartBody.Part,
): Flow<BaseResponse<ImageResponse>> =
flow {
emit(reviewService.uploadImage(image))
}
override suspend fun getImageString(file: File): Flow<BaseResponse<ImageResponse>> = flow {
val requestFile = file.asRequestBody("image/*".toMediaTypeOrNull())
val multipart = MultipartBody.Part.createFormData("image", file.name, requestFile)
val response = reviewService.uploadImage(multipart)
emit(response)
}

}
Original file line number Diff line number Diff line change
@@ -1,30 +1,10 @@
package com.eatssu.android.di.network


import android.content.Context
import android.content.Intent
import android.os.Handler
import android.os.Looper
import android.widget.Toast
import com.eatssu.android.BuildConfig.BASE_URL
import com.eatssu.android.data.dto.response.BaseResponse
import com.eatssu.android.data.dto.response.TokenResponse
import com.eatssu.android.domain.usecase.auth.GetAccessTokenUseCase
import com.eatssu.android.domain.usecase.auth.GetRefreshTokenUseCase
import com.eatssu.android.domain.usecase.auth.LogoutUseCase
import com.eatssu.android.domain.usecase.auth.SetAccessTokenUseCase
import com.eatssu.android.domain.usecase.auth.SetRefreshTokenUseCase
import com.eatssu.android.presentation.login.LoginActivity
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.runBlocking
import okhttp3.Interceptor
import okhttp3.Request
import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.Response
import timber.log.Timber
import java.lang.reflect.Type
import javax.inject.Inject

/**
Expand All @@ -37,22 +17,17 @@ class TokenInterceptor @Inject constructor(
companion object {
private const val HEADER_AUTHORIZATION = "Authorization"
private const val HEADER_CONTENT_TYPE = "Content-Type"
private const val HEADER_ACCEPT = "accept"

}

override fun intercept(chain: Interceptor.Chain): Response {
val accessToken = runBlocking { getAccessTokenUseCase() }
val originalRequest = chain.request()

val request = originalRequest.newBuilder()
.addHeader(HEADER_ACCEPT, "application/hal+json")
.addHeader(HEADER_CONTENT_TYPE, "application/json")
.addHeader(HEADER_AUTHORIZATION, "Bearer $accessToken")
.build()

Timber.d("AccessToken 헤더 추가됨: $accessToken")

return chain.proceed(request)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import com.eatssu.android.data.dto.response.GetMenuReviewInfoResponse
import com.eatssu.android.data.dto.response.GetReviewListResponse
import com.eatssu.android.data.dto.response.ImageResponse
import kotlinx.coroutines.flow.Flow
import okhttp3.MultipartBody
import java.io.File

interface ReviewRepository {

Expand Down Expand Up @@ -42,6 +42,6 @@ interface ReviewRepository {
): Flow<BaseResponse<GetMealReviewInfoResponse>>

suspend fun getImageString(
image: MultipartBody.Part,
file: File
): Flow<BaseResponse<ImageResponse>>
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ import com.eatssu.android.data.dto.response.BaseResponse
import com.eatssu.android.data.dto.response.ImageResponse
import com.eatssu.android.domain.repository.ReviewRepository
import kotlinx.coroutines.flow.Flow
import okhttp3.MultipartBody
import java.io.File
import javax.inject.Inject

class GetImageUrlUseCase @Inject constructor(
private val reviewRepository: ReviewRepository,
) {
suspend operator fun invoke(
image: MultipartBody.Part,
file: File
): Flow<BaseResponse<ImageResponse>> =
reviewRepository.getImageString(image)
reviewRepository.getImageString(file)
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,17 +35,14 @@ class ReviewAdapter :
binding.tvMenuName.text = data.menu
binding.rbRate.rating = data.mainGrade.toFloat()

if (!data.imgUrl.isNullOrEmpty()) {
val firstImageUrl = data.imgUrl?.firstOrNull()

if (!firstImageUrl.isNullOrEmpty()) {
Glide.with(itemView)
.load(data.imgUrl[0])
.load(firstImageUrl)
.into(binding.ivReviewPhoto)
binding.ivReviewPhoto.visibility = View.VISIBLE
binding.cvPhotoReview.visibility = View.VISIBLE

if (data.imgUrl[0].isEmpty()) {
binding.ivReviewPhoto.visibility = View.GONE
binding.cvPhotoReview.visibility = View.GONE
}
} else {
binding.ivReviewPhoto.visibility = View.GONE
binding.cvPhotoReview.visibility = View.GONE
Expand Down

This file was deleted.

Loading