Browse Source

refactor(question): use effectful HttpApi group builder

Build the question HttpApi handlers with an effectful group callback so the service is resolved once at layer construction time and the endpoint handlers close over the resulting service methods.
Kit Langton 6 days ago
parent
commit
a4c8d0588e
1 changed files with 5 additions and 3 deletions
  1. 5 3
      packages/opencode/src/server/instance/httpapi/question.ts

+ 5 - 3
packages/opencode/src/server/instance/httpapi/question.ts

@@ -50,8 +50,10 @@ const Api = HttpApi.make("question")
     }),
     }),
   )
   )
 
 
-const QuestionLive = Layer.unwrap(
-  Effect.gen(function* () {
+const QuestionLive = HttpApiBuilder.group(
+  Api,
+  "question",
+  Effect.fn("QuestionHttpApi.handlers")(function* (handlers) {
     const svc = yield* Question.Service
     const svc = yield* Question.Service
 
 
     const list = Effect.fn("QuestionHttpApi.list")(function* () {
     const list = Effect.fn("QuestionHttpApi.list")(function* () {
@@ -69,7 +71,7 @@ const QuestionLive = Layer.unwrap(
       return true
       return true
     })
     })
 
 
-    return HttpApiBuilder.group(Api, "question", (handlers) => handlers.handle("list", list).handle("reply", reply))
+    return handlers.handle("list", list).handle("reply", reply)
   }),
   }),
 ).pipe(Layer.provide(Question.defaultLayer))
 ).pipe(Layer.provide(Question.defaultLayer))