@@ -27,14 +27,17 @@ module.exports = function(RED) {
2727 service = serviceutils . getServiceCreds ( SERVICE_IDENTIFIER ) ,
2828 username = null ,
2929 password = null ,
30+ apikey = null ,
3031 sUsername = null ,
3132 sPassword = null ,
33+ sApikey = null ,
3234 endpoint = '' ,
3335 sEndpoint = 'https://gateway.watsonplatform.net/natural-language-classifier/api' ;
3436
3537 if ( service ) {
36- sUsername = service . username ;
37- sPassword = service . password ;
38+ sUsername = service . username ? service . username : '' ;
39+ sPassword = service . password ? service . password : '' ;
40+ sApikey = service . apikey ? service . apikey : '' ;
3841 sEndpoint = service . url ;
3942 }
4043
@@ -57,13 +60,14 @@ module.exports = function(RED) {
5760 node . verifyCredentials = function ( msg ) {
5861 username = sUsername || node . credentials . username ;
5962 password = sPassword || node . credentials . password ;
63+ apikey = sApikey || node . credentials . apikey ;
6064
6165 endpoint = sEndpoint ;
6266 if ( ( ! config [ 'default-endpoint' ] ) && config [ 'service-endpoint' ] ) {
6367 endpoint = config [ 'service-endpoint' ] ;
6468 }
6569
66- if ( ! username || ! password ) {
70+ if ( ! apikey && ( ! username || ! password ) ) {
6771 return Promise . reject ( 'Missing Natural Language Classifier credentials' ) ;
6872 } else {
6973 return Promise . resolve ( ) ;
@@ -188,14 +192,19 @@ module.exports = function(RED) {
188192 var p = new Promise ( function resolver ( resolve , reject ) {
189193 var natural_language_classifier = null ,
190194 serviceSettings = {
191- username : username ,
192- password : password ,
193195 version : 'v1' ,
194196 headers : {
195197 'User-Agent' : pkg . name + '-' + pkg . version
196198 }
197199 } ;
198200
201+ if ( apikey ) {
202+ serviceSettings . iam_apikey = apikey ;
203+ } else {
204+ serviceSettings . username = username ;
205+ serviceSettings . password = password ;
206+ }
207+
199208 if ( endpoint ) {
200209 serviceSettings . url = endpoint ;
201210 }
@@ -211,7 +220,7 @@ module.exports = function(RED) {
211220 if ( err ) {
212221 reject ( err ) ;
213222 } else {
214- console . log ( response ) ;
223+ // console.log(response);
215224 switch ( mode ) {
216225 case 'classify' :
217226 msg . payload = {
@@ -278,12 +287,9 @@ module.exports = function(RED) {
278287 }
279288 RED . nodes . registerType ( 'watson-natural-language-classifier' , Node , {
280289 credentials : {
281- username : {
282- type : 'text'
283- } ,
284- password : {
285- type : 'password'
286- }
290+ username : { type : 'text' } ,
291+ password : { type : 'password' } ,
292+ apikey : { type :'password' }
287293 }
288294 } ) ;
289295} ;
0 commit comments