diff options
Diffstat (limited to 'packages/server/src/api')
| -rw-r--r-- | packages/server/src/api/index.ts | 2 | ||||
| -rw-r--r-- | packages/server/src/api/question.ts | 37 |
2 files changed, 0 insertions, 39 deletions
diff --git a/packages/server/src/api/index.ts b/packages/server/src/api/index.ts deleted file mode 100644 index 375e3584b..000000000 --- a/packages/server/src/api/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { makeQuestionHandler } from "./question.js" -export type { QuestionOps } from "./question.js" diff --git a/packages/server/src/api/question.ts b/packages/server/src/api/question.ts deleted file mode 100644 index f72c37aa1..000000000 --- a/packages/server/src/api/question.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { Effect, Schema } from "effect" -import { HttpApiBuilder } from "effect/unstable/httpapi" -import { QuestionReply, QuestionRequest, questionApi } from "../definition/question.js" - -export interface QuestionOps<R = never> { - readonly list: () => Effect.Effect<ReadonlyArray<unknown>, never, R> - readonly reply: (input: { - requestID: string - answers: Schema.Schema.Type<typeof QuestionReply>["answers"] - }) => Effect.Effect<void, never, R> -} - -export const makeQuestionHandler = <R>(ops: QuestionOps<R>) => - HttpApiBuilder.group( - questionApi, - "question", - Effect.fn("QuestionHttpApi.handlers")(function* (handlers) { - const decode = Schema.decodeUnknownSync(Schema.Array(QuestionRequest)) - - const list = Effect.fn("QuestionHttpApi.list")(function* () { - return decode(yield* ops.list()) - }) - - const reply = Effect.fn("QuestionHttpApi.reply")(function* (ctx: { - params: { requestID: string } - payload: Schema.Schema.Type<typeof QuestionReply> - }) { - yield* ops.reply({ - requestID: ctx.params.requestID, - answers: ctx.payload.answers, - }) - return true - }) - - return handlers.handle("list", list).handle("reply", reply) - }), - ) |
