Skip to content

Commit

Permalink
impl GET: /_api/v3/openai/chat
Browse files Browse the repository at this point in the history
  • Loading branch information
miya committed Aug 27, 2024
1 parent de7bb22 commit 28df0be
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 0 deletions.
3 changes: 3 additions & 0 deletions apps/app/src/server/routes/apiv3/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down Expand Up @@ -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 changes: 42 additions & 0 deletions apps/app/src/server/routes/apiv3/openai/chat.ts
Original file line number Diff line number Diff line change
@@ -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 changes: 10 additions & 0 deletions apps/app/src/server/routes/apiv3/openai/index.ts
Original file line number Diff line number Diff line change
@@ -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;
};

0 comments on commit 28df0be

Please sign in to comment.