Built motion from commit 753c950e.|2.5.42
[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 _0xa485=['GET','%s%s','Token\x20token=','email','Requested\x20Resource\x20not\x20Found','test','stringify','Wrong\x20credentials','statusCode','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','update','then','destroy','error','stack','name','send','index','FreshsalesAccount','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','merge','includeAll','include','rows','params','find','create','body','catch','getConfigurations','findOne','FreshsalesConfiguration','order','options','addConfiguration','AccountId','Subjects','channel','getDescriptions','type','FreshsalesField','Descriptions','getFields','username','remoteUri','apiKey','slice','substring'];(function(_0x38bc6e,_0x44d0b0){var _0x1b0ff3=function(_0x3acad1){while(--_0x3acad1){_0x38bc6e['push'](_0x38bc6e['shift']());}};_0x1b0ff3(++_0x44d0b0);}(_0xa485,0x1f3));var _0x5a48=function(_0xda7efc,_0x33708c){_0xda7efc=_0xda7efc-0x0;var _0x5cdf85=_0xa485[_0xda7efc];return _0x5cdf85;};'use strict';var emlformat=require(_0x5a48('0x0'));var rimraf=require(_0x5a48('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5a48('0x2'));var rp=require(_0x5a48('0x3'));var moment=require(_0x5a48('0x4'));var BPromise=require(_0x5a48('0x5'));var Mustache=require(_0x5a48('0x6'));var util=require(_0x5a48('0x7'));var path=require(_0x5a48('0x8'));var sox=require(_0x5a48('0x9'));var csv=require(_0x5a48('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5a48('0xb'));var _=require(_0x5a48('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x5a48('0xd'));var deskjs=require(_0x5a48('0xe'));var toCsv=require(_0x5a48('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x5a48('0xf'));var authService=require(_0x5a48('0x10'));var qs=require(_0x5a48('0x11'));var as=require(_0x5a48('0x12'));var hardwareService=require(_0x5a48('0x13'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x5a48('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x5a48('0x15'))['db'];var integrations=require(_0x5a48('0x16'));function respondWithStatusCode(_0x257692,_0x40ba43){_0x40ba43=_0x40ba43||0xcc;return function(_0x1f062f){if(_0x1f062f){return _0x257692[_0x5a48('0x17')](_0x40ba43);}return _0x257692[_0x5a48('0x18')](_0x40ba43)[_0x5a48('0x19')]();};}function respondWithResult(_0x3b8ea1,_0x1cfc99){_0x1cfc99=_0x1cfc99||0xc8;return function(_0x3ae8e9){if(_0x3ae8e9){return _0x3b8ea1[_0x5a48('0x18')](_0x1cfc99)['json'](_0x3ae8e9);}};}function respondWithFilteredResult(_0x11248f,_0x50058b){return function(_0x27403f){if(_0x27403f){var _0x3c6d72=typeof _0x50058b[_0x5a48('0x1a')]===_0x5a48('0x1b')&&typeof _0x50058b[_0x5a48('0x1c')]===_0x5a48('0x1b');var _0x2c73d3=_0x27403f[_0x5a48('0x1d')];var _0x151427=_0x3c6d72?0x0:_0x50058b[_0x5a48('0x1a')];var _0x414d12=_0x3c6d72?_0x27403f[_0x5a48('0x1d')]:_0x50058b['offset']+_0x50058b[_0x5a48('0x1c')];var _0x485954;if(_0x414d12>=_0x2c73d3){_0x414d12=_0x2c73d3;_0x485954=0xc8;}else{_0x485954=0xce;}_0x11248f['status'](_0x485954);return _0x11248f[_0x5a48('0x1e')](_0x5a48('0x1f'),_0x151427+'-'+_0x414d12+'/'+_0x2c73d3)[_0x5a48('0x20')](_0x27403f);}return null;};}function patchUpdates(_0x1c3e9d){return function(_0xb87fa5){try{jsonpatch[_0x5a48('0x21')](_0xb87fa5,_0x1c3e9d,!![]);}catch(_0xcabc60){return BPromise[_0x5a48('0x22')](_0xcabc60);}return _0xb87fa5['save']();};}function saveUpdates(_0xd9a652,_0x463047){return function(_0x1d6481){if(_0x1d6481){return _0x1d6481[_0x5a48('0x23')](_0xd9a652)[_0x5a48('0x24')](function(_0x1379fe){return _0x1379fe;});}return null;};}function removeEntity(_0x3d0f54,_0x31f33a){return function(_0x279140){if(_0x279140){return _0x279140[_0x5a48('0x25')]()['then'](function(){_0x3d0f54[_0x5a48('0x18')](0xcc)[_0x5a48('0x19')]();});}};}function handleEntityNotFound(_0x57e8c6,_0x2e3b1f){return function(_0x50b68a){if(!_0x50b68a){_0x57e8c6[_0x5a48('0x17')](0x194);}return _0x50b68a;};}function handleError(_0x2ca04d,_0x4165dc){_0x4165dc=_0x4165dc||0x1f4;return function(_0x3c5170){logger[_0x5a48('0x26')](_0x3c5170[_0x5a48('0x27')]);if(_0x3c5170['name']){delete _0x3c5170[_0x5a48('0x28')];}_0x2ca04d['status'](_0x4165dc)[_0x5a48('0x29')](_0x3c5170);};}exports[_0x5a48('0x2a')]=function(_0x5a894a,_0x3a324c){var _0x247569={},_0x195401={},_0xbf4f1c={'count':0x0,'rows':[]};var _0x58583c=_['map'](db[_0x5a48('0x2b')][_0x5a48('0x2c')],function(_0x281ba3){return{'name':_0x281ba3[_0x5a48('0x2d')],'type':_0x281ba3['type'][_0x5a48('0x2e')]};});_0x195401[_0x5a48('0x2f')]=_[_0x5a48('0x30')](_0x58583c,_0x5a48('0x28'));_0x195401[_0x5a48('0x31')]=_[_0x5a48('0x32')](_0x5a894a[_0x5a48('0x31')]);_0x195401[_0x5a48('0x33')]=_[_0x5a48('0x34')](_0x195401['model'],_0x195401[_0x5a48('0x31')]);_0x247569[_0x5a48('0x35')]=_[_0x5a48('0x34')](_0x195401[_0x5a48('0x2f')],qs[_0x5a48('0x36')](_0x5a894a[_0x5a48('0x31')][_0x5a48('0x36')]));_0x247569[_0x5a48('0x35')]=_0x247569[_0x5a48('0x35')][_0x5a48('0x37')]?_0x247569['attributes']:_0x195401['model'];if(!_0x5a894a[_0x5a48('0x31')][_0x5a48('0x38')]('nolimit')){_0x247569[_0x5a48('0x1c')]=qs[_0x5a48('0x1c')](_0x5a894a[_0x5a48('0x31')][_0x5a48('0x1c')]);_0x247569['offset']=qs['offset'](_0x5a894a[_0x5a48('0x31')][_0x5a48('0x1a')]);}_0x247569['order']=qs[_0x5a48('0x39')](_0x5a894a[_0x5a48('0x31')]['sort']);_0x247569[_0x5a48('0x3a')]=qs[_0x5a48('0x33')](_[_0x5a48('0x3b')](_0x5a894a[_0x5a48('0x31')],_0x195401['filters']),_0x58583c);if(_0x5a894a['query'][_0x5a48('0x3c')]){_0x247569['where']=_[_0x5a48('0x3d')](_0x247569['where'],{'$or':_[_0x5a48('0x30')](_0x58583c,function(_0x52d086){if(_0x52d086['type']!=='VIRTUAL'){var _0x14494a={};_0x14494a[_0x52d086[_0x5a48('0x28')]]={'$like':'%'+_0x5a894a[_0x5a48('0x31')][_0x5a48('0x3c')]+'%'};return _0x14494a;}})});}_0x247569=_[_0x5a48('0x3d')]({},_0x247569,_0x5a894a['options']);var _0x2326a9={'where':_0x247569[_0x5a48('0x3a')]};return db[_0x5a48('0x2b')][_0x5a48('0x1d')](_0x2326a9)['then'](function(_0x219aea){_0xbf4f1c[_0x5a48('0x1d')]=_0x219aea;if(_0x5a894a[_0x5a48('0x31')][_0x5a48('0x3e')]){_0x247569[_0x5a48('0x3f')]=[{'all':!![]}];}return db[_0x5a48('0x2b')]['findAll'](_0x247569);})[_0x5a48('0x24')](function(_0x25b6b9){_0xbf4f1c[_0x5a48('0x40')]=_0x25b6b9;return _0xbf4f1c;})['then'](respondWithFilteredResult(_0x3a324c,_0x247569))['catch'](handleError(_0x3a324c,null));};exports['show']=function(_0x477e97,_0x2d70ef){var _0x433c7d={'raw':![],'where':{'id':_0x477e97[_0x5a48('0x41')]['id']}},_0x57a56a={};_0x57a56a[_0x5a48('0x2f')]=_[_0x5a48('0x32')](db[_0x5a48('0x2b')][_0x5a48('0x2c')]);_0x57a56a[_0x5a48('0x31')]=_[_0x5a48('0x32')](_0x477e97[_0x5a48('0x31')]);_0x57a56a[_0x5a48('0x33')]=_[_0x5a48('0x34')](_0x57a56a[_0x5a48('0x2f')],_0x57a56a[_0x5a48('0x31')]);_0x433c7d[_0x5a48('0x35')]=_[_0x5a48('0x34')](_0x57a56a[_0x5a48('0x2f')],qs['fields'](_0x477e97[_0x5a48('0x31')][_0x5a48('0x36')]));_0x433c7d[_0x5a48('0x35')]=_0x433c7d['attributes'][_0x5a48('0x37')]?_0x433c7d[_0x5a48('0x35')]:_0x57a56a[_0x5a48('0x2f')];if(_0x477e97[_0x5a48('0x31')][_0x5a48('0x3e')]){_0x433c7d[_0x5a48('0x3f')]=[{'all':!![]}];}_0x433c7d=_[_0x5a48('0x3d')]({},_0x433c7d,_0x477e97['options']);return db[_0x5a48('0x2b')][_0x5a48('0x42')](_0x433c7d)[_0x5a48('0x24')](handleEntityNotFound(_0x2d70ef,null))['then'](respondWithResult(_0x2d70ef,null))['catch'](handleError(_0x2d70ef,null));};exports['create']=function(_0x2b6f1a,_0x161742){return db[_0x5a48('0x2b')][_0x5a48('0x43')](_0x2b6f1a[_0x5a48('0x44')],{})[_0x5a48('0x24')](respondWithResult(_0x161742,0xc9))[_0x5a48('0x45')](handleError(_0x161742,null));};exports[_0x5a48('0x23')]=function(_0x371573,_0xcc3dd1){if(_0x371573[_0x5a48('0x44')]['id']){delete _0x371573[_0x5a48('0x44')]['id'];}return db[_0x5a48('0x2b')][_0x5a48('0x42')]({'where':{'id':_0x371573[_0x5a48('0x41')]['id']}})[_0x5a48('0x24')](handleEntityNotFound(_0xcc3dd1,null))[_0x5a48('0x24')](saveUpdates(_0x371573[_0x5a48('0x44')],null))['then'](respondWithResult(_0xcc3dd1,null))[_0x5a48('0x45')](handleError(_0xcc3dd1,null));};exports[_0x5a48('0x25')]=function(_0x15ebb7,_0x2ac5fa){return db['FreshsalesAccount'][_0x5a48('0x42')]({'where':{'id':_0x15ebb7[_0x5a48('0x41')]['id']}})[_0x5a48('0x24')](handleEntityNotFound(_0x2ac5fa,null))[_0x5a48('0x24')](removeEntity(_0x2ac5fa,null))[_0x5a48('0x45')](handleError(_0x2ac5fa,null));};exports[_0x5a48('0x46')]=function(_0x27377b,_0x5cb8cb,_0x33a3b0){var _0x377dff={};var _0x8ea1b1={};var _0x415790;var _0x19e9e1;return db[_0x5a48('0x2b')][_0x5a48('0x47')]({'where':{'id':_0x27377b[_0x5a48('0x41')]['id']}})[_0x5a48('0x24')](handleEntityNotFound(_0x5cb8cb,null))[_0x5a48('0x24')](function(_0x4e5082){if(_0x4e5082){_0x415790=_0x4e5082;_0x8ea1b1[_0x5a48('0x2f')]=_['keys'](db[_0x5a48('0x48')][_0x5a48('0x2c')]);_0x8ea1b1[_0x5a48('0x31')]=_[_0x5a48('0x32')](_0x27377b[_0x5a48('0x31')]);_0x8ea1b1['filters']=_[_0x5a48('0x34')](_0x8ea1b1[_0x5a48('0x2f')],_0x8ea1b1[_0x5a48('0x31')]);_0x377dff[_0x5a48('0x35')]=_[_0x5a48('0x34')](_0x8ea1b1[_0x5a48('0x2f')],qs[_0x5a48('0x36')](_0x27377b[_0x5a48('0x31')][_0x5a48('0x36')]));_0x377dff[_0x5a48('0x35')]=_0x377dff[_0x5a48('0x35')][_0x5a48('0x37')]?_0x377dff[_0x5a48('0x35')]:_0x8ea1b1[_0x5a48('0x2f')];_0x377dff[_0x5a48('0x49')]=qs['sort'](_0x27377b[_0x5a48('0x31')]['sort']);_0x377dff[_0x5a48('0x3a')]=qs[_0x5a48('0x33')](_[_0x5a48('0x3b')](_0x27377b[_0x5a48('0x31')],_0x8ea1b1[_0x5a48('0x33')]));if(_0x27377b[_0x5a48('0x31')][_0x5a48('0x3c')]){_0x377dff[_0x5a48('0x3a')]=_[_0x5a48('0x3d')](_0x377dff['where'],{'$or':_[_0x5a48('0x30')](_0x377dff[_0x5a48('0x35')],function(_0x4f8b5e){var _0x4b6364={};_0x4b6364[_0x4f8b5e]={'$like':'%'+_0x27377b[_0x5a48('0x31')][_0x5a48('0x3c')]+'%'};return _0x4b6364;})});}_0x377dff=_[_0x5a48('0x3d')]({},_0x377dff,_0x27377b[_0x5a48('0x4a')]);return _0x415790['getConfigurations'](_0x377dff);}})['then'](function(_0x47544b){if(_0x47544b){_0x19e9e1=_0x47544b[_0x5a48('0x37')];if(!_0x27377b['query'][_0x5a48('0x38')]('nolimit')){_0x377dff[_0x5a48('0x1c')]=qs['limit'](_0x27377b[_0x5a48('0x31')][_0x5a48('0x1c')]);_0x377dff[_0x5a48('0x1a')]=qs[_0x5a48('0x1a')](_0x27377b[_0x5a48('0x31')][_0x5a48('0x1a')]);}return _0x415790['getConfigurations'](_0x377dff);}})[_0x5a48('0x24')](function(_0x5244a1){if(_0x5244a1){return _0x5244a1?{'count':_0x19e9e1,'rows':_0x5244a1}:null;}})['then'](respondWithResult(_0x5cb8cb,null))[_0x5a48('0x45')](handleError(_0x5cb8cb,null));};exports[_0x5a48('0x4b')]=function(_0x16e402,_0x23aafe,_0x3e0097){if(_0x16e402[_0x5a48('0x44')]['id']){delete _0x16e402[_0x5a48('0x44')]['id'];}return db[_0x5a48('0x2b')]['findOne']({'where':{'id':_0x16e402[_0x5a48('0x41')]['id']}})[_0x5a48('0x24')](handleEntityNotFound(_0x23aafe,null))[_0x5a48('0x24')](function(_0x42c8f4){if(_0x42c8f4){_0x16e402[_0x5a48('0x44')][_0x5a48('0x4c')]=_0x42c8f4['id'];_0x16e402['body'][_0x5a48('0x4d')]=integrations['getSubjects'](_0x16e402['body'][_0x5a48('0x4e')],_0x16e402[_0x5a48('0x44')]['type']);_0x16e402[_0x5a48('0x44')]['Descriptions']=integrations[_0x5a48('0x4f')](_0x16e402[_0x5a48('0x44')]['channel'],_0x16e402[_0x5a48('0x44')][_0x5a48('0x50')]);return db[_0x5a48('0x48')]['create'](_0x16e402[_0x5a48('0x44')],{'include':[{'model':db[_0x5a48('0x51')],'as':_0x5a48('0x4d')},{'model':db['FreshsalesField'],'as':_0x5a48('0x52')}]});}return null;})[_0x5a48('0x24')](respondWithResult(_0x23aafe,null))[_0x5a48('0x45')](handleError(_0x23aafe,null));};exports[_0x5a48('0x53')]=function(_0x209825,_0x48410e,_0x385b3c){var _0x2456f7='';var _0x2529b3='';return db[_0x5a48('0x2b')][_0x5a48('0x47')]({'where':{'id':_0x209825[_0x5a48('0x41')]['id']},'attributes':['id',_0x5a48('0x54'),_0x5a48('0x55'),_0x5a48('0x56')]})['then'](handleEntityNotFound(_0x48410e,null))['then'](function(_0x25d564){if(_0x25d564){_0x2529b3=_0x25d564[_0x5a48('0x54')];_0x2456f7=_0x25d564['remoteUri'];var _0x100bfc=_0x25d564[_0x5a48('0x55')][_0x5a48('0x57')](-0x1);if(_0x100bfc==='/'){_0x2456f7=_0x2456f7[_0x5a48('0x58')](0x0,_0x2456f7['lastIndexOf'](_0x100bfc));}return rp({'method':_0x5a48('0x59'),'uri':util['format'](_0x5a48('0x5a'),_0x2456f7,'/api/selector/owners'),'headers':{'Authorization':_0x5a48('0x5b')+_0x25d564['apiKey']},'json':!![]});}})[_0x5a48('0x24')](function(_0x32fc5c){if(_0x32fc5c){var _0x4ebe2b=_0x32fc5c['users'];var _0x514435=![];var _0x291cd7=null;for(_0x291cd7=0x0;_0x291cd7<_0x4ebe2b[_0x5a48('0x37')];_0x291cd7++){if(_0x4ebe2b[_0x291cd7][_0x5a48('0x5c')]===_0x2529b3){_0x514435=!![];}}if(_0x514435){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x5a48('0x5d')});}}})[_0x5a48('0x24')](respondWithResult(_0x48410e,null))['catch'](function(_0x3f891d){var _0x5206a2=_0x209825[_0x5a48('0x31')][_0x5a48('0x5e')]?0x1f4:_0x3f891d['statusCode']||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0x5a48('0x53'),_0x5206a2,JSON[_0x5a48('0x5f')](_0x3f891d));delete _0x3f891d[_0x5a48('0x28')];if(_0x5206a2===0x191){_0x5206a2=0x190;}_0x48410e[_0x5a48('0x18')](_0x5206a2)[_0x5a48('0x29')](_0x209825[_0x5a48('0x31')][_0x5a48('0x5e')]?{'message':_0x5a48('0x60'),'statusCode':_0x3f891d[_0x5a48('0x61')]}:_0x3f891d);});};