All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.com.harmony.kotlin.data.repository.Repository.kt Maven / Gradle / Ivy

package com.harmony.kotlin.data.repository

import com.harmony.kotlin.data.mapper.Mapper
import com.harmony.kotlin.data.operation.DefaultOperation
import com.harmony.kotlin.data.operation.Operation
import com.harmony.kotlin.data.query.Query

// Repositories
interface GetRepository {
  suspend fun get(query: Query, operation: Operation = DefaultOperation): V
  @Deprecated(message = "Use get instead")
  suspend fun getAll(query: Query, operation: Operation = DefaultOperation): List
}

interface PutRepository {
  suspend fun put(query: Query, value: V?, operation: Operation = DefaultOperation): V
  @Deprecated(message = "Use put instead")
  suspend fun putAll(query: Query, value: List? = emptyList(), operation: Operation = DefaultOperation): List
}

interface DeleteRepository {
  suspend fun delete(query: Query, operation: Operation = DefaultOperation)
}

// Extensions
fun  GetRepository.withMapping(mapper: Mapper): GetRepository = GetRepositoryMapper(this, mapper)

fun  PutRepository.withMapping(toMapper: Mapper, fromMapper: Mapper): PutRepository = PutRepositoryMapper(this, toMapper, fromMapper)




© 2015 - 2025 Weber Informatics LLC | Privacy Policy