Add logging to datastore

This commit is contained in:
Kirill Kamakin
2022-08-05 20:19:05 +02:00
parent 107bb64256
commit a299b40c4c
3 changed files with 15 additions and 9 deletions

View File

@@ -6,7 +6,7 @@ interface AddRecipeStorage {
val updates: Flow<AddRecipeDraft>
suspend fun save(addRecipeRequest: AddRecipeDraft)
suspend fun save(addRecipeDraft: AddRecipeDraft)
suspend fun clear()
}

View File

@@ -1,6 +1,7 @@
package gq.kirmanak.mealient.datastore.recipe
import androidx.datastore.core.DataStore
import gq.kirmanak.mealient.logging.Logger
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import javax.inject.Inject
@@ -9,6 +10,7 @@ import javax.inject.Singleton
@Singleton
class AddRecipeStorageImpl @Inject constructor(
private val dataStore: DataStore<AddRecipeInput>,
private val logger: Logger,
) : AddRecipeStorage {
override val updates: Flow<AddRecipeDraft>
@@ -24,20 +26,22 @@ class AddRecipeStorageImpl @Inject constructor(
)
}
override suspend fun save(addRecipeRequest: AddRecipeDraft) {
override suspend fun save(addRecipeDraft: AddRecipeDraft) {
logger.v { "save() called with: addRecipeDraft = $addRecipeDraft" }
val input = AddRecipeInput.newBuilder()
.setRecipeName(addRecipeRequest.recipeName)
.setRecipeDescription(addRecipeRequest.recipeDescription)
.setRecipeYield(addRecipeRequest.recipeYield)
.setIsRecipePublic(addRecipeRequest.isRecipePublic)
.setAreCommentsDisabled(addRecipeRequest.areCommentsDisabled)
.addAllRecipeIngredients(addRecipeRequest.recipeIngredients)
.addAllRecipeInstructions(addRecipeRequest.recipeInstructions)
.setRecipeName(addRecipeDraft.recipeName)
.setRecipeDescription(addRecipeDraft.recipeDescription)
.setRecipeYield(addRecipeDraft.recipeYield)
.setIsRecipePublic(addRecipeDraft.isRecipePublic)
.setAreCommentsDisabled(addRecipeDraft.areCommentsDisabled)
.addAllRecipeIngredients(addRecipeDraft.recipeIngredients)
.addAllRecipeInstructions(addRecipeDraft.recipeInstructions)
.build()
dataStore.updateData { input }
}
override suspend fun clear() {
logger.v { "clear() called" }
dataStore.updateData { AddRecipeInput.getDefaultInstance() }
}
}