da6554033509a50b642fc1de43bcf88f8928b2da
[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 _0xd562=['https://accounts.zoho.com','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','authorization_code','then','parse','refresh_token','info','format','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','error','inspect','catch','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','substring','https://accounts.zoho.com.au','https://accounts.zoho.eu','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','define','changed','serverUrl','clientId','clientSecret','code','host','slice','lastIndexOf','zone'];(function(_0x48b6c6,_0xba4073){var _0x1bcc9a=function(_0x581c84){while(--_0x581c84){_0x48b6c6['push'](_0x48b6c6['shift']());}};_0x1bcc9a(++_0xba4073);}(_0xd562,0x18f));var _0x2d56=function(_0x483c73,_0x47f320){_0x483c73=_0x483c73-0x0;var _0x5467c9=_0xd562[_0x483c73];return _0x5467c9;};'use strict';var _=require(_0x2d56('0x0'));var util=require(_0x2d56('0x1'));var logger=require(_0x2d56('0x2'))(_0x2d56('0x3'));var moment=require('moment');var BPromise=require(_0x2d56('0x4'));var rp=require(_0x2d56('0x5'));var fs=require('fs');var path=require(_0x2d56('0x6'));var rimraf=require(_0x2d56('0x7'));var config=require(_0x2d56('0x8'));var attributes=require('./intZohoAccount.attributes');var integrations=require('../../components/integrations/configuration');module['exports']=function(_0x564e94,_0x45ed09){return _0x564e94[_0x2d56('0x9')]('ZohoAccount',attributes,{'tableName':'int_zoho_accounts','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x198541,_0x3d11a1,_0x3481dd){if(_0x198541[_0x2d56('0xa')]('zone')||_0x198541[_0x2d56('0xa')](_0x2d56('0xb'))||_0x198541[_0x2d56('0xa')](_0x2d56('0xc'))||_0x198541[_0x2d56('0xa')](_0x2d56('0xd'))||_0x198541[_0x2d56('0xa')](_0x2d56('0xe'))||_0x198541[_0x2d56('0xa')](_0x2d56('0xf'))){var _0x10298c,_0x247f5d;_0x10298c=_0x198541[_0x2d56('0xb')];var _0x53e5e3=_0x10298c[_0x2d56('0x10')](-0x1);if(_0x53e5e3==='/'||_0x53e5e3==='\x5c'||_0x53e5e3===':'){_0x10298c=_0x10298c['substring'](0x0,_0x10298c[_0x2d56('0x11')](_0x53e5e3));}switch(_0x198541[_0x2d56('0x12')]){case'US':_0x247f5d=_0x2d56('0x13');break;case'AU':_0x247f5d='https://accounts.zoho.com.au';break;case'IN':_0x247f5d=_0x2d56('0x14');break;case'CN':_0x247f5d=_0x2d56('0x15');break;default:_0x247f5d='https://accounts.zoho.eu';break;}var _0x57e8d2={'method':_0x2d56('0x16'),'uri':_0x247f5d+'/oauth/v2/token','form':{'grant_type':_0x2d56('0x17'),'client_id':_0x198541['clientId'],'client_secret':_0x198541[_0x2d56('0xd')],'redirect_uri':_0x198541[_0x2d56('0xb')],'code':_0x198541[_0x2d56('0xe')]},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x57e8d2)[_0x2d56('0x18')](function(_0x24c6c3){var _0x2660a6=JSON[_0x2d56('0x19')](_0x24c6c3);if(_0x2660a6[_0x2d56('0x1a')]){_0x198541['refreshToken']=_0x2660a6[_0x2d56('0x1a')];logger[_0x2d56('0x1b')](util[_0x2d56('0x1c')](_0x2d56('0x1d'),_0x198541[_0x2d56('0x1e')],_0x198541['id']));}else{logger[_0x2d56('0x1f')](util[_0x2d56('0x1c')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x198541['name'],_0x198541['id']),util[_0x2d56('0x20')](_0x2660a6,{'showHidden':![],'depth':null}));}return _0x3481dd(null,_0x3d11a1);})[_0x2d56('0x21')](function(_0x3fbf94){logger[_0x2d56('0x1f')](util['format'](_0x2d56('0x22'),_0x198541[_0x2d56('0x1e')],_0x198541['id']),util[_0x2d56('0x20')](parsedResult,{'showHidden':![],'depth':null}));return _0x3481dd(_0x3fbf94);});}else{return _0x3481dd(null,_0x3d11a1);}},'beforeUpdate':function(_0x20ae7f,_0x30a5c3,_0x3050a0){if(_0x20ae7f[_0x2d56('0xa')](_0x2d56('0x12'))||_0x20ae7f[_0x2d56('0xa')]('serverUrl')||_0x20ae7f[_0x2d56('0xa')]('clientId')||_0x20ae7f['changed']('clientSecret')||_0x20ae7f[_0x2d56('0xa')](_0x2d56('0xe'))||_0x20ae7f[_0x2d56('0xa')]('host')){var _0x33b37b,_0x16381e;_0x33b37b=_0x20ae7f[_0x2d56('0xb')];var _0x4aa0ee=_0x33b37b[_0x2d56('0x10')](-0x1);if(_0x4aa0ee==='/'||_0x4aa0ee==='\x5c'||_0x4aa0ee===':'){_0x33b37b=_0x33b37b[_0x2d56('0x23')](0x0,_0x33b37b['lastIndexOf'](_0x4aa0ee));}switch(_0x20ae7f[_0x2d56('0x12')]){case'US':_0x16381e='https://accounts.zoho.com';break;case'AU':_0x16381e=_0x2d56('0x24');break;case'IN':_0x16381e=_0x2d56('0x14');break;case'CN':_0x16381e=_0x2d56('0x15');break;default:_0x16381e=_0x2d56('0x25');break;}var _0xb237d4={'method':'POST','uri':_0x16381e+'/oauth/v2/token','form':{'grant_type':_0x2d56('0x17'),'client_id':_0x20ae7f[_0x2d56('0xc')],'client_secret':_0x20ae7f[_0x2d56('0xd')],'redirect_uri':_0x20ae7f[_0x2d56('0xb')],'code':_0x20ae7f['code']},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0xb237d4)[_0x2d56('0x18')](function(_0x26d15e){var _0x3c4733=JSON[_0x2d56('0x19')](_0x26d15e);if(_0x3c4733['refresh_token']){_0x20ae7f['refreshToken']=_0x3c4733[_0x2d56('0x1a')];logger['info'](util['format'](_0x2d56('0x1d'),_0x20ae7f[_0x2d56('0x1e')],_0x20ae7f['id']));}else{logger[_0x2d56('0x1f')](util['format'](_0x2d56('0x22'),_0x20ae7f[_0x2d56('0x1e')],_0x20ae7f['id']),util[_0x2d56('0x20')](_0x3c4733,{'showHidden':![],'depth':null}));}return _0x3050a0(null,_0x30a5c3);})[_0x2d56('0x21')](function(_0x3a1027){logger[_0x2d56('0x1f')](util[_0x2d56('0x1c')](_0x2d56('0x22'),_0x20ae7f[_0x2d56('0x1e')],_0x20ae7f['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x3050a0(_0x3a1027);});}else{return _0x3050a0(null,_0x30a5c3);}}}});};