Implementation of getAll and create products endpoints.
This commit is contained in:
@@ -1,14 +1,17 @@
|
||||
package com.example.demo.infrastructure.product
|
||||
|
||||
import com.example.demo.domain.core.error.TechnicalError
|
||||
import com.example.demo.domain.product.model.Product
|
||||
import com.example.demo.domain.product.model.ProductType.LIQUID
|
||||
import com.example.demo.domain.product.model.ProductType.SOLID
|
||||
import com.example.demo.domain.product.port.ProductPort
|
||||
import com.example.demo.domain.product.outputport.ProductOutputPort
|
||||
import com.github.michaelbull.result.Ok
|
||||
import com.github.michaelbull.result.Result
|
||||
import org.springframework.stereotype.Component
|
||||
import java.util.*
|
||||
|
||||
@Component
|
||||
class ProductInMemoryAdapter : ProductPort {
|
||||
class ProductInMemoryAdapter : ProductOutputPort {
|
||||
private val products = mutableListOf(
|
||||
Product(
|
||||
id = UUID.randomUUID(),
|
||||
@@ -24,15 +27,11 @@ class ProductInMemoryAdapter : ProductPort {
|
||||
|
||||
override fun getById(id: UUID): Product? = products.find { product -> product.id == id }
|
||||
|
||||
override fun getAll(): List<Product> = products
|
||||
override suspend fun getAll(): Result<List<Product>, TechnicalError> = Ok(products)
|
||||
|
||||
override fun save(product: Product) {
|
||||
if (getById(product.id) == null) {
|
||||
products.add(product)
|
||||
} else {
|
||||
deleteById(product.id)
|
||||
save(product)
|
||||
}
|
||||
override fun save(product: Product): Result<Unit, TechnicalError> {
|
||||
products += product
|
||||
return Ok(Unit)
|
||||
}
|
||||
|
||||
override fun deleteById(id: UUID) {
|
||||
|
||||
Reference in New Issue
Block a user