Built motion from commit efa66e19.|2.6.22
[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 _0xf2b4=['substring','lastIndexOf','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','/oauth/v2/token','authorization_code','clientId','application/x-www-form-urlencoded','then','parse','refresh_token','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','error','format','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','inspect','catch','zone','clientSecret','slice','lodash','util','api','moment','bluebird','request-promise','path','../../config/environment','exports','define','ZohoAccount','int_zoho_accounts','changed','serverUrl','code','host'];(function(_0x1b5231,_0x2f89ce){var _0x37e141=function(_0x5d2056){while(--_0x5d2056){_0x1b5231['push'](_0x1b5231['shift']());}};_0x37e141(++_0x2f89ce);}(_0xf2b4,0xbd));var _0x4f2b=function(_0x4a1156,_0x455af6){_0x4a1156=_0x4a1156-0x0;var _0x230e6e=_0xf2b4[_0x4a1156];return _0x230e6e;};'use strict';var _=require(_0x4f2b('0x0'));var util=require(_0x4f2b('0x1'));var logger=require('../../config/logger')(_0x4f2b('0x2'));var moment=require(_0x4f2b('0x3'));var BPromise=require(_0x4f2b('0x4'));var rp=require(_0x4f2b('0x5'));var fs=require('fs');var path=require(_0x4f2b('0x6'));var rimraf=require('rimraf');var config=require(_0x4f2b('0x7'));var attributes=require('./intZohoAccount.attributes');var integrations=require('../../components/integrations/configuration');module[_0x4f2b('0x8')]=function(_0x3facbd,_0x16fefc){return _0x3facbd[_0x4f2b('0x9')](_0x4f2b('0xa'),attributes,{'tableName':_0x4f2b('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x80901f,_0x1c1b91,_0x1f40e7){if(_0x80901f[_0x4f2b('0xc')]('zone')||_0x80901f[_0x4f2b('0xc')](_0x4f2b('0xd'))||_0x80901f[_0x4f2b('0xc')]('clientId')||_0x80901f[_0x4f2b('0xc')]('clientSecret')||_0x80901f[_0x4f2b('0xc')](_0x4f2b('0xe'))||_0x80901f[_0x4f2b('0xc')](_0x4f2b('0xf'))){var _0x45ca95,_0x35e9f1;_0x45ca95=_0x80901f[_0x4f2b('0xd')];var _0x3f5d1f=_0x45ca95['slice'](-0x1);if(_0x3f5d1f==='/'||_0x3f5d1f==='\x5c'||_0x3f5d1f===':'){_0x45ca95=_0x45ca95[_0x4f2b('0x10')](0x0,_0x45ca95[_0x4f2b('0x11')](_0x3f5d1f));}switch(_0x80901f['zone']){case'US':_0x35e9f1=_0x4f2b('0x12');break;case'AU':_0x35e9f1=_0x4f2b('0x13');break;case'IN':_0x35e9f1=_0x4f2b('0x14');break;case'CN':_0x35e9f1=_0x4f2b('0x15');break;default:_0x35e9f1=_0x4f2b('0x16');break;}var _0x464556={'method':_0x4f2b('0x17'),'uri':_0x35e9f1+_0x4f2b('0x18'),'form':{'grant_type':_0x4f2b('0x19'),'client_id':_0x80901f[_0x4f2b('0x1a')],'client_secret':_0x80901f['clientSecret'],'redirect_uri':_0x80901f[_0x4f2b('0xd')],'code':_0x80901f['code']},'headers':{'Content-Type':_0x4f2b('0x1b')}};return rp(_0x464556)[_0x4f2b('0x1c')](function(_0x5c9766){var _0x397d1b=JSON[_0x4f2b('0x1d')](_0x5c9766);if(_0x397d1b[_0x4f2b('0x1e')]){_0x80901f['refreshToken']=_0x397d1b[_0x4f2b('0x1e')];logger['info'](util['format'](_0x4f2b('0x1f'),_0x80901f[_0x4f2b('0x20')],_0x80901f['id']));}else{logger[_0x4f2b('0x21')](util[_0x4f2b('0x22')](_0x4f2b('0x23'),_0x80901f['name'],_0x80901f['id']),util[_0x4f2b('0x24')](_0x397d1b,{'showHidden':![],'depth':null}));}return _0x1f40e7(null,_0x1c1b91);})[_0x4f2b('0x25')](function(_0x3da668){logger[_0x4f2b('0x21')](util[_0x4f2b('0x22')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x80901f[_0x4f2b('0x20')],_0x80901f['id']),util[_0x4f2b('0x24')](parsedResult,{'showHidden':![],'depth':null}));return _0x1f40e7(_0x3da668);});}else{return _0x1f40e7(null,_0x1c1b91);}},'beforeUpdate':function(_0x571112,_0x3e8618,_0xeae50b){if(_0x571112[_0x4f2b('0xc')](_0x4f2b('0x26'))||_0x571112[_0x4f2b('0xc')](_0x4f2b('0xd'))||_0x571112[_0x4f2b('0xc')]('clientId')||_0x571112[_0x4f2b('0xc')](_0x4f2b('0x27'))||_0x571112[_0x4f2b('0xc')](_0x4f2b('0xe'))||_0x571112[_0x4f2b('0xc')]('host')){var _0x114840,_0x3d7cee;_0x114840=_0x571112[_0x4f2b('0xd')];var _0x577193=_0x114840[_0x4f2b('0x28')](-0x1);if(_0x577193==='/'||_0x577193==='\x5c'||_0x577193===':'){_0x114840=_0x114840[_0x4f2b('0x10')](0x0,_0x114840[_0x4f2b('0x11')](_0x577193));}switch(_0x571112[_0x4f2b('0x26')]){case'US':_0x3d7cee='https://accounts.zoho.com';break;case'AU':_0x3d7cee=_0x4f2b('0x13');break;case'IN':_0x3d7cee=_0x4f2b('0x14');break;case'CN':_0x3d7cee=_0x4f2b('0x15');break;default:_0x3d7cee=_0x4f2b('0x16');break;}var _0x3947d6={'method':_0x4f2b('0x17'),'uri':_0x3d7cee+_0x4f2b('0x18'),'form':{'grant_type':_0x4f2b('0x19'),'client_id':_0x571112[_0x4f2b('0x1a')],'client_secret':_0x571112['clientSecret'],'redirect_uri':_0x571112[_0x4f2b('0xd')],'code':_0x571112[_0x4f2b('0xe')]},'headers':{'Content-Type':_0x4f2b('0x1b')}};return rp(_0x3947d6)[_0x4f2b('0x1c')](function(_0x34b22f){var _0x58fa9b=JSON['parse'](_0x34b22f);if(_0x58fa9b['refresh_token']){_0x571112['refreshToken']=_0x58fa9b[_0x4f2b('0x1e')];logger['info'](util[_0x4f2b('0x22')](_0x4f2b('0x1f'),_0x571112[_0x4f2b('0x20')],_0x571112['id']));}else{logger[_0x4f2b('0x21')](util[_0x4f2b('0x22')](_0x4f2b('0x23'),_0x571112[_0x4f2b('0x20')],_0x571112['id']),util['inspect'](_0x58fa9b,{'showHidden':![],'depth':null}));}return _0xeae50b(null,_0x3e8618);})[_0x4f2b('0x25')](function(_0x3fb676){logger[_0x4f2b('0x21')](util[_0x4f2b('0x22')](_0x4f2b('0x23'),_0x571112[_0x4f2b('0x20')],_0x571112['id']),util[_0x4f2b('0x24')](parsedResult,{'showHidden':![],'depth':null}));return _0xeae50b(_0x3fb676);});}else{return _0xeae50b(null,_0x3e8618);}}}});};