Refactoring

This commit is contained in:
Julien Valverdé
2024-07-05 16:22:59 +02:00
parent dd038acd6b
commit 98795975a5
5 changed files with 36 additions and 25 deletions

View File

@@ -1,12 +1,12 @@
import { Effect } from "effect"
import { TRPCBuilder } from "../../trpc/TRPCBuilder"
import { RPCProcedure } from "../RPCProcedure"
import { RPCProcedureBuilder } from "../procedures/RPCProcedureBuilder"
import { todosRouter } from "./todos"
export const appRouter = Effect.gen(function*() {
const t = yield* TRPCBuilder
const procedure = yield* RPCProcedure
const procedure = yield* RPCProcedureBuilder
return t.router({
ping: procedure.query(({ ctx }) =>

View File

@@ -3,12 +3,12 @@ import { JsonifiableTodo } from "@todo-tests/common/data"
import { Effect } from "effect"
import { TodoRepository } from "../../TodoRepository"
import { TRPCBuilder } from "../../trpc/TRPCBuilder"
import { RPCProcedure } from "../RPCProcedure"
import { RPCProcedureBuilder } from "../procedures/RPCProcedureBuilder"
export const todosRouter = Effect.gen(function*() {
const t = yield* TRPCBuilder
const procedure = yield* RPCProcedure
const procedure = yield* RPCProcedureBuilder
return t.router({
get: procedure
@@ -17,9 +17,22 @@ export const todosRouter = Effect.gen(function*() {
))
.query(({ ctx, input }) => ctx.run(Effect.gen(function*() {
const todos = yield* TodoRepository
const todo = yield* yield* todos.get(input.id)
return yield* S.encode(JsonifiableTodo)(todo)
})))
return yield* S.encode(S.OptionFromNullOr(JsonifiableTodo))(
yield* todos.get(input.id)
)
}))),
getOrThrow: procedure
.input(S.decodeUnknownSync(
S.Struct({ id: S.String })
))
.query(({ ctx, input }) => ctx.run(Effect.gen(function*() {
const todos = yield* TodoRepository
return yield* S.encode(JsonifiableTodo)(
yield* yield* todos.get(input.id)
)
}))),
})
})