Built motion from commit 8271bb6f.|2.6.28
[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 _0x7945=['serverUrl','clientId','clientSecret','code','host','slice','lastIndexOf','https://accounts.zoho.com','https://accounts.zoho.in','https://accounts.zoho.eu','POST','/oauth/v2/token','then','parse','refresh_token','info','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','https://accounts.zoho.com.au','https://accounts.zoho.com.cn','authorization_code','refreshToken','catch','lodash','util','api','moment','request-promise','../../config/environment','./intZohoAccount.attributes','exports','ZohoAccount','int_zoho_accounts','changed','zone'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7945,0xb7));var _0x5794=function(_0x4d06a0,_0x225dce){_0x4d06a0=_0x4d06a0-0x0;var _0x5cd335=_0x7945[_0x4d06a0];return _0x5cd335;};'use strict';var _=require(_0x5794('0x0'));var util=require(_0x5794('0x1'));var logger=require('../../config/logger')(_0x5794('0x2'));var moment=require(_0x5794('0x3'));var BPromise=require('bluebird');var rp=require(_0x5794('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x5794('0x5'));var attributes=require(_0x5794('0x6'));var integrations=require('../../components/integrations/configuration');module[_0x5794('0x7')]=function(_0x31dbce,_0x205092){return _0x31dbce['define'](_0x5794('0x8'),attributes,{'tableName':_0x5794('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0xdad0fd,_0x14381b,_0x3974e2){if(_0xdad0fd[_0x5794('0xa')](_0x5794('0xb'))||_0xdad0fd[_0x5794('0xa')](_0x5794('0xc'))||_0xdad0fd['changed'](_0x5794('0xd'))||_0xdad0fd[_0x5794('0xa')](_0x5794('0xe'))||_0xdad0fd['changed'](_0x5794('0xf'))||_0xdad0fd['changed'](_0x5794('0x10'))){var _0x5c1488,_0x5523fc;_0x5c1488=_0xdad0fd[_0x5794('0xc')];var _0x3b1124=_0x5c1488[_0x5794('0x11')](-0x1);if(_0x3b1124==='/'||_0x3b1124==='\x5c'||_0x3b1124===':'){_0x5c1488=_0x5c1488['substring'](0x0,_0x5c1488[_0x5794('0x12')](_0x3b1124));}switch(_0xdad0fd[_0x5794('0xb')]){case'US':_0x5523fc=_0x5794('0x13');break;case'AU':_0x5523fc='https://accounts.zoho.com.au';break;case'IN':_0x5523fc=_0x5794('0x14');break;case'CN':_0x5523fc='https://accounts.zoho.com.cn';break;default:_0x5523fc=_0x5794('0x15');break;}var _0x3fb959={'method':_0x5794('0x16'),'uri':_0x5523fc+_0x5794('0x17'),'form':{'grant_type':'authorization_code','client_id':_0xdad0fd['clientId'],'client_secret':_0xdad0fd[_0x5794('0xe')],'redirect_uri':_0xdad0fd[_0x5794('0xc')],'code':_0xdad0fd[_0x5794('0xf')]},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x3fb959)[_0x5794('0x18')](function(_0x5028f1){var _0x4098a2=JSON[_0x5794('0x19')](_0x5028f1);if(_0x4098a2[_0x5794('0x1a')]){_0xdad0fd['refreshToken']=_0x4098a2[_0x5794('0x1a')];logger[_0x5794('0x1b')](util[_0x5794('0x1c')](_0x5794('0x1d'),_0xdad0fd[_0x5794('0x1e')],_0xdad0fd['id']));}else{logger[_0x5794('0x1f')](util[_0x5794('0x1c')](_0x5794('0x20'),_0xdad0fd[_0x5794('0x1e')],_0xdad0fd['id']),util[_0x5794('0x21')](_0x4098a2,{'showHidden':![],'depth':null}));}return _0x3974e2(null,_0x14381b);})['catch'](function(_0x5d2660){logger[_0x5794('0x1f')](util['format'](_0x5794('0x20'),_0xdad0fd['name'],_0xdad0fd['id']),util[_0x5794('0x21')](parsedResult,{'showHidden':![],'depth':null}));return _0x3974e2(_0x5d2660);});}else{return _0x3974e2(null,_0x14381b);}},'beforeUpdate':function(_0xd2b0ca,_0x5e9cf7,_0x160ea7){if(_0xd2b0ca[_0x5794('0xa')](_0x5794('0xb'))||_0xd2b0ca[_0x5794('0xa')](_0x5794('0xc'))||_0xd2b0ca['changed'](_0x5794('0xd'))||_0xd2b0ca[_0x5794('0xa')](_0x5794('0xe'))||_0xd2b0ca[_0x5794('0xa')](_0x5794('0xf'))||_0xd2b0ca[_0x5794('0xa')](_0x5794('0x10'))){var _0x4bd6b9,_0x2a4f89;_0x4bd6b9=_0xd2b0ca[_0x5794('0xc')];var _0x1722f6=_0x4bd6b9['slice'](-0x1);if(_0x1722f6==='/'||_0x1722f6==='\x5c'||_0x1722f6===':'){_0x4bd6b9=_0x4bd6b9['substring'](0x0,_0x4bd6b9[_0x5794('0x12')](_0x1722f6));}switch(_0xd2b0ca[_0x5794('0xb')]){case'US':_0x2a4f89='https://accounts.zoho.com';break;case'AU':_0x2a4f89=_0x5794('0x22');break;case'IN':_0x2a4f89=_0x5794('0x14');break;case'CN':_0x2a4f89=_0x5794('0x23');break;default:_0x2a4f89=_0x5794('0x15');break;}var _0x57fb75={'method':_0x5794('0x16'),'uri':_0x2a4f89+_0x5794('0x17'),'form':{'grant_type':_0x5794('0x24'),'client_id':_0xd2b0ca[_0x5794('0xd')],'client_secret':_0xd2b0ca['clientSecret'],'redirect_uri':_0xd2b0ca[_0x5794('0xc')],'code':_0xd2b0ca[_0x5794('0xf')]},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x57fb75)[_0x5794('0x18')](function(_0x32bfbc){var _0x250687=JSON[_0x5794('0x19')](_0x32bfbc);if(_0x250687['refresh_token']){_0xd2b0ca[_0x5794('0x25')]=_0x250687['refresh_token'];logger[_0x5794('0x1b')](util[_0x5794('0x1c')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0xd2b0ca[_0x5794('0x1e')],_0xd2b0ca['id']));}else{logger[_0x5794('0x1f')](util[_0x5794('0x1c')](_0x5794('0x20'),_0xd2b0ca[_0x5794('0x1e')],_0xd2b0ca['id']),util[_0x5794('0x21')](_0x250687,{'showHidden':![],'depth':null}));}return _0x160ea7(null,_0x5e9cf7);})[_0x5794('0x26')](function(_0x581538){logger[_0x5794('0x1f')](util[_0x5794('0x1c')](_0x5794('0x20'),_0xd2b0ca[_0x5794('0x1e')],_0xd2b0ca['id']),util[_0x5794('0x21')](parsedResult,{'showHidden':![],'depth':null}));return _0x160ea7(_0x581538);});}else{return _0x160ea7(null,_0x5e9cf7);}}}});};