88
99import { ChannelServiceHandler } from './channelServiceHandler' ;
1010import { Activity , ConversationParameters , Transcript , AttachmentData } from 'botbuilder-core' ;
11- import { WebRequest , WebResponse , StatusCodeError } from './botFrameworkAdapter' ;
11+ import { WebRequest , WebResponse , StatusCodeError , StatusCodes } from './botFrameworkAdapter' ;
1212
1313export class ChannelServiceRoutes {
1414
@@ -31,7 +31,7 @@ export class ChannelServiceRoutes {
3131 server . post ( baseAddress + '/v3/conversations/:conversationId/attachments' , this . processUploadAttachment . bind ( this ) ) ;
3232 }
3333
34- processSendToConversation ( req , res ) {
34+ processSendToConversation ( req : WebRequest , res : WebResponse ) {
3535 const authHeader = req . headers . authorization || req . headers . Authorization || '' ;
3636 ChannelServiceRoutes . readActivity ( req )
3737 . then ( ( activity ) => {
@@ -44,10 +44,11 @@ export class ChannelServiceRoutes {
4444 res . end ( ) ;
4545 } )
4646 . catch ( err => { ChannelServiceRoutes . handleError ( err , res ) ; } )
47- } ) ;
47+ } )
48+ . catch ( err => { ChannelServiceRoutes . handleError ( err , res ) ; } ) ;
4849 }
4950
50- processReplyToActivity ( req , res ) {
51+ processReplyToActivity ( req : WebRequest , res : WebResponse ) {
5152 const authHeader = req . headers . authorization || req . headers . Authorization || '' ;
5253 ChannelServiceRoutes . readActivity ( req )
5354 . then ( ( activity ) => {
@@ -60,10 +61,11 @@ export class ChannelServiceRoutes {
6061 res . end ( ) ;
6162 } )
6263 . catch ( err => { ChannelServiceRoutes . handleError ( err , res ) ; } )
63- } ) ;
64+ } )
65+ . catch ( err => { ChannelServiceRoutes . handleError ( err , res ) ; } ) ;
6466 }
6567
66- processUpdateActivity ( req , res ) {
68+ processUpdateActivity ( req : WebRequest , res : WebResponse ) {
6769 const authHeader = req . headers . authorization || req . headers . Authorization || '' ;
6870 ChannelServiceRoutes . readActivity ( req )
6971 . then ( ( activity ) => {
@@ -76,20 +78,21 @@ export class ChannelServiceRoutes {
7678 res . end ( ) ;
7779 } )
7880 . catch ( err => { ChannelServiceRoutes . handleError ( err , res ) ; } )
79- } ) ;
81+ } )
82+ . catch ( err => { ChannelServiceRoutes . handleError ( err , res ) ; } ) ;
8083 }
8184
82- processDeleteActivity ( req , res ) {
85+ processDeleteActivity ( req : WebRequest , res : WebResponse ) {
8386 const authHeader = req . headers . authorization || req . headers . Authorization || '' ;
8487 this . channelServiceHandler . handleDeleteActivity ( authHeader , req . params . conversationId , req . params . activityId )
8588 . then ( ( ) => {
8689 res . status ( 200 ) ;
8790 res . end ( ) ;
8891 } )
8992 . catch ( err => { ChannelServiceRoutes . handleError ( err , res ) ; } ) ;
90- }
93+ }
9194
92- processGetActivityMembers ( req , res ) {
95+ processGetActivityMembers ( req : WebRequest , res : WebResponse ) {
9396 const authHeader = req . headers . authorization || req . headers . Authorization || '' ;
9497 this . channelServiceHandler . handleGetActivityMembers ( authHeader , req . params . conversationId , req . params . activityId )
9598 . then ( ( channelAccounts ) => {
@@ -102,7 +105,7 @@ export class ChannelServiceRoutes {
102105 . catch ( err => { ChannelServiceRoutes . handleError ( err , res ) ; } ) ;
103106 }
104107
105- processCreateConversation ( req , res ) {
108+ processCreateConversation ( req : WebRequest , res : WebResponse ) {
106109 const authHeader = req . headers . authorization || req . headers . Authorization || '' ;
107110 ChannelServiceRoutes . readBody < ConversationParameters > ( req )
108111 . then ( ( conversationParameters ) => {
@@ -118,7 +121,7 @@ export class ChannelServiceRoutes {
118121 } ) ;
119122 }
120123
121- processGetConversations ( req , res ) {
124+ processGetConversations ( req : WebRequest , res : WebResponse ) {
122125 const authHeader = req . headers . authorization || req . headers . Authorization || '' ;
123126 this . channelServiceHandler . handleGetConversations ( authHeader , req . params . conversationId , req . query . continuationToken )
124127 . then ( ( conversationsResult ) => {
@@ -131,7 +134,7 @@ export class ChannelServiceRoutes {
131134 . catch ( err => { ChannelServiceRoutes . handleError ( err , res ) ; } ) ;
132135 }
133136
134- processGetConversationMembers ( req , res ) {
137+ processGetConversationMembers ( req : WebRequest , res : WebResponse ) {
135138 const authHeader = req . headers . authorization || req . headers . Authorization || '' ;
136139 this . channelServiceHandler . handleGetConversationMembers ( authHeader , req . params . conversationId )
137140 . then ( ( channelAccounts ) => {
@@ -144,7 +147,7 @@ export class ChannelServiceRoutes {
144147 . catch ( err => { ChannelServiceRoutes . handleError ( err , res ) ; } ) ;
145148 }
146149
147- processGetConversationPagedMembers ( req , res ) {
150+ processGetConversationPagedMembers ( req : WebRequest , res : WebResponse ) {
148151 const authHeader = req . headers . authorization || req . headers . Authorization || '' ;
149152 let pageSize = parseInt ( req . query . pageSize ) ;
150153 if ( isNaN ( pageSize ) )
@@ -166,7 +169,7 @@ export class ChannelServiceRoutes {
166169 . catch ( err => { ChannelServiceRoutes . handleError ( err , res ) ; } ) ;
167170 }
168171
169- processDeleteConversationMember ( req , res ) {
172+ processDeleteConversationMember ( req : WebRequest , res : WebResponse ) {
170173 const authHeader = req . headers . authorization || req . headers . Authorization || '' ;
171174 this . channelServiceHandler . handleDeleteConversationMember ( authHeader , req . params . conversationId , req . params . memberId )
172175 . then ( ( resourceResponse ) => {
@@ -176,7 +179,7 @@ export class ChannelServiceRoutes {
176179 . catch ( err => { ChannelServiceRoutes . handleError ( err , res ) ; } ) ;
177180 }
178181
179- processSendConversationHistory ( req , res ) {
182+ processSendConversationHistory ( req : WebRequest , res : WebResponse ) {
180183 const authHeader = req . headers . authorization || req . headers . Authorization || '' ;
181184 ChannelServiceRoutes . readBody < Transcript > ( req )
182185 . then ( ( transcript ) => {
@@ -185,14 +188,15 @@ export class ChannelServiceRoutes {
185188 if ( resourceResponse ) {
186189 res . send ( resourceResponse ) ;
187190 }
188- res . status ( 201 ) ;
191+ res . status ( 200 ) ;
189192 res . end ( ) ;
190193 } )
191194 . catch ( err => { ChannelServiceRoutes . handleError ( err , res ) ; } )
192- } ) ;
195+ } )
196+ . catch ( err => { ChannelServiceRoutes . handleError ( err , res ) ; } ) ;
193197 }
194198
195- processUploadAttachment ( req , res ) {
199+ processUploadAttachment ( req : WebRequest , res : WebResponse ) {
196200 const authHeader = req . headers . authorization || req . headers . Authorization || '' ;
197201 ChannelServiceRoutes . readBody < AttachmentData > ( req )
198202 . then ( ( attachmentData ) => {
@@ -201,18 +205,19 @@ export class ChannelServiceRoutes {
201205 if ( resourceResponse ) {
202206 res . send ( resourceResponse ) ;
203207 }
204- res . status ( 201 ) ;
208+ res . status ( 200 ) ;
205209 res . end ( ) ;
206210 } )
207211 . catch ( err => { ChannelServiceRoutes . handleError ( err , res ) ; } )
208- } ) ;
212+ } )
213+ . catch ( err => { ChannelServiceRoutes . handleError ( err , res ) ; } ) ;
209214 }
210215
211216 static readActivity ( req : WebRequest ) : Promise < Activity > {
212217 return new Promise ( ( resolve , reject ) => {
213218 function returnActivity ( activity ) {
214- if ( typeof activity !== 'object' ) { throw new Error ( `BotFrameworkAdapter.parseRequest(): invalid request body.` ) ; }
215- if ( typeof activity . type !== 'string' ) { throw new Error ( `BotFrameworkAdapter.parseRequest(): missing activity type.` ) ; }
219+ if ( typeof activity !== 'object' ) { throw new Error ( `Invalid request body.` ) ; }
220+ if ( typeof activity . type !== 'string' ) { throw new Error ( `Missing activity type.` ) ; }
216221 if ( typeof activity . timestamp === 'string' ) { activity . timestamp = new Date ( activity . timestamp ) ; }
217222 if ( typeof activity . localTimestamp === 'string' ) { activity . localTimestamp = new Date ( activity . localTimestamp ) ; }
218223 if ( typeof activity . expiration === 'string' ) { activity . expiration = new Date ( activity . expiration ) ; }
@@ -223,7 +228,7 @@ export class ChannelServiceRoutes {
223228 try {
224229 returnActivity ( req . body ) ;
225230 } catch ( err ) {
226- reject ( err ) ;
231+ reject ( new StatusCodeError ( StatusCodes . BAD_REQUEST , err . message ) ) ;
227232 }
228233 } else {
229234 let requestData = '' ;
@@ -235,7 +240,7 @@ export class ChannelServiceRoutes {
235240 const body = JSON . parse ( requestData ) ;
236241 returnActivity ( body ) ;
237242 } catch ( err ) {
238- reject ( err ) ;
243+ reject ( new StatusCodeError ( StatusCodes . BAD_REQUEST , err . message ) ) ;
239244 }
240245 } ) ;
241246 }
@@ -248,7 +253,7 @@ export class ChannelServiceRoutes {
248253 try {
249254 resolve ( req . body ) ;
250255 } catch ( err ) {
251- reject ( err ) ;
256+ reject ( new StatusCodeError ( StatusCodes . BAD_REQUEST , err . message ) ) ;
252257 }
253258 } else {
254259 let requestData = '' ;
@@ -260,7 +265,7 @@ export class ChannelServiceRoutes {
260265 const body = JSON . parse ( requestData ) ;
261266 resolve ( body ) ;
262267 } catch ( err ) {
263- reject ( err ) ;
268+ reject ( new StatusCodeError ( StatusCodes . BAD_REQUEST , err . message ) ) ;
264269 }
265270 } ) ;
266271 }
@@ -269,6 +274,7 @@ export class ChannelServiceRoutes {
269274
270275 static handleError ( err : any , res : WebResponse ) {
271276 if ( err instanceof StatusCodeError ) {
277+ res . send ( err . message ) ;
272278 res . status ( err . statusCode ) ;
273279 } else {
274280 res . status ( 500 ) ;
0 commit comments