Built motion from commit 092f8824.|2.5.49
[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 _0x4ee0=['define','int_zoho_accounts','changed','zone','serverUrl','clientId','clientSecret','host','slice','substring','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','authorization_code','code','application/x-www-form-urlencoded','parse','refresh_token','refreshToken','info','format','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','error','catch','inspect','lastIndexOf','https://accounts.zoho.eu','/oauth/v2/token','then','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./intZohoAccount.attributes','../../components/integrations/configuration','exports'];(function(_0x38aa92,_0x279f43){var _0x1ef522=function(_0x3aa253){while(--_0x3aa253){_0x38aa92['push'](_0x38aa92['shift']());}};_0x1ef522(++_0x279f43);}(_0x4ee0,0x102));var _0x04ee=function(_0x5a95fa,_0x4a2fc9){_0x5a95fa=_0x5a95fa-0x0;var _0x1a61b8=_0x4ee0[_0x5a95fa];return _0x1a61b8;};'use strict';var _=require(_0x04ee('0x0'));var util=require(_0x04ee('0x1'));var logger=require(_0x04ee('0x2'))(_0x04ee('0x3'));var moment=require(_0x04ee('0x4'));var BPromise=require(_0x04ee('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x04ee('0x6'));var rimraf=require(_0x04ee('0x7'));var config=require(_0x04ee('0x8'));var attributes=require(_0x04ee('0x9'));var integrations=require(_0x04ee('0xa'));module[_0x04ee('0xb')]=function(_0xa14723,_0x291d30){return _0xa14723[_0x04ee('0xc')]('ZohoAccount',attributes,{'tableName':_0x04ee('0xd'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x2f6c6a,_0x2dcdd3,_0x992aeb){if(_0x2f6c6a[_0x04ee('0xe')](_0x04ee('0xf'))||_0x2f6c6a[_0x04ee('0xe')](_0x04ee('0x10'))||_0x2f6c6a['changed'](_0x04ee('0x11'))||_0x2f6c6a[_0x04ee('0xe')](_0x04ee('0x12'))||_0x2f6c6a[_0x04ee('0xe')]('code')||_0x2f6c6a[_0x04ee('0xe')](_0x04ee('0x13'))){var _0x287cb1,_0x3554b1;_0x287cb1=_0x2f6c6a[_0x04ee('0x10')];var _0x31b6dd=_0x287cb1[_0x04ee('0x14')](-0x1);if(_0x31b6dd==='/'||_0x31b6dd==='\x5c'||_0x31b6dd===':'){_0x287cb1=_0x287cb1[_0x04ee('0x15')](0x0,_0x287cb1['lastIndexOf'](_0x31b6dd));}switch(_0x2f6c6a['zone']){case'US':_0x3554b1=_0x04ee('0x16');break;case'AU':_0x3554b1=_0x04ee('0x17');break;case'IN':_0x3554b1=_0x04ee('0x18');break;case'CN':_0x3554b1=_0x04ee('0x19');break;default:_0x3554b1='https://accounts.zoho.eu';break;}var _0x1a6a08={'method':_0x04ee('0x1a'),'uri':_0x3554b1+'/oauth/v2/token','form':{'grant_type':_0x04ee('0x1b'),'client_id':_0x2f6c6a['clientId'],'client_secret':_0x2f6c6a['clientSecret'],'redirect_uri':_0x2f6c6a[_0x04ee('0x10')],'code':_0x2f6c6a[_0x04ee('0x1c')]},'headers':{'Content-Type':_0x04ee('0x1d')}};return rp(_0x1a6a08)['then'](function(_0x3b2dc3){var _0x243795=JSON[_0x04ee('0x1e')](_0x3b2dc3);if(_0x243795[_0x04ee('0x1f')]){_0x2f6c6a[_0x04ee('0x20')]=_0x243795[_0x04ee('0x1f')];logger[_0x04ee('0x21')](util[_0x04ee('0x22')](_0x04ee('0x23'),_0x2f6c6a[_0x04ee('0x24')],_0x2f6c6a['id']));}else{logger[_0x04ee('0x25')](util['format']('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x2f6c6a[_0x04ee('0x24')],_0x2f6c6a['id']),util['inspect'](_0x243795,{'showHidden':![],'depth':null}));}return _0x992aeb(null,_0x2dcdd3);})[_0x04ee('0x26')](function(_0x2febd3){logger[_0x04ee('0x25')](util[_0x04ee('0x22')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x2f6c6a['name'],_0x2f6c6a['id']),util[_0x04ee('0x27')](parsedResult,{'showHidden':![],'depth':null}));return _0x992aeb(_0x2febd3);});}else{return _0x992aeb(null,_0x2dcdd3);}},'beforeUpdate':function(_0x369b03,_0x2190e3,_0x2984ac){if(_0x369b03[_0x04ee('0xe')](_0x04ee('0xf'))||_0x369b03['changed'](_0x04ee('0x10'))||_0x369b03[_0x04ee('0xe')]('clientId')||_0x369b03[_0x04ee('0xe')](_0x04ee('0x12'))||_0x369b03[_0x04ee('0xe')]('code')||_0x369b03[_0x04ee('0xe')](_0x04ee('0x13'))){var _0x3e58d9,_0x3bf2d5;_0x3e58d9=_0x369b03[_0x04ee('0x10')];var _0x22e4b9=_0x3e58d9['slice'](-0x1);if(_0x22e4b9==='/'||_0x22e4b9==='\x5c'||_0x22e4b9===':'){_0x3e58d9=_0x3e58d9[_0x04ee('0x15')](0x0,_0x3e58d9[_0x04ee('0x28')](_0x22e4b9));}switch(_0x369b03[_0x04ee('0xf')]){case'US':_0x3bf2d5=_0x04ee('0x16');break;case'AU':_0x3bf2d5='https://accounts.zoho.com.au';break;case'IN':_0x3bf2d5='https://accounts.zoho.in';break;case'CN':_0x3bf2d5=_0x04ee('0x19');break;default:_0x3bf2d5=_0x04ee('0x29');break;}var _0x2d047d={'method':_0x04ee('0x1a'),'uri':_0x3bf2d5+_0x04ee('0x2a'),'form':{'grant_type':_0x04ee('0x1b'),'client_id':_0x369b03[_0x04ee('0x11')],'client_secret':_0x369b03['clientSecret'],'redirect_uri':_0x369b03[_0x04ee('0x10')],'code':_0x369b03[_0x04ee('0x1c')]},'headers':{'Content-Type':_0x04ee('0x1d')}};return rp(_0x2d047d)[_0x04ee('0x2b')](function(_0x14ad48){var _0x4d957c=JSON[_0x04ee('0x1e')](_0x14ad48);if(_0x4d957c[_0x04ee('0x1f')]){_0x369b03[_0x04ee('0x20')]=_0x4d957c[_0x04ee('0x1f')];logger[_0x04ee('0x21')](util[_0x04ee('0x22')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x369b03[_0x04ee('0x24')],_0x369b03['id']));}else{logger['error'](util[_0x04ee('0x22')](_0x04ee('0x2c'),_0x369b03['name'],_0x369b03['id']),util[_0x04ee('0x27')](_0x4d957c,{'showHidden':![],'depth':null}));}return _0x2984ac(null,_0x2190e3);})[_0x04ee('0x26')](function(_0x249ad1){logger['error'](util[_0x04ee('0x22')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x369b03[_0x04ee('0x24')],_0x369b03['id']),util[_0x04ee('0x27')](parsedResult,{'showHidden':![],'depth':null}));return _0x2984ac(_0x249ad1);});}else{return _0x2984ac(null,_0x2190e3);}}}});};