Built motion from commit b5996064.|2.6.21
[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 _0x58b7=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intZohoAccount.attributes','exports','define','ZohoAccount','int_zoho_accounts','zone','serverUrl','changed','clientId','clientSecret','code','host','slice','substring','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','then','parse','refresh_token','refreshToken','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','lastIndexOf','application/x-www-form-urlencoded'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x58b7,0x1e4));var _0x758b=function(_0x44c261,_0x518609){_0x44c261=_0x44c261-0x0;var _0xd5b788=_0x58b7[_0x44c261];return _0xd5b788;};'use strict';var _=require(_0x758b('0x0'));var util=require(_0x758b('0x1'));var logger=require(_0x758b('0x2'))(_0x758b('0x3'));var moment=require(_0x758b('0x4'));var BPromise=require(_0x758b('0x5'));var rp=require(_0x758b('0x6'));var fs=require('fs');var path=require(_0x758b('0x7'));var rimraf=require(_0x758b('0x8'));var config=require(_0x758b('0x9'));var attributes=require(_0x758b('0xa'));var integrations=require('../../components/integrations/configuration');module[_0x758b('0xb')]=function(_0xf3f546,_0x12f632){return _0xf3f546[_0x758b('0xc')](_0x758b('0xd'),attributes,{'tableName':_0x758b('0xe'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x143b5e,_0x2f0aa8,_0x1b5d7d){if(_0x143b5e['changed'](_0x758b('0xf'))||_0x143b5e['changed'](_0x758b('0x10'))||_0x143b5e[_0x758b('0x11')](_0x758b('0x12'))||_0x143b5e[_0x758b('0x11')](_0x758b('0x13'))||_0x143b5e[_0x758b('0x11')](_0x758b('0x14'))||_0x143b5e[_0x758b('0x11')](_0x758b('0x15'))){var _0x414ca1,_0x17112d;_0x414ca1=_0x143b5e[_0x758b('0x10')];var _0xd234b8=_0x414ca1[_0x758b('0x16')](-0x1);if(_0xd234b8==='/'||_0xd234b8==='\x5c'||_0xd234b8===':'){_0x414ca1=_0x414ca1[_0x758b('0x17')](0x0,_0x414ca1['lastIndexOf'](_0xd234b8));}switch(_0x143b5e[_0x758b('0xf')]){case'US':_0x17112d=_0x758b('0x18');break;case'AU':_0x17112d=_0x758b('0x19');break;case'IN':_0x17112d=_0x758b('0x1a');break;case'CN':_0x17112d=_0x758b('0x1b');break;default:_0x17112d=_0x758b('0x1c');break;}var _0x300454={'method':_0x758b('0x1d'),'uri':_0x17112d+_0x758b('0x1e'),'form':{'grant_type':'authorization_code','client_id':_0x143b5e[_0x758b('0x12')],'client_secret':_0x143b5e[_0x758b('0x13')],'redirect_uri':_0x143b5e[_0x758b('0x10')],'code':_0x143b5e[_0x758b('0x14')]},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x300454)[_0x758b('0x1f')](function(_0x3612f9){var _0x503bcf=JSON[_0x758b('0x20')](_0x3612f9);if(_0x503bcf[_0x758b('0x21')]){_0x143b5e[_0x758b('0x22')]=_0x503bcf['refresh_token'];logger[_0x758b('0x23')](util[_0x758b('0x24')](_0x758b('0x25'),_0x143b5e[_0x758b('0x26')],_0x143b5e['id']));}else{logger[_0x758b('0x27')](util[_0x758b('0x24')](_0x758b('0x28'),_0x143b5e['name'],_0x143b5e['id']),util[_0x758b('0x29')](_0x503bcf,{'showHidden':![],'depth':null}));}return _0x1b5d7d(null,_0x2f0aa8);})['catch'](function(_0x1e5059){logger[_0x758b('0x27')](util['format'](_0x758b('0x28'),_0x143b5e['name'],_0x143b5e['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x1b5d7d(_0x1e5059);});}else{return _0x1b5d7d(null,_0x2f0aa8);}},'beforeUpdate':function(_0x52cd90,_0x5dfdaa,_0x926e2d){if(_0x52cd90[_0x758b('0x11')](_0x758b('0xf'))||_0x52cd90[_0x758b('0x11')](_0x758b('0x10'))||_0x52cd90[_0x758b('0x11')](_0x758b('0x12'))||_0x52cd90[_0x758b('0x11')](_0x758b('0x13'))||_0x52cd90['changed']('code')||_0x52cd90[_0x758b('0x11')](_0x758b('0x15'))){var _0x34fe60,_0x3247ac;_0x34fe60=_0x52cd90[_0x758b('0x10')];var _0x6d6d29=_0x34fe60['slice'](-0x1);if(_0x6d6d29==='/'||_0x6d6d29==='\x5c'||_0x6d6d29===':'){_0x34fe60=_0x34fe60['substring'](0x0,_0x34fe60[_0x758b('0x2a')](_0x6d6d29));}switch(_0x52cd90[_0x758b('0xf')]){case'US':_0x3247ac=_0x758b('0x18');break;case'AU':_0x3247ac=_0x758b('0x19');break;case'IN':_0x3247ac=_0x758b('0x1a');break;case'CN':_0x3247ac=_0x758b('0x1b');break;default:_0x3247ac='https://accounts.zoho.eu';break;}var _0x45faea={'method':'POST','uri':_0x3247ac+'/oauth/v2/token','form':{'grant_type':'authorization_code','client_id':_0x52cd90[_0x758b('0x12')],'client_secret':_0x52cd90[_0x758b('0x13')],'redirect_uri':_0x52cd90[_0x758b('0x10')],'code':_0x52cd90[_0x758b('0x14')]},'headers':{'Content-Type':_0x758b('0x2b')}};return rp(_0x45faea)[_0x758b('0x1f')](function(_0x28af8e){var _0x4c8e4c=JSON['parse'](_0x28af8e);if(_0x4c8e4c[_0x758b('0x21')]){_0x52cd90[_0x758b('0x22')]=_0x4c8e4c['refresh_token'];logger[_0x758b('0x23')](util[_0x758b('0x24')](_0x758b('0x25'),_0x52cd90[_0x758b('0x26')],_0x52cd90['id']));}else{logger[_0x758b('0x27')](util['format'](_0x758b('0x28'),_0x52cd90[_0x758b('0x26')],_0x52cd90['id']),util[_0x758b('0x29')](_0x4c8e4c,{'showHidden':![],'depth':null}));}return _0x926e2d(null,_0x5dfdaa);})['catch'](function(_0x170c37){logger[_0x758b('0x27')](util[_0x758b('0x24')](_0x758b('0x28'),_0x52cd90[_0x758b('0x26')],_0x52cd90['id']),util[_0x758b('0x29')](parsedResult,{'showHidden':![],'depth':null}));return _0x926e2d(_0x170c37);});}else{return _0x926e2d(null,_0x5dfdaa);}}}});};