@@ -8,7 +8,7 @@ import { auth } from './middleware/auth'
8
8
import { clearConfigCache , getCacheConfig , getOriginConfig } from './storage/config'
9
9
import type { ChatOptions , Config , MailConfig , SiteConfig , UserInfo } from './storage/model'
10
10
import { 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'
12
12
import { limiter } from './middleware/limiter'
13
13
import { isNotEmptyString } from './utils/is'
14
14
import { sendTestMail , sendVerifyMail } from './utils/mail'
@@ -29,111 +29,165 @@ app.all('*', (_, res, next) => {
29
29
} )
30
30
31
31
router . 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
+ } )
40
42
} )
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
+ }
43
49
} )
44
50
45
51
router . 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
+ }
50
62
} )
51
63
52
64
router . 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
+ }
57
75
} )
58
76
59
77
router . 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
+ }
68
92
} )
69
93
70
94
router . 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
111
103
}
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
+ } )
113
138
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
+ }
115
145
} )
116
146
117
147
router . 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
+ }
126
174
} )
127
175
128
176
router . 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
+ }
137
191
} )
138
192
139
193
router . post ( '/chat' , auth , async ( req , res ) => {
0 commit comments