2e548f0fd043c4d6f65d1409d6fae1b89bd65edc
[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 _0xa99b=['catch','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','host','lastIndexOf','https://accounts.zoho.in','lodash','../../config/logger','bluebird','path','rimraf','../../config/environment','./intZohoAccount.attributes','../../components/integrations/configuration','int_zoho_accounts','changed','zone','serverUrl','clientId','code','substring','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.com.cn','https://accounts.zoho.eu','/oauth/v2/token','authorization_code','clientSecret','application/x-www-form-urlencoded','then','parse','refresh_token','refreshToken','info','format','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','error','inspect'];(function(_0x298ed3,_0x4ab5e1){var _0x5aad28=function(_0x168687){while(--_0x168687){_0x298ed3['push'](_0x298ed3['shift']());}};_0x5aad28(++_0x4ab5e1);}(_0xa99b,0x1f3));var _0xba99=function(_0x49ca18,_0x5e6d05){_0x49ca18=_0x49ca18-0x0;var _0x145d54=_0xa99b[_0x49ca18];return _0x145d54;};'use strict';var _=require(_0xba99('0x0'));var util=require('util');var logger=require(_0xba99('0x1'))('api');var moment=require('moment');var BPromise=require(_0xba99('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xba99('0x3'));var rimraf=require(_0xba99('0x4'));var config=require(_0xba99('0x5'));var attributes=require(_0xba99('0x6'));var integrations=require(_0xba99('0x7'));module['exports']=function(_0x3400fe,_0x190149){return _0x3400fe['define']('ZohoAccount',attributes,{'tableName':_0xba99('0x8'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x908f04,_0x47d511,_0x356f0d){if(_0x908f04[_0xba99('0x9')](_0xba99('0xa'))||_0x908f04[_0xba99('0x9')](_0xba99('0xb'))||_0x908f04[_0xba99('0x9')](_0xba99('0xc'))||_0x908f04['changed']('clientSecret')||_0x908f04[_0xba99('0x9')](_0xba99('0xd'))||_0x908f04[_0xba99('0x9')]('host')){var _0x1ca943,_0x3bf31e;_0x1ca943=_0x908f04['serverUrl'];var _0x2327f8=_0x1ca943['slice'](-0x1);if(_0x2327f8==='/'||_0x2327f8==='\x5c'||_0x2327f8===':'){_0x1ca943=_0x1ca943[_0xba99('0xe')](0x0,_0x1ca943['lastIndexOf'](_0x2327f8));}switch(_0x908f04[_0xba99('0xa')]){case'US':_0x3bf31e=_0xba99('0xf');break;case'AU':_0x3bf31e=_0xba99('0x10');break;case'IN':_0x3bf31e='https://accounts.zoho.in';break;case'CN':_0x3bf31e=_0xba99('0x11');break;default:_0x3bf31e=_0xba99('0x12');break;}var _0x3b418e={'method':'POST','uri':_0x3bf31e+_0xba99('0x13'),'form':{'grant_type':_0xba99('0x14'),'client_id':_0x908f04[_0xba99('0xc')],'client_secret':_0x908f04[_0xba99('0x15')],'redirect_uri':_0x908f04[_0xba99('0xb')],'code':_0x908f04[_0xba99('0xd')]},'headers':{'Content-Type':_0xba99('0x16')}};return rp(_0x3b418e)[_0xba99('0x17')](function(_0x6704e2){var _0x2f0ed4=JSON[_0xba99('0x18')](_0x6704e2);if(_0x2f0ed4[_0xba99('0x19')]){_0x908f04[_0xba99('0x1a')]=_0x2f0ed4[_0xba99('0x19')];logger[_0xba99('0x1b')](util[_0xba99('0x1c')](_0xba99('0x1d'),_0x908f04[_0xba99('0x1e')],_0x908f04['id']));}else{logger[_0xba99('0x1f')](util[_0xba99('0x1c')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x908f04[_0xba99('0x1e')],_0x908f04['id']),util[_0xba99('0x20')](_0x2f0ed4,{'showHidden':![],'depth':null}));}return _0x356f0d(null,_0x47d511);})[_0xba99('0x21')](function(_0x56d12d){logger[_0xba99('0x1f')](util[_0xba99('0x1c')](_0xba99('0x22'),_0x908f04[_0xba99('0x1e')],_0x908f04['id']),util[_0xba99('0x20')](parsedResult,{'showHidden':![],'depth':null}));return _0x356f0d(_0x56d12d);});}else{return _0x356f0d(null,_0x47d511);}},'beforeUpdate':function(_0xfe1915,_0x5969dd,_0xb17824){if(_0xfe1915[_0xba99('0x9')](_0xba99('0xa'))||_0xfe1915[_0xba99('0x9')](_0xba99('0xb'))||_0xfe1915['changed'](_0xba99('0xc'))||_0xfe1915[_0xba99('0x9')]('clientSecret')||_0xfe1915[_0xba99('0x9')](_0xba99('0xd'))||_0xfe1915[_0xba99('0x9')](_0xba99('0x23'))){var _0x5c6248,_0x5c483c;_0x5c6248=_0xfe1915['serverUrl'];var _0x2e0fdb=_0x5c6248['slice'](-0x1);if(_0x2e0fdb==='/'||_0x2e0fdb==='\x5c'||_0x2e0fdb===':'){_0x5c6248=_0x5c6248[_0xba99('0xe')](0x0,_0x5c6248[_0xba99('0x24')](_0x2e0fdb));}switch(_0xfe1915[_0xba99('0xa')]){case'US':_0x5c483c=_0xba99('0xf');break;case'AU':_0x5c483c='https://accounts.zoho.com.au';break;case'IN':_0x5c483c=_0xba99('0x25');break;case'CN':_0x5c483c=_0xba99('0x11');break;default:_0x5c483c=_0xba99('0x12');break;}var _0x564b79={'method':'POST','uri':_0x5c483c+'/oauth/v2/token','form':{'grant_type':_0xba99('0x14'),'client_id':_0xfe1915[_0xba99('0xc')],'client_secret':_0xfe1915['clientSecret'],'redirect_uri':_0xfe1915[_0xba99('0xb')],'code':_0xfe1915[_0xba99('0xd')]},'headers':{'Content-Type':_0xba99('0x16')}};return rp(_0x564b79)[_0xba99('0x17')](function(_0x197fde){var _0x59bd75=JSON[_0xba99('0x18')](_0x197fde);if(_0x59bd75[_0xba99('0x19')]){_0xfe1915[_0xba99('0x1a')]=_0x59bd75[_0xba99('0x19')];logger[_0xba99('0x1b')](util[_0xba99('0x1c')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0xfe1915['name'],_0xfe1915['id']));}else{logger[_0xba99('0x1f')](util[_0xba99('0x1c')](_0xba99('0x22'),_0xfe1915[_0xba99('0x1e')],_0xfe1915['id']),util[_0xba99('0x20')](_0x59bd75,{'showHidden':![],'depth':null}));}return _0xb17824(null,_0x5969dd);})['catch'](function(_0xdab533){logger[_0xba99('0x1f')](util['format'](_0xba99('0x22'),_0xfe1915[_0xba99('0x1e')],_0xfe1915['id']),util[_0xba99('0x20')](parsedResult,{'showHidden':![],'depth':null}));return _0xb17824(_0xdab533);});}else{return _0xb17824(null,_0x5969dd);}}}});};