Implementation of getAll and create products endpoints.

This commit is contained in:
Florian THIERRY
2025-04-23 23:13:48 +02:00
parent ed0acfc5dc
commit f98e1227e8
14 changed files with 136 additions and 31 deletions

View File

@@ -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) {