@@ -24,7 +24,7 @@ module.exports = function (RED) {
2424 // the edited ones are not being taken.
2525 const SERVICE_IDENTIFIER = 'language-translator' ;
2626 var pkg = require ( '../../package.json' ) ,
27- LanguageTranslatorV2 = require ( 'watson-developer-cloud/language-translator/v2 ' ) ,
27+ LanguageTranslatorV3 = require ( 'watson-developer-cloud/language-translator/v3 ' ) ,
2828 //cfenv = require('cfenv'),
2929 payloadutils = require ( '../../utilities/payload-utils' ) ,
3030 serviceutils = require ( '../../utilities/service-utils' ) ,
@@ -34,6 +34,8 @@ module.exports = function (RED) {
3434 password = null ,
3535 sUsername = null ,
3636 sPassword = null ,
37+ apikey = null ,
38+ sApikey = null ,
3739 //service = cfenv.getAppEnv().getServiceCreds(/language translator/i),
3840 service = serviceutils . getServiceCreds ( SERVICE_IDENTIFIER ) ,
3941 endpoint = '' ,
@@ -43,8 +45,9 @@ module.exports = function (RED) {
4345 temp . track ( ) ;
4446
4547 if ( service ) {
46- sUsername = service . username ;
47- sPassword = service . password ;
48+ sUsername = service . username ? service . username : '' ;
49+ sPassword = service . password ? service . password : '' ;
50+ sApikey = service . apikey ? service . apikey : '' ;
4851 sEndpoint = service . url ;
4952 }
5053
@@ -64,22 +67,27 @@ module.exports = function (RED) {
6467 var lt = null ,
6568 neural = req . query . n ? true : false ,
6669 serviceSettings = {
67- username : sUsername ? sUsername : req . query . un ,
68- password : sPassword ? sPassword : req . query . pwd ,
69- version : 'v2' ,
70+ version : '2018-05-01' ,
7071 url : endpoint ,
7172 headers : {
7273 'User-Agent' : pkg . name + '-' + pkg . version
7374 }
7475 } ;
7576
77+ if ( sApikey || req . query . key ) {
78+ serviceSettings . iam_apikey = sApikey ? sApikey : req . query . key ;
79+ } else {
80+ serviceSettings . username = sUsername ? sUsername : req . query . un ;
81+ serviceSettings . password = sPassword ? sPassword : req . query . pwd ;
82+ }
83+
7684 if ( neural ) {
7785 serviceSettings . headers [ 'X-Watson-Technology-Preview' ] = '2017-07-01' ;
7886 }
7987
80- lt = new LanguageTranslatorV2 ( serviceSettings ) ;
88+ lt = new LanguageTranslatorV3 ( serviceSettings ) ;
8189
82- lt . getModels ( { } , function ( err , models ) {
90+ lt . listModels ( { } , function ( err , models ) {
8391 if ( err ) {
8492 res . json ( err ) ;
8593 }
@@ -105,8 +113,8 @@ module.exports = function (RED) {
105113 var node = this ;
106114
107115
108- function initialCheck ( u , p ) {
109- if ( ! u || ! p ) {
116+ function initialCheck ( u , p , k ) {
117+ if ( ! k && ( ! u || ! p ) ) {
110118 return Promise . reject ( 'Missing Watson Language Translator service credentials' ) ;
111119 }
112120 return Promise . resolve ( ) ;
@@ -188,7 +196,7 @@ module.exports = function (RED) {
188196 }
189197
190198 model_id = srclang + '-' + destlang ;
191- if ( domain !== 'news' ) {
199+ if ( domain !== 'news' && domain !== 'general' ) {
192200 model_id += ( '-' + domain ) ;
193201 }
194202 return Promise . resolve ( model_id ) ;
@@ -374,14 +382,19 @@ module.exports = function (RED) {
374382 var p = null ,
375383 language_translator = null ,
376384 serviceSettings = {
377- username : username ,
378- password : password ,
379- version : 'v2' ,
385+ version : '2018-05-01' ,
380386 headers : {
381387 'User-Agent' : pkg . name + '-' + pkg . version
382388 }
383389 } ;
384390
391+ if ( apikey ) {
392+ serviceSettings . iam_apikey = apikey ;
393+ } else {
394+ serviceSettings . username = username ;
395+ serviceSettings . password = password ;
396+ }
397+
385398 if ( endpoint ) {
386399 serviceSettings . url = endpoint ;
387400 }
@@ -390,7 +403,7 @@ module.exports = function (RED) {
390403 serviceSettings . headers [ 'X-Watson-Technology-Preview' ] = '2017-07-01' ;
391404 }
392405
393- language_translator = new LanguageTranslatorV2 ( serviceSettings ) ;
406+ language_translator = new LanguageTranslatorV3 ( serviceSettings ) ;
394407
395408 // We have credentials, and know the mode. Further required fields checks
396409 // are specific to the requested action.
@@ -434,6 +447,7 @@ module.exports = function (RED) {
434447 // Credentials are needed for each of the modes.
435448 username = sUsername || this . credentials . username ;
436449 password = sPassword || this . credentials . password || config . password ;
450+ apikey = sApikey || this . credentials . apikey || config . apikey ;
437451
438452 endpoint = sEndpoint ;
439453 if ( ( ! config [ 'default-endpoint' ] ) && config [ 'service-endpoint' ] ) {
@@ -442,7 +456,7 @@ module.exports = function (RED) {
442456
443457 node . status ( { } ) ;
444458
445- initialCheck ( username , password )
459+ initialCheck ( username , password , apikey )
446460 . then ( function ( ) {
447461 return payloadCheck ( msg ) ;
448462 } )
@@ -472,7 +486,8 @@ module.exports = function (RED) {
472486 RED . nodes . registerType ( 'watson-translator' , SMTNode , {
473487 credentials : {
474488 username : { type :'text' } ,
475- password : { type :'password' }
489+ password : { type :'password' } ,
490+ apikey : { type :'password' }
476491 }
477492 } ) ;
478493} ;
0 commit comments