Nikerabbit has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/170044

Change subject: Improve mt error handling and reporting
......................................................................

Improve mt error handling and reporting

Change-Id: I5c3450a06ac24216611336429c154804a1110009
---
M ContentTranslationService.js
1 file changed, 15 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/cxserver 
refs/changes/44/170044/1

diff --git a/ContentTranslationService.js b/ContentTranslationService.js
index 2719eb1..1a9268c 100644
--- a/ContentTranslationService.js
+++ b/ContentTranslationService.js
@@ -91,7 +91,11 @@
        );
 } );
 
-app.post( '/mt/:from/:to/:provider?', function ( req, res ) {
+app.get( '/mt/:from/:to/:provider?', function ( req, res ) {
+       res.send( 405, { error: 'Request must be posted' } );
+} );
+
+app.post( '/mt/:from/:to/:provider', function ( req, res ) {
        var mtClients, mtClient,
                sourceHtmlChunks, sourceHtml, reqLength,
                registry = require( __dirname + '/registry' ),
@@ -100,13 +104,19 @@
                provider = registry.getValidProvider( from, to, 'mt', 
req.params.provider );
 
        if ( !provider ) {
-               res.send( 404 );
+               res.send( 404, { error: 'Provider not supported' } );
                logger.info( 'MT provider invalid or missing' );
 
                return;
        }
 
        mtClients = require( __dirname + '/mt/' );
+       if ( mtClients[provider] === undefined ) {
+               res.send( 500, { error: 'Provider not found' } );
+               logger.error( 'Configured provider ' + provider + ' was not 
found' );
+               return;
+       }
+
        mtClient = mtClients[ provider ];
 
        sourceHtmlChunks = [ '<div>' ];
@@ -116,7 +126,7 @@
                reqLength += data.length;
                if ( reqLength > 50000 ) {
                        // Too long
-                       res.send( 500 );
+                       res.send( 413, { error: 'Content too long' } );
                        logger.error( 'MT content too long' );
                        return;
                }
@@ -126,16 +136,14 @@
                sourceHtmlChunks.push( '</div>' );
                sourceHtml = sourceHtmlChunks.join( '' );
 
-               logger.profile( 'MT');
+               logger.profile( 'MT' );
                mtClient.translate( from, to, sourceHtml ).then(
                        function ( data ) {
                                res.send( data );
                                logger.profile( 'MT', { from: from, to: to } );
                        },
                        function ( error ) {
-                               res.send( 500, {
-                                       error: error
-                               } );
+                               res.send( 500, { error: error } );
                                logger.log( 'error', 'MT processing error: 
(%s)', error.toString() );
                        }
                );

-- 
To view, visit https://gerrit.wikimedia.org/r/170044
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5c3450a06ac24216611336429c154804a1110009
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/cxserver
Gerrit-Branch: master
Gerrit-Owner: Nikerabbit <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to