Browse Source

add session list

Dax Raad 9 months ago
parent
commit
bdac7d10dd
2 changed files with 22 additions and 1 deletions
  1. 20 0
      js/src/server/server.ts
  2. 2 1
      js/src/session/session.ts

+ 20 - 0
js/src/server/server.ts

@@ -130,6 +130,26 @@ export namespace Server {
           return c.json(messages);
         },
       )
+      .post(
+        "/session_list",
+        describeRoute({
+          description: "List all sessions",
+          responses: {
+            200: {
+              description: "List of sessions",
+              content: {
+                "application/json": {
+                  schema: resolver(z.custom<Session.Info[]>()),
+                },
+              },
+            },
+          },
+        }),
+        async (c) => {
+          const sessions = await Array.fromAsync(Session.list());
+          return c.json(sessions);
+        },
+      )
       .post(
         "/session_chat",
         zValidator(

+ 2 - 1
js/src/session/session.ts

@@ -122,7 +122,8 @@ export namespace Session {
 
   export async function* list() {
     for await (const item of Storage.list("session/info")) {
-      yield path.basename(item, ".json");
+      const sessionID = path.basename(item, ".json");
+      yield get(sessionID);
     }
   }