grafo-client
Version:
Grafo Client API Library
1 lines • 1.85 kB
JavaScript
;var request=require("request"),ConfHelper=require("./conf/conf_helper");function AuthApi(e,r){this.config=e,this.confHelper=new ConfHelper(e),this.email=e.GRAFO.DEFAULT_LOGIN.EMAIL,this.password=e.GRAFO.DEFAULT_LOGIN.PASSSWORD,this.token=e.GRAFO.DEFAULT_LOGIN.TOKEN,this.sessionCookie=null,this.logger=r}module.exports=AuthApi,AuthApi.prototype.loginWithEmailPasswordToken=function(e,r,o){var s=getCredentials(this,e,r,o);this.logger.debug("Logging In...");var i=this;return new Promise(function(e,r){var o={url:i.confHelper.getBaseRestUrl()+"/api/v1/login",method:"POST",form:{emailAddress:s.email,password:s.password,token:s.token}};request(o,function(o,s,t){if(o)i.logger.error(o),r(new Error("Error in login is "+o));else if(200==s.statusCode)i.logger.debug("Authentication complete"),i.sessionCookie=s.headers["set-cookie"][0].split(";")[0],e(i.sessionCookie);else{var n=JSON.parse(s.body).message?JSON.parse(s.body).message:JSON.parse(s.body).error,a="HTTP error code: "+s.statusCode+", Message: "+n;i.logger.error(a),r(new Error(a))}})})},AuthApi.prototype.getUserProfile=function(){var e=this;return e.logger.debug("Getting Profile for currently logged in user ..."),new Promise(function(r,o){var s={Cookie:e.sessionCookie},i={url:e.confHelper.getBaseRestUrl()+"/user",method:"GET",headers:s};request(i,function(s,i,t){if(s)e.logger.error(s),o(new Error("Problem in fetching User Profile "+s));else if(200==i.statusCode){var n=JSON.parse(i.body);e.logger.debug("User Profile fetched"),r(n.profile)}else{var a=JSON.parse(i.body).message?JSON.parse(i.body).message:JSON.parse(i.body).error,l="HTTP error code: "+i.statusCode+", Message: "+a;e.logger.error(l),o(new Error(l))}})})};var getCredentials=function(e,r,o,s){var i={};return i.email=void 0===r?e.email:r,i.password=void 0===o?e.password:o,i.token=void 0===s?e.token:s,i};