Built motion from commit (unavailable).|2.5.10
[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 _0xddb4=['info','catch','lodash','util','api','bluebird','request-promise','path','rimraf','../../config/environment','../../components/integrations/configuration','exports','define','ZohoAccount','int_zoho_accounts','zone','changed','clientSecret','code','host','serverUrl','slice','substring','lastIndexOf','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.eu','/oauth/v2/token','clientId','application/x-www-form-urlencoded','then','parse','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','https://accounts.zoho.com.cn','authorization_code','refreshToken'];(function(_0x29d6e6,_0x264220){var _0xc75ff0=function(_0x214f6b){while(--_0x214f6b){_0x29d6e6['push'](_0x29d6e6['shift']());}};_0xc75ff0(++_0x264220);}(_0xddb4,0x104));var _0x4ddb=function(_0x4af01e,_0x543f5c){_0x4af01e=_0x4af01e-0x0;var _0x178c11=_0xddb4[_0x4af01e];return _0x178c11;};'use strict';var _=require(_0x4ddb('0x0'));var util=require(_0x4ddb('0x1'));var logger=require('../../config/logger')(_0x4ddb('0x2'));var moment=require('moment');var BPromise=require(_0x4ddb('0x3'));var rp=require(_0x4ddb('0x4'));var fs=require('fs');var path=require(_0x4ddb('0x5'));var rimraf=require(_0x4ddb('0x6'));var config=require(_0x4ddb('0x7'));var attributes=require('./intZohoAccount.attributes');var integrations=require(_0x4ddb('0x8'));module[_0x4ddb('0x9')]=function(_0xad31b1,_0x37552e){return _0xad31b1[_0x4ddb('0xa')](_0x4ddb('0xb'),attributes,{'tableName':_0x4ddb('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x8cfbba,_0x1e2df0,_0x21883f){if(_0x8cfbba['changed'](_0x4ddb('0xd'))||_0x8cfbba[_0x4ddb('0xe')]('serverUrl')||_0x8cfbba['changed']('clientId')||_0x8cfbba[_0x4ddb('0xe')](_0x4ddb('0xf'))||_0x8cfbba['changed'](_0x4ddb('0x10'))||_0x8cfbba[_0x4ddb('0xe')](_0x4ddb('0x11'))){var _0x64f5b4,_0x3ba851;_0x64f5b4=_0x8cfbba[_0x4ddb('0x12')];var _0x1e4969=_0x64f5b4[_0x4ddb('0x13')](-0x1);if(_0x1e4969==='/'||_0x1e4969==='\x5c'||_0x1e4969===':'){_0x64f5b4=_0x64f5b4[_0x4ddb('0x14')](0x0,_0x64f5b4[_0x4ddb('0x15')](_0x1e4969));}switch(_0x8cfbba[_0x4ddb('0xd')]){case'US':_0x3ba851=_0x4ddb('0x16');break;case'AU':_0x3ba851=_0x4ddb('0x17');break;case'IN':_0x3ba851=_0x4ddb('0x18');break;case'CN':_0x3ba851='https://accounts.zoho.com.cn';break;default:_0x3ba851=_0x4ddb('0x19');break;}var _0x2a3aa5={'method':'POST','uri':_0x3ba851+_0x4ddb('0x1a'),'form':{'grant_type':'authorization_code','client_id':_0x8cfbba[_0x4ddb('0x1b')],'client_secret':_0x8cfbba['clientSecret'],'redirect_uri':_0x8cfbba[_0x4ddb('0x12')],'code':_0x8cfbba['code']},'headers':{'Content-Type':_0x4ddb('0x1c')}};return rp(_0x2a3aa5)[_0x4ddb('0x1d')](function(_0x4c89c9){var _0x21e01f=JSON[_0x4ddb('0x1e')](_0x4c89c9);if(_0x21e01f[_0x4ddb('0x1f')]){_0x8cfbba['refreshToken']=_0x21e01f['refresh_token'];logger['info'](util[_0x4ddb('0x20')](_0x4ddb('0x21'),_0x8cfbba[_0x4ddb('0x22')],_0x8cfbba['id']));}else{logger[_0x4ddb('0x23')](util['format'](_0x4ddb('0x24'),_0x8cfbba[_0x4ddb('0x22')],_0x8cfbba['id']),util[_0x4ddb('0x25')](_0x21e01f,{'showHidden':![],'depth':null}));}return _0x21883f(null,_0x1e2df0);})['catch'](function(_0x246762){logger['error'](util[_0x4ddb('0x20')](_0x4ddb('0x24'),_0x8cfbba[_0x4ddb('0x22')],_0x8cfbba['id']),util[_0x4ddb('0x25')](parsedResult,{'showHidden':![],'depth':null}));return _0x21883f(_0x246762);});}else{return _0x21883f(null,_0x1e2df0);}},'beforeUpdate':function(_0x2082c1,_0x57c0f1,_0x24dfe3){if(_0x2082c1[_0x4ddb('0xe')](_0x4ddb('0xd'))||_0x2082c1[_0x4ddb('0xe')](_0x4ddb('0x12'))||_0x2082c1[_0x4ddb('0xe')](_0x4ddb('0x1b'))||_0x2082c1[_0x4ddb('0xe')](_0x4ddb('0xf'))||_0x2082c1[_0x4ddb('0xe')](_0x4ddb('0x10'))||_0x2082c1[_0x4ddb('0xe')](_0x4ddb('0x11'))){var _0x39fa48,_0x3da8f2;_0x39fa48=_0x2082c1[_0x4ddb('0x12')];var _0x5333f3=_0x39fa48['slice'](-0x1);if(_0x5333f3==='/'||_0x5333f3==='\x5c'||_0x5333f3===':'){_0x39fa48=_0x39fa48[_0x4ddb('0x14')](0x0,_0x39fa48[_0x4ddb('0x15')](_0x5333f3));}switch(_0x2082c1['zone']){case'US':_0x3da8f2=_0x4ddb('0x16');break;case'AU':_0x3da8f2=_0x4ddb('0x17');break;case'IN':_0x3da8f2='https://accounts.zoho.in';break;case'CN':_0x3da8f2=_0x4ddb('0x26');break;default:_0x3da8f2=_0x4ddb('0x19');break;}var _0x3f2b28={'method':'POST','uri':_0x3da8f2+_0x4ddb('0x1a'),'form':{'grant_type':_0x4ddb('0x27'),'client_id':_0x2082c1[_0x4ddb('0x1b')],'client_secret':_0x2082c1[_0x4ddb('0xf')],'redirect_uri':_0x2082c1[_0x4ddb('0x12')],'code':_0x2082c1[_0x4ddb('0x10')]},'headers':{'Content-Type':_0x4ddb('0x1c')}};return rp(_0x3f2b28)['then'](function(_0x13f0ec){var _0x2ff841=JSON['parse'](_0x13f0ec);if(_0x2ff841[_0x4ddb('0x1f')]){_0x2082c1[_0x4ddb('0x28')]=_0x2ff841[_0x4ddb('0x1f')];logger[_0x4ddb('0x29')](util[_0x4ddb('0x20')](_0x4ddb('0x21'),_0x2082c1[_0x4ddb('0x22')],_0x2082c1['id']));}else{logger['error'](util[_0x4ddb('0x20')](_0x4ddb('0x24'),_0x2082c1[_0x4ddb('0x22')],_0x2082c1['id']),util[_0x4ddb('0x25')](_0x2ff841,{'showHidden':![],'depth':null}));}return _0x24dfe3(null,_0x57c0f1);})[_0x4ddb('0x2a')](function(_0x2e52ac){logger['error'](util['format'](_0x4ddb('0x24'),_0x2082c1[_0x4ddb('0x22')],_0x2082c1['id']),util[_0x4ddb('0x25')](parsedResult,{'showHidden':![],'depth':null}));return _0x24dfe3(_0x2e52ac);});}else{return _0x24dfe3(null,_0x57c0f1);}}}});};