Просмотр исходного кода

impl GET: /_api/v3/openai/chat

Shun Miyazawa 1 год назад
Родитель
Сommit
28df0be7ca

+ 3 - 0
apps/app/src/server/routes/apiv3/index.js

@@ -8,6 +8,7 @@ import * as registerFormValidator from '../../middlewares/register-form-validato
 
 import g2gTransfer from './g2g-transfer';
 import importRoute from './import';
+import openai from './openai';
 import pageListing from './page-listing';
 import securitySettings from './security-settings';
 import * as userActivation from './user-activation';
@@ -119,5 +120,7 @@ module.exports = (crowi, app) => {
   router.use('/questionnaire', require('~/features/questionnaire/server/routes/apiv3/questionnaire')(crowi));
   router.use('/templates', require('~/features/templates/server/routes/apiv3')(crowi));
 
+  router.use('/openai', openai(crowi));
+
   return [router, routerForAdmin, routerForAuth];
 };

+ 42 - 0
apps/app/src/server/routes/apiv3/openai/chat.ts

@@ -0,0 +1,42 @@
+import type { Request, RequestHandler } from 'express';
+import type { ValidationChain } from 'express-validator';
+
+import type Crowi from '~/server/crowi';
+import loggerFactory from '~/utils/logger';
+
+import { apiV3FormValidator } from '../../../middlewares/apiv3-form-validator';
+import type { ApiV3Response } from '../interfaces/apiv3-response';
+
+
+const logger = loggerFactory('growi:routes:apiv3:openai:chat');
+
+
+type ReqParams = {
+  //
+}
+
+type Req = Request<ReqParams, ApiV3Response>
+
+type ChatHandlersFactory = (crowi: Crowi) => RequestHandler[];
+
+export const chatHandlersFactory: ChatHandlersFactory = (crowi) => {
+  const accessTokenParser = require('../../../middlewares/access-token-parser')(crowi);
+  const loginRequiredStrictly = require('../../../middlewares/login-required')(crowi);
+
+  // define validators for req.body
+  const validator: ValidationChain[] = [];
+
+  return [
+    accessTokenParser, loginRequiredStrictly, validator, apiV3FormValidator,
+    async(req: Req, res: ApiV3Response) => {
+
+      try {
+        return res.apiv3({});
+      }
+      catch (err) {
+        logger.error(err);
+        return res.apiv3Err(err);
+      }
+    },
+  ];
+};

+ 10 - 0
apps/app/src/server/routes/apiv3/openai/index.ts

@@ -0,0 +1,10 @@
+import express from 'express';
+
+import { chatHandlersFactory } from './chat';
+
+const router = express.Router();
+
+module.exports = (crowi) => {
+  router.get('/chat', chatHandlersFactory(crowi));
+  return router;
+};