Todo router fix
This commit is contained in:
@@ -9,6 +9,7 @@ import { RPCProcedureBuilder } from "../procedures/RPCProcedureBuilder"
|
||||
|
||||
const encodeTodos = S.encode(S.Chunk(JsonifiableTodo))
|
||||
const encodeOptionalTodo = S.encode(S.OptionFromNullOr(JsonifiableTodo))
|
||||
const decodeTodo = S.decode(JsonifiableTodo)
|
||||
|
||||
|
||||
export const todoRouter = Effect.gen(function*() {
|
||||
@@ -51,27 +52,41 @@ export const todoRouter = Effect.gen(function*() {
|
||||
getByID: procedure
|
||||
.input(S.decodeUnknownPromise(S.String))
|
||||
.query(({ ctx, input }) => ctx.run(Effect.gen(function*() {
|
||||
const todos = yield* TodoRepository
|
||||
|
||||
return yield* encodeOptionalTodo(
|
||||
yield* (yield* TodoRepository).getByID(input)
|
||||
yield* todos.getByID(input)
|
||||
)
|
||||
}))),
|
||||
|
||||
add: procedure
|
||||
.input(S.decodeUnknownPromise(JsonifiableTodo))
|
||||
.input(S.decodeUnknownPromise(S.encodedSchema(JsonifiableTodo)))
|
||||
.mutation(({ ctx, input }) => ctx.run(Effect.gen(function*() {
|
||||
return yield* (yield* TodoRepository).add(input)
|
||||
const todos = yield* TodoRepository
|
||||
|
||||
return yield* todos.add(
|
||||
yield* decodeTodo(input)
|
||||
)
|
||||
}))),
|
||||
|
||||
update: procedure
|
||||
.input(S.decodeUnknownPromise(JsonifiableTodo))
|
||||
.input(S.decodeUnknownPromise(S.encodedSchema(JsonifiableTodo)))
|
||||
.mutation(({ ctx, input }) => ctx.run(Effect.gen(function*() {
|
||||
return yield* (yield* TodoRepository).update(input)
|
||||
const todos = yield* TodoRepository
|
||||
|
||||
return yield* todos.update(
|
||||
yield* decodeTodo(input)
|
||||
)
|
||||
}))),
|
||||
|
||||
remove: procedure
|
||||
.input(S.decodeUnknownPromise(JsonifiableTodo))
|
||||
.input(S.decodeUnknownPromise(S.encodedSchema(JsonifiableTodo)))
|
||||
.mutation(({ ctx, input }) => ctx.run(Effect.gen(function*() {
|
||||
return yield* (yield* TodoRepository).remove(input)
|
||||
const todos = yield* TodoRepository
|
||||
|
||||
return yield* todos.remove(
|
||||
yield* decodeTodo(input)
|
||||
)
|
||||
}))),
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user