From 8f8c696e3a83144fd308b9d403953025b9fe29f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Mon, 8 Jul 2024 18:29:50 +0200 Subject: [PATCH] Todo work --- packages/server/src/TodoRepository.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/server/src/TodoRepository.ts b/packages/server/src/TodoRepository.ts index 8c4d216..2f65e25 100644 --- a/packages/server/src/TodoRepository.ts +++ b/packages/server/src/TodoRepository.ts @@ -1,5 +1,5 @@ import { Todo } from "@todo-tests/common/data" -import { Array, Context, Data, Effect, Equal, Layer, Option, Ref, SubscriptionRef } from "effect" +import { Array, Context, Data, Effect, Equal, Layer, Option, Order, Ref, SubscriptionRef } from "effect" import crypto from "node:crypto" @@ -44,7 +44,7 @@ export class TodoRepositoryService { yield* Ref.update(this.todos, Array.append(new Todo({ ...todo, id: Option.some(id), - }) as Todo & { id: Option.Some })) + }, { disableValidation: true }) as Todo & { id: Option.Some })) return id }) @@ -80,6 +80,15 @@ export class TodoRepositoryService { } +const sortTodos = Array.sortBy<(Todo & { id: Option.Some })[]>( + Order.mapInput(Order.number, todo => todo.order) +) + +const updateTodoOrders = Array.map< + (Todo & { id: Option.Some })[], + (Todo & { id: Option.Some })[] +>() + export class TodoHasID extends Data.TaggedError("TodoHasID")<{ todo: Todo }> {} export class TodoHasNoID extends Data.TaggedError("TodoHasNoID")<{ todo: Todo }> {}