diff --git a/core/data/src/main/java/com/wap/wapp/core/data/repository/event/EventRepository.kt b/core/data/src/main/java/com/wap/wapp/core/data/repository/event/EventRepository.kt index d9496e04..9f54bb6e 100644 --- a/core/data/src/main/java/com/wap/wapp/core/data/repository/event/EventRepository.kt +++ b/core/data/src/main/java/com/wap/wapp/core/data/repository/event/EventRepository.kt @@ -7,6 +7,7 @@ interface EventRepository { suspend fun getMonthEvents(date: LocalDate): Result> suspend fun postEvent( + date: LocalDate, eventTitle: String, eventContent: String, eventLocation: String, diff --git a/core/data/src/main/java/com/wap/wapp/core/data/repository/event/EventRepositoryImpl.kt b/core/data/src/main/java/com/wap/wapp/core/data/repository/event/EventRepositoryImpl.kt index 49acb09b..024d5e2b 100644 --- a/core/data/src/main/java/com/wap/wapp/core/data/repository/event/EventRepositoryImpl.kt +++ b/core/data/src/main/java/com/wap/wapp/core/data/repository/event/EventRepositoryImpl.kt @@ -1,6 +1,7 @@ package com.wap.wapp.core.data.repository.event import com.wap.wapp.core.model.event.Event +import com.wap.wapp.core.network.model.event.EventRequest import com.wap.wapp.core.network.source.event.EventDataSource import java.time.LocalDate import javax.inject.Inject @@ -16,12 +17,21 @@ class EventRepositoryImpl @Inject constructor( } override suspend fun postEvent( + date: LocalDate, eventTitle: String, eventContent: String, eventLocation: String, eventDate: String, eventTime: String, - ): Result { - TODO("Not yet implemented") - } + ): Result = + eventDataSource.postEvent( + date = date, + EventRequest( + title = eventTitle, + content = eventContent, + location = eventLocation, + date = eventDate, + time = eventTime, + ), + ) } diff --git a/core/domain/src/main/java/com/wap/wapp/core/domain/usecase/event/PostEventUseCase.kt b/core/domain/src/main/java/com/wap/wapp/core/domain/usecase/event/PostEventUseCase.kt index 7e573841..85741211 100644 --- a/core/domain/src/main/java/com/wap/wapp/core/domain/usecase/event/PostEventUseCase.kt +++ b/core/domain/src/main/java/com/wap/wapp/core/domain/usecase/event/PostEventUseCase.kt @@ -1,12 +1,14 @@ package com.wap.wapp.core.domain.usecase.event import com.wap.wapp.core.data.repository.event.EventRepository +import java.time.LocalDate import javax.inject.Inject class PostEventUseCase @Inject constructor( private val eventRepository: EventRepository, ) { suspend operator fun invoke( + date: LocalDate, eventTitle: String, eventContent: String, eventLocation: String, @@ -14,6 +16,7 @@ class PostEventUseCase @Inject constructor( eventTime: String, ): Result = runCatching { eventRepository.postEvent( + date = date, eventTitle = eventTitle, eventContent = eventContent, eventLocation = eventLocation, diff --git a/core/network/src/main/java/com/wap/wapp/core/network/source/event/EventDataSourceImpl.kt b/core/network/src/main/java/com/wap/wapp/core/network/source/event/EventDataSourceImpl.kt index c0d57e0b..a0c923ac 100644 --- a/core/network/src/main/java/com/wap/wapp/core/network/source/event/EventDataSourceImpl.kt +++ b/core/network/src/main/java/com/wap/wapp/core/network/source/event/EventDataSourceImpl.kt @@ -37,7 +37,7 @@ class EventDataSourceImpl @Inject constructor( firebaseFirestore.collection(EVENT_COLLECTION) .document(getMonth(date)) .collection(EVENT_COLLECTION) - .document() + .document("0") .set(eventRequest) .await() } diff --git a/feature/management/src/main/java/com/wap/wapp/feature/management/registration/event/EventRegistrationViewModel.kt b/feature/management/src/main/java/com/wap/wapp/feature/management/registration/event/EventRegistrationViewModel.kt index f5f0bee3..e7373c80 100644 --- a/feature/management/src/main/java/com/wap/wapp/feature/management/registration/event/EventRegistrationViewModel.kt +++ b/feature/management/src/main/java/com/wap/wapp/feature/management/registration/event/EventRegistrationViewModel.kt @@ -1,13 +1,19 @@ package com.wap.wapp.feature.management.registration.event import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.wap.wapp.core.commmon.util.DateUtil.generateNowDate +import com.wap.wapp.core.domain.usecase.event.PostEventUseCase import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.launch import javax.inject.Inject @HiltViewModel -class EventRegistrationViewModel @Inject constructor() : ViewModel() { +class EventRegistrationViewModel @Inject constructor( + private val postEventUseCase: PostEventUseCase, +) : ViewModel() { private val _currentRegistrationState: MutableStateFlow = MutableStateFlow(EventRegistrationState.EVENT_DETAILS) val currentRegistrationState = _currentRegistrationState.asStateFlow() @@ -51,5 +57,15 @@ class EventRegistrationViewModel @Inject constructor() : ViewModel() { _currentRegistrationState.value = eventRegistrationState } - fun registerEvent() {} + fun registerEvent() = + viewModelScope.launch { + postEventUseCase( + date = generateNowDate(), + eventTitle = _eventTitle.value, + eventContent = _eventContent.value, + eventLocation = _eventLocation.value, + eventDate = _eventDate.value, + eventTime = _eventTime.value, + ) + } }