9f93687c06dc3f0ea1c0cd03d4f0c38af8f987c5
[motion2.git] / server / api / intZohoAccount / intZohoAccount.model.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x739e=['host','slice','substring','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','/oauth/v2/token','authorization_code','application/x-www-form-urlencoded','then','refreshToken','refresh_token','format','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','inspect','catch','lastIndexOf','https://accounts.zoho.com','POST','parse','info','lodash','util','../../config/logger','api','request-promise','path','../../config/environment','./intZohoAccount.attributes','../../components/integrations/configuration','exports','define','int_zoho_accounts','zone','changed','serverUrl','clientId','clientSecret','code'];(function(_0x204340,_0x420056){var _0x1d22e7=function(_0x1aab6c){while(--_0x1aab6c){_0x204340['push'](_0x204340['shift']());}};_0x1d22e7(++_0x420056);}(_0x739e,0x1c7));var _0xe739=function(_0x23843b,_0x48422f){_0x23843b=_0x23843b-0x0;var _0x2b9933=_0x739e[_0x23843b];return _0x2b9933;};'use strict';var _=require(_0xe739('0x0'));var util=require(_0xe739('0x1'));var logger=require(_0xe739('0x2'))(_0xe739('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xe739('0x4'));var fs=require('fs');var path=require(_0xe739('0x5'));var rimraf=require('rimraf');var config=require(_0xe739('0x6'));var attributes=require(_0xe739('0x7'));var integrations=require(_0xe739('0x8'));module[_0xe739('0x9')]=function(_0x21b76a,_0x2a5e12){return _0x21b76a[_0xe739('0xa')]('ZohoAccount',attributes,{'tableName':_0xe739('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x1931c4,_0x193b44,_0x1bb259){if(_0x1931c4['changed'](_0xe739('0xc'))||_0x1931c4[_0xe739('0xd')](_0xe739('0xe'))||_0x1931c4[_0xe739('0xd')](_0xe739('0xf'))||_0x1931c4[_0xe739('0xd')](_0xe739('0x10'))||_0x1931c4[_0xe739('0xd')](_0xe739('0x11'))||_0x1931c4[_0xe739('0xd')](_0xe739('0x12'))){var _0x2215fa,_0x99641e;_0x2215fa=_0x1931c4[_0xe739('0xe')];var _0x11bc83=_0x2215fa[_0xe739('0x13')](-0x1);if(_0x11bc83==='/'||_0x11bc83==='\x5c'||_0x11bc83===':'){_0x2215fa=_0x2215fa[_0xe739('0x14')](0x0,_0x2215fa['lastIndexOf'](_0x11bc83));}switch(_0x1931c4[_0xe739('0xc')]){case'US':_0x99641e='https://accounts.zoho.com';break;case'AU':_0x99641e=_0xe739('0x15');break;case'IN':_0x99641e=_0xe739('0x16');break;case'CN':_0x99641e=_0xe739('0x17');break;default:_0x99641e=_0xe739('0x18');break;}var _0x28df64={'method':'POST','uri':_0x99641e+_0xe739('0x19'),'form':{'grant_type':_0xe739('0x1a'),'client_id':_0x1931c4[_0xe739('0xf')],'client_secret':_0x1931c4[_0xe739('0x10')],'redirect_uri':_0x1931c4[_0xe739('0xe')],'code':_0x1931c4[_0xe739('0x11')]},'headers':{'Content-Type':_0xe739('0x1b')}};return rp(_0x28df64)[_0xe739('0x1c')](function(_0x47ee9c){var _0x4d40ac=JSON['parse'](_0x47ee9c);if(_0x4d40ac['refresh_token']){_0x1931c4[_0xe739('0x1d')]=_0x4d40ac[_0xe739('0x1e')];logger['info'](util[_0xe739('0x1f')](_0xe739('0x20'),_0x1931c4[_0xe739('0x21')],_0x1931c4['id']));}else{logger[_0xe739('0x22')](util[_0xe739('0x1f')](_0xe739('0x23'),_0x1931c4[_0xe739('0x21')],_0x1931c4['id']),util[_0xe739('0x24')](_0x4d40ac,{'showHidden':![],'depth':null}));}return _0x1bb259(null,_0x193b44);})[_0xe739('0x25')](function(_0x2ea96d){logger[_0xe739('0x22')](util['format'](_0xe739('0x23'),_0x1931c4[_0xe739('0x21')],_0x1931c4['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x1bb259(_0x2ea96d);});}else{return _0x1bb259(null,_0x193b44);}},'beforeUpdate':function(_0x302efa,_0x2479b4,_0x129a6a){if(_0x302efa['changed']('zone')||_0x302efa[_0xe739('0xd')](_0xe739('0xe'))||_0x302efa[_0xe739('0xd')]('clientId')||_0x302efa[_0xe739('0xd')](_0xe739('0x10'))||_0x302efa[_0xe739('0xd')](_0xe739('0x11'))||_0x302efa[_0xe739('0xd')]('host')){var _0x263647,_0x3199e0;_0x263647=_0x302efa[_0xe739('0xe')];var _0x2316b2=_0x263647[_0xe739('0x13')](-0x1);if(_0x2316b2==='/'||_0x2316b2==='\x5c'||_0x2316b2===':'){_0x263647=_0x263647[_0xe739('0x14')](0x0,_0x263647[_0xe739('0x26')](_0x2316b2));}switch(_0x302efa['zone']){case'US':_0x3199e0=_0xe739('0x27');break;case'AU':_0x3199e0='https://accounts.zoho.com.au';break;case'IN':_0x3199e0=_0xe739('0x16');break;case'CN':_0x3199e0=_0xe739('0x17');break;default:_0x3199e0=_0xe739('0x18');break;}var _0x2baca5={'method':_0xe739('0x28'),'uri':_0x3199e0+_0xe739('0x19'),'form':{'grant_type':'authorization_code','client_id':_0x302efa['clientId'],'client_secret':_0x302efa[_0xe739('0x10')],'redirect_uri':_0x302efa['serverUrl'],'code':_0x302efa[_0xe739('0x11')]},'headers':{'Content-Type':_0xe739('0x1b')}};return rp(_0x2baca5)['then'](function(_0x386865){var _0x442a08=JSON[_0xe739('0x29')](_0x386865);if(_0x442a08['refresh_token']){_0x302efa[_0xe739('0x1d')]=_0x442a08[_0xe739('0x1e')];logger[_0xe739('0x2a')](util['format'](_0xe739('0x20'),_0x302efa[_0xe739('0x21')],_0x302efa['id']));}else{logger[_0xe739('0x22')](util[_0xe739('0x1f')](_0xe739('0x23'),_0x302efa[_0xe739('0x21')],_0x302efa['id']),util[_0xe739('0x24')](_0x442a08,{'showHidden':![],'depth':null}));}return _0x129a6a(null,_0x2479b4);})['catch'](function(_0x20e465){logger[_0xe739('0x22')](util['format'](_0xe739('0x23'),_0x302efa['name'],_0x302efa['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x129a6a(_0x20e465);});}else{return _0x129a6a(null,_0x2479b4);}}}});};