@@ -8,7 +8,7 @@ import { auth } from './middleware/auth'
88import { clearConfigCache , getCacheConfig , getOriginConfig } from './storage/config'
99import type { ChatOptions , Config , MailConfig , SiteConfig , UserInfo } from './storage/model'
1010import { Status } from './storage/model'
11- import { clearChat , createChatRoom , createUser , deleteChat , deleteChatRoom , existsChatRoom , getChat , getChatRooms , getChats , getUser , getUserById , insertChat , renameChatRoom , updateChat , updateConfig , updateUserInfo , verifyUser } from './storage/mongo'
11+ import { clearChat , createChatRoom , createUser , deleteAllChatRooms , deleteChat , deleteChatRoom , existsChatRoom , getChat , getChatRooms , getChats , getUser , getUserById , insertChat , renameChatRoom , updateChat , updateConfig , updateUserInfo , verifyUser } from './storage/mongo'
1212import { limiter } from './middleware/limiter'
1313import { isNotEmptyString } from './utils/is'
1414import { sendTestMail , sendVerifyMail } from './utils/mail'
@@ -29,111 +29,165 @@ app.all('*', (_, res, next) => {
2929} )
3030
3131router . get ( '/chatrooms' , auth , async ( req , res ) => {
32- const userId = req . headers . userId
33- const rooms = await getChatRooms ( userId )
34- const result = [ ]
35- rooms . forEach ( ( r ) => {
36- result . push ( {
37- uuid : r . roomId ,
38- title : r . title ,
39- isEdit : false ,
32+ try {
33+ const userId = new ObjectId ( req . headers . userId as string )
34+ const rooms = await getChatRooms ( userId )
35+ const result = [ ]
36+ rooms . forEach ( ( r ) => {
37+ result . push ( {
38+ uuid : r . roomId ,
39+ title : r . title ,
40+ isEdit : false ,
41+ } )
4042 } )
41- } )
42- res . send ( { status : 'Success' , message : null , data : result } )
43+ res . send ( { status : 'Success' , message : null , data : result } )
44+ }
45+ catch ( error ) {
46+ console . error ( error )
47+ res . send ( { status : 'Fail' , message : 'Load error' , data : [ ] } )
48+ }
4349} )
4450
4551router . post ( '/room-create' , auth , async ( req , res ) => {
46- const userId = req . headers . userId
47- const { title, roomId } = req . body as { title : string ; roomId : number }
48- const room = await createChatRoom ( userId , title , roomId )
49- res . send ( { status : 'Success' , message : null , data : room } )
52+ try {
53+ const userId = new ObjectId ( req . headers . userId as string )
54+ const { title, roomId } = req . body as { title : string ; roomId : number }
55+ const room = await createChatRoom ( userId , title , roomId )
56+ res . send ( { status : 'Success' , message : null , data : room } )
57+ }
58+ catch ( error ) {
59+ console . error ( error )
60+ res . send ( { status : 'Fail' , message : 'Create error' , data : null } )
61+ }
5062} )
5163
5264router . post ( '/room-rename' , auth , async ( req , res ) => {
53- const userId = req . headers . userId
54- const { title, roomId } = req . body as { title : string ; roomId : number }
55- const room = await renameChatRoom ( userId , title , roomId )
56- res . send ( { status : 'Success' , message : null , data : room } )
65+ try {
66+ const userId = new ObjectId ( req . headers . userId as string )
67+ const { title, roomId } = req . body as { title : string ; roomId : number }
68+ const room = await renameChatRoom ( userId , title , roomId )
69+ res . send ( { status : 'Success' , message : null , data : room } )
70+ }
71+ catch ( error ) {
72+ console . error ( error )
73+ res . send ( { status : 'Fail' , message : 'Rename error' , data : null } )
74+ }
5775} )
5876
5977router . post ( '/room-delete' , auth , async ( req , res ) => {
60- const userId = req . headers . userId
61- const { roomId } = req . body as { roomId : number }
62- if ( ! roomId || ! await existsChatRoom ( userId , roomId ) ) {
63- res . send ( { status : 'Fail' , message : 'Unknow room' , data : null } )
64- return
65- }
66- await deleteChatRoom ( userId , roomId )
67- res . send ( { status : 'Success' , message : null } )
78+ try {
79+ const userId = new ObjectId ( req . headers . userId as string )
80+ const { roomId } = req . body as { roomId : number }
81+ if ( ! roomId || ! await existsChatRoom ( userId , roomId ) ) {
82+ res . send ( { status : 'Fail' , message : 'Unknow room' , data : null } )
83+ return
84+ }
85+ await deleteChatRoom ( userId , roomId )
86+ res . send ( { status : 'Success' , message : null } )
87+ }
88+ catch ( error ) {
89+ console . error ( error )
90+ res . send ( { status : 'Fail' , message : 'Delete error' , data : null } )
91+ }
6892} )
6993
7094router . get ( '/chat-hisroty' , auth , async ( req , res ) => {
71- const userId = req . headers . userId
72- const roomId = + req . query . roomid
73- const lastTime = req . query . lasttime
74- if ( ! roomId || ! await existsChatRoom ( userId , roomId ) ) {
75- res . send ( { status : 'Success' , message : null , data : [ ] } )
76- // res.send({ status: 'Fail', message: 'Unknow room', data: null })
77- return
78- }
79- const chats = await getChats ( roomId , ! lastTime ? null : parseInt ( lastTime ) )
80-
81- const result = [ ]
82- chats . forEach ( ( c ) => {
83- if ( c . status !== Status . InversionDeleted ) {
84- result . push ( {
85- dateTime : new Date ( c . dateTime ) . toLocaleString ( ) ,
86- text : c . prompt ,
87- inversion : true ,
88- error : false ,
89- conversationOptions : null ,
90- requestOptions : {
91- prompt : c . prompt ,
92- options : null ,
93- } ,
94- } )
95- }
96- if ( c . status !== Status . ResponseDeleted ) {
97- result . push ( {
98- dateTime : new Date ( c . dateTime ) . toLocaleString ( ) ,
99- text : c . response ,
100- inversion : false ,
101- error : false ,
102- loading : false ,
103- conversationOptions : {
104- parentMessageId : c . options . messageId ,
105- } ,
106- requestOptions : {
107- prompt : c . prompt ,
108- parentMessageId : c . options . parentMessageId ,
109- } ,
110- } )
95+ try {
96+ const userId = new ObjectId ( req . headers . userId as string )
97+ const roomId = + req . query . roomid
98+ const lastTime = req . query . lasttime as string
99+ if ( ! roomId || ! await existsChatRoom ( userId , roomId ) ) {
100+ res . send ( { status : 'Success' , message : null , data : [ ] } )
101+ // res.send({ status: 'Fail', message: 'Unknow room', data: null })
102+ return
111103 }
112- } )
104+ const chats = await getChats ( roomId , ! lastTime ? null : parseInt ( lastTime ) )
105+
106+ const result = [ ]
107+ chats . forEach ( ( c ) => {
108+ if ( c . status !== Status . InversionDeleted ) {
109+ result . push ( {
110+ dateTime : new Date ( c . dateTime ) . toLocaleString ( ) ,
111+ text : c . prompt ,
112+ inversion : true ,
113+ error : false ,
114+ conversationOptions : null ,
115+ requestOptions : {
116+ prompt : c . prompt ,
117+ options : null ,
118+ } ,
119+ } )
120+ }
121+ if ( c . status !== Status . ResponseDeleted ) {
122+ result . push ( {
123+ dateTime : new Date ( c . dateTime ) . toLocaleString ( ) ,
124+ text : c . response ,
125+ inversion : false ,
126+ error : false ,
127+ loading : false ,
128+ conversationOptions : {
129+ parentMessageId : c . options . messageId ,
130+ } ,
131+ requestOptions : {
132+ prompt : c . prompt ,
133+ parentMessageId : c . options . parentMessageId ,
134+ } ,
135+ } )
136+ }
137+ } )
113138
114- res . send ( { status : 'Success' , message : null , data : result } )
139+ res . send ( { status : 'Success' , message : null , data : result } )
140+ }
141+ catch ( error ) {
142+ console . error ( error )
143+ res . send ( { status : 'Fail' , message : 'Load error' , data : null } )
144+ }
115145} )
116146
117147router . post ( '/chat-delete' , auth , async ( req , res ) => {
118- const userId = req . headers . userId
119- const { roomId, uuid, inversion } = req . body as { roomId : number ; uuid : number ; inversion : boolean }
120- if ( ! roomId || ! await existsChatRoom ( userId , roomId ) ) {
121- res . send ( { status : 'Fail' , message : 'Unknow room' , data : null } )
122- return
123- }
124- await deleteChat ( roomId , uuid , inversion )
125- res . send ( { status : 'Success' , message : null , data : null } )
148+ try {
149+ const userId = new ObjectId ( req . headers . userId as string )
150+ const { roomId, uuid, inversion } = req . body as { roomId : number ; uuid : number ; inversion : boolean }
151+ if ( ! roomId || ! await existsChatRoom ( userId , roomId ) ) {
152+ res . send ( { status : 'Fail' , message : 'Unknow room' , data : null } )
153+ return
154+ }
155+ await deleteChat ( roomId , uuid , inversion )
156+ res . send ( { status : 'Success' , message : null , data : null } )
157+ }
158+ catch ( error ) {
159+ console . error ( error )
160+ res . send ( { status : 'Fail' , message : 'Delete error' , data : null } )
161+ }
162+ } )
163+
164+ router . post ( '/chat-clear-all' , auth , async ( req , res ) => {
165+ try {
166+ const userId = new ObjectId ( req . headers . userId as string )
167+ await deleteAllChatRooms ( userId )
168+ res . send ( { status : 'Success' , message : null , data : null } )
169+ }
170+ catch ( error ) {
171+ console . error ( error )
172+ res . send ( { status : 'Fail' , message : 'Delete error' , data : null } )
173+ }
126174} )
127175
128176router . post ( '/chat-clear' , auth , async ( req , res ) => {
129- const userId = req . headers . userId
130- const { roomId } = req . body as { roomId : number }
131- if ( ! roomId || ! await existsChatRoom ( userId , roomId ) ) {
132- res . send ( { status : 'Fail' , message : 'Unknow room' , data : null } )
133- return
134- }
135- await clearChat ( roomId )
136- res . send ( { status : 'Success' , message : null , data : null } )
177+ try {
178+ const userId = new ObjectId ( req . headers . userId as string )
179+ const { roomId } = req . body as { roomId : number }
180+ if ( ! roomId || ! await existsChatRoom ( userId , roomId ) ) {
181+ res . send ( { status : 'Fail' , message : 'Unknow room' , data : null } )
182+ return
183+ }
184+ await clearChat ( roomId )
185+ res . send ( { status : 'Success' , message : null , data : null } )
186+ }
187+ catch ( error ) {
188+ console . error ( error )
189+ res . send ( { status : 'Fail' , message : 'Delete error' , data : null } )
190+ }
137191} )
138192
139193router . post ( '/chat' , auth , async ( req , res ) => {
0 commit comments