9eacf9fe5fcf4642ebdc89672aa31555897c3f11
[motion2.git] / server / api / intFreshsalesAccount / intFreshsalesAccount.controller.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 _0xa9e0=['merge','body','contact','interaction','index','map','rawAttributes','fieldName','model','query','keys','filters','attributes','fields','length','hasOwnProperty','nolimit','limit','sort','where','pick','filter','type','VIRTUAL','options','FreshsalesAccount','includeAll','include','findAll','rows','show','intersection','find','create','params','getConfigurations','FreshsalesConfiguration','order','addConfiguration','findOne','AccountId','Subjects','Descriptions','getDescriptions','channel','FreshsalesField','getFields','username','remoteUri','apiKey','slice','substring','lastIndexOf','GET','/api/selector/owners','Token\x20token=','users','email','Requested\x20Resource\x20not\x20Found','test','statusCode','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/license/util','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','then','info','request\x20sent','debug','error','code','FreshsalesAccount,\x20%s,\x20%s','message','catch','sendStatus','status','end','json','undefined','count','offset','set','Content-Range','apply','reject','save','destroy','stack','name','send','render'];(function(_0x31d22e,_0x2c1f74){var _0x3e239c=function(_0x2887cb){while(--_0x2887cb){_0x31d22e['push'](_0x31d22e['shift']());}};_0x3e239c(++_0x2c1f74);}(_0xa9e0,0x123));var _0x0a9e=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0xa9e0[_0x19e35c];return _0x3e1fe8;};'use strict';var emlformat=require(_0x0a9e('0x0'));var rimraf=require(_0x0a9e('0x1'));var zipdir=require(_0x0a9e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0a9e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x0a9e('0x4'));var util=require(_0x0a9e('0x5'));var path=require(_0x0a9e('0x6'));var sox=require(_0x0a9e('0x7'));var csv=require(_0x0a9e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0a9e('0x9'));var _=require(_0x0a9e('0xa'));var squel=require(_0x0a9e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0a9e('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0a9e('0xd'));var Redis=require(_0x0a9e('0xe'));var authService=require(_0x0a9e('0xf'));var qs=require(_0x0a9e('0x10'));var as=require(_0x0a9e('0x11'));var hardwareService=require(_0x0a9e('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x0a9e('0x13'));var db=require(_0x0a9e('0x14'))['db'];var integrations=require(_0x0a9e('0x15'));var jayson=require(_0x0a9e('0x16'));var client=jayson[_0x0a9e('0x17')][_0x0a9e('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x5db4b0,_0x4283ce,_0x239b12,_0x2b4227){return new BPromise(function(_0x281129,_0x44dcfd){var _0x4d5611=_0x2b4227||client;return _0x4d5611['request'](_0x5db4b0,_0x239b12)[_0x0a9e('0x19')](function(_0x5d0880){logger[_0x0a9e('0x1a')]('FreshsalesAccount,\x20%s,\x20%s',_0x4283ce,_0x0a9e('0x1b'));logger[_0x0a9e('0x1c')]('FreshsalesAccount,\x20%s,\x20%s,\x20%s',_0x4283ce,_0x0a9e('0x1b'),JSON['stringify'](_0x5d0880));if(_0x5d0880[_0x0a9e('0x1d')]){if(_0x5d0880[_0x0a9e('0x1d')][_0x0a9e('0x1e')]===0x1f4){logger[_0x0a9e('0x1d')](_0x0a9e('0x1f'),_0x4283ce,_0x5d0880[_0x0a9e('0x1d')][_0x0a9e('0x20')]);return _0x44dcfd(_0x5d0880[_0x0a9e('0x1d')][_0x0a9e('0x20')]);}logger[_0x0a9e('0x1d')](_0x0a9e('0x1f'),_0x4283ce,_0x5d0880[_0x0a9e('0x1d')]['message']);return _0x281129(_0x5d0880[_0x0a9e('0x1d')][_0x0a9e('0x20')]);}else{logger['info'](_0x0a9e('0x1f'),_0x4283ce,'request\x20sent');_0x281129(_0x5d0880['result'][_0x0a9e('0x20')]);}})[_0x0a9e('0x21')](function(_0x38e7c4){logger[_0x0a9e('0x1d')]('FreshsalesAccount,\x20%s,\x20%s',_0x4283ce,_0x38e7c4);_0x44dcfd(_0x38e7c4);});});}function respondWithStatusCode(_0xfb6e48,_0x2fb0e4){_0x2fb0e4=_0x2fb0e4||0xcc;return function(_0x3b45bc){if(_0x3b45bc){return _0xfb6e48[_0x0a9e('0x22')](_0x2fb0e4);}return _0xfb6e48[_0x0a9e('0x23')](_0x2fb0e4)[_0x0a9e('0x24')]();};}function respondWithResult(_0x16b1ca,_0x5ea472){_0x5ea472=_0x5ea472||0xc8;return function(_0x59181e){if(_0x59181e){return _0x16b1ca[_0x0a9e('0x23')](_0x5ea472)[_0x0a9e('0x25')](_0x59181e);}};}function respondWithFilteredResult(_0x40c424,_0x33161b){return function(_0x526cf3){if(_0x526cf3){var _0x384319=typeof _0x33161b['offset']===_0x0a9e('0x26')&&typeof _0x33161b['limit']===_0x0a9e('0x26');var _0x34dc65=_0x526cf3[_0x0a9e('0x27')];var _0x14433c=_0x384319?0x0:_0x33161b[_0x0a9e('0x28')];var _0x1538a4=_0x384319?_0x526cf3[_0x0a9e('0x27')]:_0x33161b[_0x0a9e('0x28')]+_0x33161b['limit'];var _0x3652a7;if(_0x1538a4>=_0x34dc65){_0x1538a4=_0x34dc65;_0x3652a7=0xc8;}else{_0x3652a7=0xce;}_0x40c424[_0x0a9e('0x23')](_0x3652a7);return _0x40c424[_0x0a9e('0x29')](_0x0a9e('0x2a'),_0x14433c+'-'+_0x1538a4+'/'+_0x34dc65)['json'](_0x526cf3);}return null;};}function patchUpdates(_0x15b200){return function(_0x40e7a3){try{jsonpatch[_0x0a9e('0x2b')](_0x40e7a3,_0x15b200,!![]);}catch(_0x824a4f){return BPromise[_0x0a9e('0x2c')](_0x824a4f);}return _0x40e7a3[_0x0a9e('0x2d')]();};}function saveUpdates(_0x296f41,_0x2e8759){return function(_0x1dbde2){if(_0x1dbde2){return _0x1dbde2['update'](_0x296f41)[_0x0a9e('0x19')](function(_0x5d1e0e){return _0x5d1e0e;});}return null;};}function removeEntity(_0x2407f9,_0x3ae878){return function(_0x1122db){if(_0x1122db){return _0x1122db[_0x0a9e('0x2e')]()[_0x0a9e('0x19')](function(){_0x2407f9['status'](0xcc)[_0x0a9e('0x24')]();});}};}function handleEntityNotFound(_0x46f0a5,_0x40cb85){return function(_0x2da5c0){if(!_0x2da5c0){_0x46f0a5[_0x0a9e('0x22')](0x194);}return _0x2da5c0;};}function handleError(_0x409319,_0x332d35){_0x332d35=_0x332d35||0x1f4;return function(_0x39e565){logger['error'](_0x39e565[_0x0a9e('0x2f')]);if(_0x39e565['name']){delete _0x39e565[_0x0a9e('0x30')];}_0x409319[_0x0a9e('0x23')](_0x332d35)[_0x0a9e('0x31')](_0x39e565);};}function getMustacheRender(_0x3f3d41,_0x567193){return Mustache[_0x0a9e('0x32')](_0x3f3d41,_[_0x0a9e('0x33')](_0x567193[_0x0a9e('0x34')],{'contact':_0x567193[_0x0a9e('0x35')],'message':_0x567193['message'],'agent':_0x567193['agent'],'interaction':_0x567193[_0x0a9e('0x36')],'account':_0x567193['account']}))||'';}exports[_0x0a9e('0x37')]=function(_0x3d9717,_0x381c37){var _0x1ef87a={},_0x4f41ae={},_0x31916f={'count':0x0,'rows':[]};var _0x3bfce8=_[_0x0a9e('0x38')](db['FreshsalesAccount'][_0x0a9e('0x39')],function(_0x1a180b){return{'name':_0x1a180b[_0x0a9e('0x3a')],'type':_0x1a180b['type']['key']};});_0x4f41ae[_0x0a9e('0x3b')]=_[_0x0a9e('0x38')](_0x3bfce8,'name');_0x4f41ae[_0x0a9e('0x3c')]=_[_0x0a9e('0x3d')](_0x3d9717[_0x0a9e('0x3c')]);_0x4f41ae[_0x0a9e('0x3e')]=_['intersection'](_0x4f41ae['model'],_0x4f41ae[_0x0a9e('0x3c')]);_0x1ef87a[_0x0a9e('0x3f')]=_['intersection'](_0x4f41ae[_0x0a9e('0x3b')],qs[_0x0a9e('0x40')](_0x3d9717[_0x0a9e('0x3c')]['fields']));_0x1ef87a[_0x0a9e('0x3f')]=_0x1ef87a[_0x0a9e('0x3f')][_0x0a9e('0x41')]?_0x1ef87a[_0x0a9e('0x3f')]:_0x4f41ae[_0x0a9e('0x3b')];if(!_0x3d9717[_0x0a9e('0x3c')][_0x0a9e('0x42')](_0x0a9e('0x43'))){_0x1ef87a[_0x0a9e('0x44')]=qs[_0x0a9e('0x44')](_0x3d9717[_0x0a9e('0x3c')][_0x0a9e('0x44')]);_0x1ef87a[_0x0a9e('0x28')]=qs[_0x0a9e('0x28')](_0x3d9717[_0x0a9e('0x3c')]['offset']);}_0x1ef87a['order']=qs[_0x0a9e('0x45')](_0x3d9717[_0x0a9e('0x3c')][_0x0a9e('0x45')]);_0x1ef87a[_0x0a9e('0x46')]=qs[_0x0a9e('0x3e')](_[_0x0a9e('0x47')](_0x3d9717[_0x0a9e('0x3c')],_0x4f41ae[_0x0a9e('0x3e')]),_0x3bfce8);if(_0x3d9717[_0x0a9e('0x3c')][_0x0a9e('0x48')]){_0x1ef87a[_0x0a9e('0x46')]=_[_0x0a9e('0x33')](_0x1ef87a['where'],{'$or':_[_0x0a9e('0x38')](_0x3bfce8,function(_0x138b8b){if(_0x138b8b[_0x0a9e('0x49')]!==_0x0a9e('0x4a')){var _0x2e8caf={};_0x2e8caf[_0x138b8b[_0x0a9e('0x30')]]={'$like':'%'+_0x3d9717[_0x0a9e('0x3c')][_0x0a9e('0x48')]+'%'};return _0x2e8caf;}})});}_0x1ef87a=_['merge']({},_0x1ef87a,_0x3d9717[_0x0a9e('0x4b')]);var _0x48fd45={'where':_0x1ef87a[_0x0a9e('0x46')]};return db[_0x0a9e('0x4c')][_0x0a9e('0x27')](_0x48fd45)['then'](function(_0x14bec2){_0x31916f[_0x0a9e('0x27')]=_0x14bec2;if(_0x3d9717[_0x0a9e('0x3c')][_0x0a9e('0x4d')]){_0x1ef87a[_0x0a9e('0x4e')]=[{'all':!![]}];}return db[_0x0a9e('0x4c')][_0x0a9e('0x4f')](_0x1ef87a);})['then'](function(_0x13f44d){_0x31916f[_0x0a9e('0x50')]=_0x13f44d;return _0x31916f;})[_0x0a9e('0x19')](respondWithFilteredResult(_0x381c37,_0x1ef87a))[_0x0a9e('0x21')](handleError(_0x381c37,null));};exports[_0x0a9e('0x51')]=function(_0x992c77,_0x6054ee){var _0x19383e={'raw':![],'where':{'id':_0x992c77['params']['id']}},_0x34febd={};_0x34febd[_0x0a9e('0x3b')]=_[_0x0a9e('0x3d')](db['FreshsalesAccount']['rawAttributes']);_0x34febd['query']=_[_0x0a9e('0x3d')](_0x992c77[_0x0a9e('0x3c')]);_0x34febd[_0x0a9e('0x3e')]=_[_0x0a9e('0x52')](_0x34febd[_0x0a9e('0x3b')],_0x34febd[_0x0a9e('0x3c')]);_0x19383e[_0x0a9e('0x3f')]=_[_0x0a9e('0x52')](_0x34febd['model'],qs['fields'](_0x992c77['query'][_0x0a9e('0x40')]));_0x19383e[_0x0a9e('0x3f')]=_0x19383e[_0x0a9e('0x3f')]['length']?_0x19383e[_0x0a9e('0x3f')]:_0x34febd[_0x0a9e('0x3b')];if(_0x992c77['query']['includeAll']){_0x19383e[_0x0a9e('0x4e')]=[{'all':!![]}];}_0x19383e=_['merge']({},_0x19383e,_0x992c77[_0x0a9e('0x4b')]);return db['FreshsalesAccount'][_0x0a9e('0x53')](_0x19383e)[_0x0a9e('0x19')](handleEntityNotFound(_0x6054ee,null))[_0x0a9e('0x19')](respondWithResult(_0x6054ee,null))['catch'](handleError(_0x6054ee,null));};exports[_0x0a9e('0x54')]=function(_0x1bf38a,_0x508b47){return db['FreshsalesAccount'][_0x0a9e('0x54')](_0x1bf38a[_0x0a9e('0x34')],{})['then'](respondWithResult(_0x508b47,0xc9))[_0x0a9e('0x21')](handleError(_0x508b47,null));};exports['update']=function(_0x211ef9,_0x523cd2){if(_0x211ef9[_0x0a9e('0x34')]['id']){delete _0x211ef9['body']['id'];}return db['FreshsalesAccount']['find']({'where':{'id':_0x211ef9[_0x0a9e('0x55')]['id']}})['then'](handleEntityNotFound(_0x523cd2,null))[_0x0a9e('0x19')](saveUpdates(_0x211ef9[_0x0a9e('0x34')],null))[_0x0a9e('0x19')](respondWithResult(_0x523cd2,null))[_0x0a9e('0x21')](handleError(_0x523cd2,null));};exports[_0x0a9e('0x2e')]=function(_0x272738,_0xd10662){return db[_0x0a9e('0x4c')]['find']({'where':{'id':_0x272738[_0x0a9e('0x55')]['id']}})[_0x0a9e('0x19')](handleEntityNotFound(_0xd10662,null))[_0x0a9e('0x19')](removeEntity(_0xd10662,null))[_0x0a9e('0x21')](handleError(_0xd10662,null));};exports[_0x0a9e('0x56')]=function(_0x156662,_0x5d86e9,_0x956fbe){var _0x26bc80={};var _0x5239ef={};var _0x3649cc;var _0x5cc8fb;return db[_0x0a9e('0x4c')]['findOne']({'where':{'id':_0x156662['params']['id']}})['then'](handleEntityNotFound(_0x5d86e9,null))[_0x0a9e('0x19')](function(_0x49d231){if(_0x49d231){_0x3649cc=_0x49d231;_0x5239ef[_0x0a9e('0x3b')]=_[_0x0a9e('0x3d')](db[_0x0a9e('0x57')][_0x0a9e('0x39')]);_0x5239ef[_0x0a9e('0x3c')]=_[_0x0a9e('0x3d')](_0x156662['query']);_0x5239ef[_0x0a9e('0x3e')]=_['intersection'](_0x5239ef[_0x0a9e('0x3b')],_0x5239ef[_0x0a9e('0x3c')]);_0x26bc80[_0x0a9e('0x3f')]=_['intersection'](_0x5239ef[_0x0a9e('0x3b')],qs[_0x0a9e('0x40')](_0x156662[_0x0a9e('0x3c')][_0x0a9e('0x40')]));_0x26bc80['attributes']=_0x26bc80[_0x0a9e('0x3f')][_0x0a9e('0x41')]?_0x26bc80['attributes']:_0x5239ef[_0x0a9e('0x3b')];_0x26bc80[_0x0a9e('0x58')]=qs[_0x0a9e('0x45')](_0x156662[_0x0a9e('0x3c')][_0x0a9e('0x45')]);_0x26bc80['where']=qs[_0x0a9e('0x3e')](_[_0x0a9e('0x47')](_0x156662[_0x0a9e('0x3c')],_0x5239ef['filters']));if(_0x156662[_0x0a9e('0x3c')]['filter']){_0x26bc80['where']=_[_0x0a9e('0x33')](_0x26bc80[_0x0a9e('0x46')],{'$or':_[_0x0a9e('0x38')](_0x26bc80[_0x0a9e('0x3f')],function(_0x186f39){var _0xc8c264={};_0xc8c264[_0x186f39]={'$like':'%'+_0x156662[_0x0a9e('0x3c')][_0x0a9e('0x48')]+'%'};return _0xc8c264;})});}_0x26bc80=_[_0x0a9e('0x33')]({},_0x26bc80,_0x156662[_0x0a9e('0x4b')]);return _0x3649cc[_0x0a9e('0x56')](_0x26bc80);}})[_0x0a9e('0x19')](function(_0x2bbb86){if(_0x2bbb86){_0x5cc8fb=_0x2bbb86[_0x0a9e('0x41')];if(!_0x156662[_0x0a9e('0x3c')][_0x0a9e('0x42')](_0x0a9e('0x43'))){_0x26bc80[_0x0a9e('0x44')]=qs['limit'](_0x156662[_0x0a9e('0x3c')][_0x0a9e('0x44')]);_0x26bc80[_0x0a9e('0x28')]=qs['offset'](_0x156662[_0x0a9e('0x3c')][_0x0a9e('0x28')]);}return _0x3649cc['getConfigurations'](_0x26bc80);}})[_0x0a9e('0x19')](function(_0x56e31e){if(_0x56e31e){return _0x56e31e?{'count':_0x5cc8fb,'rows':_0x56e31e}:null;}})[_0x0a9e('0x19')](respondWithResult(_0x5d86e9,null))[_0x0a9e('0x21')](handleError(_0x5d86e9,null));};exports[_0x0a9e('0x59')]=function(_0x4a43a8,_0x50cdce,_0x4a2438){if(_0x4a43a8[_0x0a9e('0x34')]['id']){delete _0x4a43a8[_0x0a9e('0x34')]['id'];}return db[_0x0a9e('0x4c')][_0x0a9e('0x5a')]({'where':{'id':_0x4a43a8[_0x0a9e('0x55')]['id']}})[_0x0a9e('0x19')](handleEntityNotFound(_0x50cdce,null))[_0x0a9e('0x19')](function(_0x1a0677){if(_0x1a0677){_0x4a43a8['body'][_0x0a9e('0x5b')]=_0x1a0677['id'];_0x4a43a8[_0x0a9e('0x34')][_0x0a9e('0x5c')]=integrations['getSubjects'](_0x4a43a8[_0x0a9e('0x34')]['channel'],_0x4a43a8[_0x0a9e('0x34')][_0x0a9e('0x49')]);_0x4a43a8['body'][_0x0a9e('0x5d')]=integrations[_0x0a9e('0x5e')](_0x4a43a8[_0x0a9e('0x34')][_0x0a9e('0x5f')],_0x4a43a8['body'][_0x0a9e('0x49')]);return db[_0x0a9e('0x57')][_0x0a9e('0x54')](_0x4a43a8[_0x0a9e('0x34')],{'include':[{'model':db['FreshsalesField'],'as':_0x0a9e('0x5c')},{'model':db[_0x0a9e('0x60')],'as':_0x0a9e('0x5d')}]});}return null;})[_0x0a9e('0x19')](respondWithResult(_0x50cdce,null))['catch'](handleError(_0x50cdce,null));};exports[_0x0a9e('0x61')]=function(_0x3511c9,_0x30a4c7,_0xf410e5){var _0x332367='';var _0xdb98ca='';return db[_0x0a9e('0x4c')][_0x0a9e('0x5a')]({'where':{'id':_0x3511c9[_0x0a9e('0x55')]['id']},'attributes':['id',_0x0a9e('0x62'),_0x0a9e('0x63'),_0x0a9e('0x64')]})[_0x0a9e('0x19')](handleEntityNotFound(_0x30a4c7,null))[_0x0a9e('0x19')](function(_0x5b35db){if(_0x5b35db){_0xdb98ca=_0x5b35db[_0x0a9e('0x62')];_0x332367=_0x5b35db[_0x0a9e('0x63')];var _0xc599b3=_0x5b35db['remoteUri'][_0x0a9e('0x65')](-0x1);if(_0xc599b3==='/'){_0x332367=_0x332367[_0x0a9e('0x66')](0x0,_0x332367[_0x0a9e('0x67')](_0xc599b3));}return rp({'method':_0x0a9e('0x68'),'uri':util['format']('%s%s',_0x332367,_0x0a9e('0x69')),'headers':{'Authorization':_0x0a9e('0x6a')+_0x5b35db['apiKey']},'json':!![]});}})[_0x0a9e('0x19')](function(_0x53a6a1){if(_0x53a6a1){var _0x260f4b=_0x53a6a1[_0x0a9e('0x6b')];var _0x5637a1=![];var _0x28a942=null;for(_0x28a942=0x0;_0x28a942<_0x260f4b[_0x0a9e('0x41')];_0x28a942++){if(_0x260f4b[_0x28a942][_0x0a9e('0x6c')]===_0xdb98ca){_0x5637a1=!![];}}if(_0x5637a1){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x0a9e('0x6d')});}}})[_0x0a9e('0x19')](respondWithResult(_0x30a4c7,null))[_0x0a9e('0x21')](function(_0x444f1f){var _0x482ca2=_0x3511c9[_0x0a9e('0x3c')][_0x0a9e('0x6e')]?0x1f4:_0x444f1f[_0x0a9e('0x6f')]||0x1f4;logger[_0x0a9e('0x1d')]('getFields,\x20%s,\x20%s,\x20%s',_0x0a9e('0x61'),_0x482ca2,JSON[_0x0a9e('0x70')](_0x444f1f));delete _0x444f1f['name'];if(_0x482ca2===0x191){_0x482ca2=0x190;}_0x30a4c7[_0x0a9e('0x23')](_0x482ca2)['send'](_0x3511c9[_0x0a9e('0x3c')][_0x0a9e('0x6e')]?{'message':_0x0a9e('0x71'),'statusCode':_0x444f1f[_0x0a9e('0x6f')]}:_0x444f1f);});};