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
@@ -0,0 +1,8 @@
package com.example.findu.data.dataremote.datasource

import com.example.findu.data.dataremote.model.base.NullableBaseResponse
import com.example.findu.data.dataremote.model.request.PostInquiryRequestDto

interface InquiryRemoteDataSource {
suspend fun postInquiry( request: PostInquiryRequestDto): NullableBaseResponse<Unit>
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.example.findu.data.dataremote.datasourceimpl

import com.example.findu.data.dataremote.datasource.InquiryRemoteDataSource
import com.example.findu.data.dataremote.model.base.BaseResponse
import com.example.findu.data.dataremote.model.base.NullableBaseResponse
import com.example.findu.data.dataremote.model.request.PostInquiryRequestDto
import com.example.findu.data.dataremote.service.InquiryService
import com.example.findu.data.dataremote.util.handleBaseResponse
import com.example.findu.domain.repository.InquiryRepository
import javax.inject.Inject


class InquiryRemoteDataSourceImpl @Inject constructor(
private val inquiryService: InquiryService
) : InquiryRemoteDataSource {
override suspend fun postInquiry(request: PostInquiryRequestDto)
= inquiryService.postInquiry(request)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.example.findu.data.dataremote.model.request

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

@Serializable
data class PostInquiryRequestDto(
@SerialName("title")
val title: String,
@SerialName("content")
val content: String,
@SerialName("categories")
val category: List<String>
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.example.findu.data.dataremote.service

import com.example.findu.data.dataremote.model.base.NullableBaseResponse
import com.example.findu.data.dataremote.model.request.PostInquiryRequestDto
import retrofit2.http.Body
import retrofit2.http.Header
import retrofit2.http.POST

interface InquiryService {
@POST("/api/v2/inquiries")
suspend fun postInquiry(
@Body body: PostInquiryRequestDto
): NullableBaseResponse<Unit>
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.example.findu.data.repositoryimpl


import com.example.findu.data.dataremote.datasource.InquiryRemoteDataSource
import com.example.findu.data.dataremote.model.request.PostInquiryRequestDto
import com.example.findu.data.dataremote.util.handleBaseResponse
import com.example.findu.domain.repository.InquiryRepository
import javax.inject.Inject

class InquiryRepositoryImpl @Inject constructor(
private val inquiryRemoteDataSource: InquiryRemoteDataSource,
) : InquiryRepository {

override suspend fun postInquiry(
title: String,
content: String,
categories: List<String>
): Result<Unit> = runCatching {
inquiryRemoteDataSource
.postInquiry(PostInquiryRequestDto(title, content, categories))
.handleBaseResponse()
.getOrThrow()
}
}
6 changes: 6 additions & 0 deletions app/src/main/java/com/example/findu/di/DataSourceModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import com.example.findu.data.dataremote.datasourceimpl.BreedRemoteDataSourceImp
import com.example.findu.data.dataremote.datasource.GptRemoteDataSource
import com.example.findu.data.dataremote.datasource.MyRemoteDataSource
import com.example.findu.data.dataremote.datasource.DetailSearchRemoteDataSource
import com.example.findu.data.dataremote.datasource.InquiryRemoteDataSource
import com.example.findu.data.dataremote.datasource.InformationRemoteDataSource
import com.example.findu.data.dataremote.datasource.InterestRemoteDataSource
import com.example.findu.data.dataremote.datasource.SearchRemoteDataSource
Expand All @@ -24,6 +25,7 @@ import com.example.findu.data.dataremote.datasourceimpl.AuthRemoteDataSourceImpl
import com.example.findu.data.dataremote.datasourceimpl.DummyRemoteDataSourceImpl
import com.example.findu.data.dataremote.datasourceimpl.GptRemoteDataSourceImpl
import com.example.findu.data.dataremote.datasourceimpl.HomeRemoteDataSourceImpl
import com.example.findu.data.dataremote.datasourceimpl.InquiryRemoteDataSourceImpl
import com.example.findu.data.dataremote.datasourceimpl.InformationRemoteDataSourceImpl
import com.example.findu.data.dataremote.datasourceimpl.InterestRemoteDataSourceImpl
import com.example.findu.data.dataremote.datasourceimpl.SearchRemoteDataSourceImpl
Expand Down Expand Up @@ -97,6 +99,10 @@ abstract class DataSourceModule {
@Singleton
abstract fun bindsDeviceDataSource(deviceLocalDataSourceImpl: DeviceLocalDataSourceImpl): DeviceLocalDataSource

@Binds
@Singleton
abstract fun bindInquiryRemoteDataSource(impl: InquiryRemoteDataSourceImpl): InquiryRemoteDataSource

@Binds
@Singleton
abstract fun bindsInformationDataSource(informationRemoteDataSourceImpl: InformationRemoteDataSourceImpl): InformationRemoteDataSource
Expand Down
8 changes: 7 additions & 1 deletion app/src/main/java/com/example/findu/di/RepositoryModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import com.example.findu.data.repositoryimpl.BreedRepositoryImpl
import com.example.findu.data.repositoryimpl.UserInfoRepositoryImpl
import com.example.findu.data.repositoryimpl.DummyRepositoryImpl
import com.example.findu.data.repositoryimpl.HomeRepositoryImpl
import com.example.findu.data.repositoryimpl.InquiryRepositoryImpl
import com.example.findu.data.repositoryimpl.InformationRepositoryImpl
import com.example.findu.data.repositoryimpl.InterestRepositoryImpl
import com.example.findu.data.repositoryimpl.SearchRepositoryImpl
Expand All @@ -19,6 +20,7 @@ import com.example.findu.domain.repository.UserInfoRepository
import com.example.findu.domain.repository.DummyRepository
import com.example.findu.domain.repository.report.ReportRepository
import com.example.findu.domain.repository.HomeRepository
import com.example.findu.domain.repository.InquiryRepository
import com.example.findu.domain.repository.InformationRepository
import com.example.findu.domain.repository.InterestRepository
import com.example.findu.domain.repository.SearchRepository
Expand Down Expand Up @@ -52,7 +54,7 @@ abstract class RepositoryModule {
@Binds
@Singleton
abstract fun bindBreedRepository(breedRepositoryImpl: BreedRepositoryImpl): BreedRepository

@Binds
@Singleton
abstract fun bindReportRepository(reportRepositoryImpl: ReportRepositoryImpl): ReportRepository
Expand All @@ -77,6 +79,10 @@ abstract class RepositoryModule {
@Singleton
abstract fun bindUserInfoRepository(userInfoRepository: UserInfoRepositoryImpl): UserInfoRepository

@Binds
@Singleton
abstract fun bindInquiryRepository(inquiryRepositoryImpl: InquiryRepositoryImpl): InquiryRepository

@Binds
@Singleton
abstract fun bindInformationRepository(informationRepositoryImpl: InformationRepositoryImpl): InformationRepository
Expand Down
6 changes: 6 additions & 0 deletions app/src/main/java/com/example/findu/di/ServiceModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import com.example.findu.data.dataremote.service.DummyService
import com.example.findu.data.dataremote.service.GptService
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
import com.example.findu.data.dataremote.service.HomeService
import com.example.findu.data.dataremote.service.InquiryService
import com.example.findu.data.dataremote.service.InformationService
import com.example.findu.data.dataremote.service.InterestService
import com.example.findu.data.dataremote.service.SearchService
Expand Down Expand Up @@ -109,4 +110,9 @@ object ServiceModule {

return naverRetrofit.create(NaverService::class.java)
}

@Provides
@Singleton
fun provideInquiryService(retrofit: Retrofit): InquiryService =
retrofit.create(InquiryService::class.java)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.example.findu.domain.repository


interface InquiryRepository {
suspend fun postInquiry(
title: String,
content: String,
categories: List<String>
): Result<Unit>
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.example.findu.domain.usecase

import com.example.findu.domain.repository.InquiryRepository
import javax.inject.Inject

class PostInquiryUseCase @Inject constructor(
private val inquiryRepository: InquiryRepository
) {
suspend operator fun invoke(
title: String,
content: String,
categories: List<String>
): Result<Unit> = inquiryRepository.postInquiry(title, content, categories)
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import com.example.findu.presentation.ui.my.dialog.MyNicknameDialog
import com.example.findu.presentation.ui.my.dialog.MyProfileImageDialog
import com.example.findu.presentation.ui.my.dialog.MyWithdrawalDialog
import com.example.findu.presentation.ui.my.model.ProfileImageType
import com.example.findu.presentation.ui.my.viewmodel.MyViewModel
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.launch

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ import androidx.lifecycle.repeatOnLifecycle
import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.LinearLayoutManager
import com.example.findu.databinding.FragmentMyInterestBinding
import com.example.findu.presentation.model.MyInterestRv
import com.example.findu.presentation.ui.my.adapter.MyInterestRvAdapter
import com.example.findu.presentation.ui.my.viewmodel.MyViewModel
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ import androidx.lifecycle.repeatOnLifecycle
import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.LinearLayoutManager
import com.example.findu.databinding.FragmentMyReportHistoryBinding
import com.example.findu.presentation.model.MyReportHistoryRv
import com.example.findu.presentation.ui.my.adapter.MyReportHistoryAdapter
import com.example.findu.presentation.ui.my.dialog.MyDeleteHistoryDialog
import com.example.findu.presentation.ui.my.viewmodel.MyViewModel
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.example.findu.presentation.ui.my

import android.os.Bundle
import android.util.Log
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
Expand All @@ -13,6 +12,7 @@ import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.LinearLayoutManager
import com.example.findu.databinding.FragmentMyViewedAnimalBinding
import com.example.findu.presentation.ui.my.adapter.MyViewedAnimalsRvAdapter
import com.example.findu.presentation.ui.my.viewmodel.MyViewModel
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.collectLatest
Expand Down
Loading