84768a8714a1ad67b41399680d549353167be07b
[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 _0x49e6=['apiKey','slice','substring','lastIndexOf','%s%s','Token\x20token=','users','email','test','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','stringify','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','then','destroy','name','send','index','map','fieldName','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','type','VIRTUAL','options','FreshsalesAccount','includeAll','include','rows','catch','show','params','rawAttributes','create','update','body','find','getConfigurations','findOne','AccountId','Subjects','getSubjects','channel','getDescriptions','FreshsalesField','Descriptions','getFields','username','remoteUri'];(function(_0x550e65,_0x5af01e){var _0x49b344=function(_0x2d6952){while(--_0x2d6952){_0x550e65['push'](_0x550e65['shift']());}};_0x49b344(++_0x5af01e);}(_0x49e6,0x72));var _0x649e=function(_0x25ee79,_0x4274e5){_0x25ee79=_0x25ee79-0x0;var _0x5eb254=_0x49e6[_0x25ee79];return _0x5eb254;};'use strict';var emlformat=require(_0x649e('0x0'));var rimraf=require(_0x649e('0x1'));var zipdir=require(_0x649e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x649e('0x3'));var BPromise=require(_0x649e('0x4'));var Mustache=require(_0x649e('0x5'));var util=require(_0x649e('0x6'));var path=require('path');var sox=require(_0x649e('0x7'));var csv=require(_0x649e('0x8'));var ejs=require(_0x649e('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x649e('0xa'));var squel=require(_0x649e('0xb'));var crypto=require(_0x649e('0xc'));var jsforce=require(_0x649e('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x649e('0xe'));var Papa=require(_0x649e('0xf'));var Redis=require(_0x649e('0x10'));var authService=require(_0x649e('0x11'));var qs=require(_0x649e('0x12'));var as=require(_0x649e('0x13'));var hardwareService=require(_0x649e('0x14'));var logger=require(_0x649e('0x15'))('api');var utils=require(_0x649e('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x649e('0x17'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x355867,_0x2ae4a0){_0x2ae4a0=_0x2ae4a0||0xcc;return function(_0x291ab1){if(_0x291ab1){return _0x355867[_0x649e('0x18')](_0x2ae4a0);}return _0x355867[_0x649e('0x19')](_0x2ae4a0)[_0x649e('0x1a')]();};}function respondWithResult(_0x16b439,_0x4631ab){_0x4631ab=_0x4631ab||0xc8;return function(_0x288e62){if(_0x288e62){return _0x16b439[_0x649e('0x19')](_0x4631ab)[_0x649e('0x1b')](_0x288e62);}};}function respondWithFilteredResult(_0x1b1a84,_0x518c07){return function(_0x438c3f){if(_0x438c3f){var _0x40dc56=typeof _0x518c07[_0x649e('0x1c')]===_0x649e('0x1d')&&typeof _0x518c07['limit']===_0x649e('0x1d');var _0x18f1b2=_0x438c3f[_0x649e('0x1e')];var _0x41ac00=_0x40dc56?0x0:_0x518c07[_0x649e('0x1c')];var _0x263167=_0x40dc56?_0x438c3f[_0x649e('0x1e')]:_0x518c07['offset']+_0x518c07[_0x649e('0x1f')];var _0x4fc87a;if(_0x263167>=_0x18f1b2){_0x263167=_0x18f1b2;_0x4fc87a=0xc8;}else{_0x4fc87a=0xce;}_0x1b1a84[_0x649e('0x19')](_0x4fc87a);return _0x1b1a84[_0x649e('0x20')](_0x649e('0x21'),_0x41ac00+'-'+_0x263167+'/'+_0x18f1b2)[_0x649e('0x1b')](_0x438c3f);}return null;};}function patchUpdates(_0x27d909){return function(_0x2ffa75){try{jsonpatch[_0x649e('0x22')](_0x2ffa75,_0x27d909,!![]);}catch(_0x414d6d){return BPromise[_0x649e('0x23')](_0x414d6d);}return _0x2ffa75[_0x649e('0x24')]();};}function saveUpdates(_0x432582,_0x3c4392){return function(_0x5d76e6){if(_0x5d76e6){return _0x5d76e6['update'](_0x432582)[_0x649e('0x25')](function(_0x4ec40d){return _0x4ec40d;});}return null;};}function removeEntity(_0x22a984,_0x14f1ea){return function(_0x1bd600){if(_0x1bd600){return _0x1bd600[_0x649e('0x26')]()[_0x649e('0x25')](function(){_0x22a984[_0x649e('0x19')](0xcc)[_0x649e('0x1a')]();});}};}function handleEntityNotFound(_0x3933e0,_0x1a9db2){return function(_0x131296){if(!_0x131296){_0x3933e0[_0x649e('0x18')](0x194);}return _0x131296;};}function handleError(_0x2bfd7c,_0x549486){_0x549486=_0x549486||0x1f4;return function(_0x22d467){logger['error'](_0x22d467['stack']);if(_0x22d467[_0x649e('0x27')]){delete _0x22d467[_0x649e('0x27')];}_0x2bfd7c[_0x649e('0x19')](_0x549486)[_0x649e('0x28')](_0x22d467);};}exports[_0x649e('0x29')]=function(_0x333651,_0x2f3a24){var _0x3571e7={},_0x67e026={},_0x343da7={'count':0x0,'rows':[]};var _0x9abdaf=_[_0x649e('0x2a')](db['FreshsalesAccount']['rawAttributes'],function(_0x645c00){return{'name':_0x645c00[_0x649e('0x2b')],'type':_0x645c00['type'][_0x649e('0x2c')]};});_0x67e026['model']=_[_0x649e('0x2a')](_0x9abdaf,_0x649e('0x27'));_0x67e026[_0x649e('0x2d')]=_[_0x649e('0x2e')](_0x333651[_0x649e('0x2d')]);_0x67e026[_0x649e('0x2f')]=_[_0x649e('0x30')](_0x67e026[_0x649e('0x31')],_0x67e026[_0x649e('0x2d')]);_0x3571e7[_0x649e('0x32')]=_['intersection'](_0x67e026[_0x649e('0x31')],qs['fields'](_0x333651[_0x649e('0x2d')][_0x649e('0x33')]));_0x3571e7['attributes']=_0x3571e7[_0x649e('0x32')][_0x649e('0x34')]?_0x3571e7['attributes']:_0x67e026['model'];if(!_0x333651[_0x649e('0x2d')][_0x649e('0x35')](_0x649e('0x36'))){_0x3571e7[_0x649e('0x1f')]=qs['limit'](_0x333651[_0x649e('0x2d')][_0x649e('0x1f')]);_0x3571e7[_0x649e('0x1c')]=qs[_0x649e('0x1c')](_0x333651[_0x649e('0x2d')]['offset']);}_0x3571e7[_0x649e('0x37')]=qs[_0x649e('0x38')](_0x333651['query']['sort']);_0x3571e7['where']=qs[_0x649e('0x2f')](_[_0x649e('0x39')](_0x333651['query'],_0x67e026[_0x649e('0x2f')]),_0x9abdaf);if(_0x333651[_0x649e('0x2d')][_0x649e('0x3a')]){_0x3571e7[_0x649e('0x3b')]=_[_0x649e('0x3c')](_0x3571e7[_0x649e('0x3b')],{'$or':_['map'](_0x9abdaf,function(_0x46cc59){if(_0x46cc59[_0x649e('0x3d')]!==_0x649e('0x3e')){var _0x36c391={};_0x36c391[_0x46cc59['name']]={'$like':'%'+_0x333651[_0x649e('0x2d')]['filter']+'%'};return _0x36c391;}})});}_0x3571e7=_[_0x649e('0x3c')]({},_0x3571e7,_0x333651[_0x649e('0x3f')]);var _0x403316={'where':_0x3571e7[_0x649e('0x3b')]};return db[_0x649e('0x40')][_0x649e('0x1e')](_0x403316)[_0x649e('0x25')](function(_0x59e92d){_0x343da7['count']=_0x59e92d;if(_0x333651[_0x649e('0x2d')][_0x649e('0x41')]){_0x3571e7[_0x649e('0x42')]=[{'all':!![]}];}return db[_0x649e('0x40')]['findAll'](_0x3571e7);})['then'](function(_0x1234ae){_0x343da7[_0x649e('0x43')]=_0x1234ae;return _0x343da7;})[_0x649e('0x25')](respondWithFilteredResult(_0x2f3a24,_0x3571e7))[_0x649e('0x44')](handleError(_0x2f3a24,null));};exports[_0x649e('0x45')]=function(_0x25d6e0,_0x520e8c){var _0x4b0117={'raw':![],'where':{'id':_0x25d6e0[_0x649e('0x46')]['id']}},_0x39ec2d={};_0x39ec2d[_0x649e('0x31')]=_[_0x649e('0x2e')](db[_0x649e('0x40')][_0x649e('0x47')]);_0x39ec2d[_0x649e('0x2d')]=_['keys'](_0x25d6e0[_0x649e('0x2d')]);_0x39ec2d[_0x649e('0x2f')]=_[_0x649e('0x30')](_0x39ec2d['model'],_0x39ec2d['query']);_0x4b0117[_0x649e('0x32')]=_[_0x649e('0x30')](_0x39ec2d[_0x649e('0x31')],qs['fields'](_0x25d6e0[_0x649e('0x2d')][_0x649e('0x33')]));_0x4b0117['attributes']=_0x4b0117['attributes'][_0x649e('0x34')]?_0x4b0117[_0x649e('0x32')]:_0x39ec2d[_0x649e('0x31')];if(_0x25d6e0[_0x649e('0x2d')]['includeAll']){_0x4b0117[_0x649e('0x42')]=[{'all':!![]}];}_0x4b0117=_[_0x649e('0x3c')]({},_0x4b0117,_0x25d6e0[_0x649e('0x3f')]);return db[_0x649e('0x40')]['find'](_0x4b0117)[_0x649e('0x25')](handleEntityNotFound(_0x520e8c,null))[_0x649e('0x25')](respondWithResult(_0x520e8c,null))['catch'](handleError(_0x520e8c,null));};exports[_0x649e('0x48')]=function(_0x536130,_0x1c11a7){return db[_0x649e('0x40')][_0x649e('0x48')](_0x536130['body'],{})[_0x649e('0x25')](respondWithResult(_0x1c11a7,0xc9))['catch'](handleError(_0x1c11a7,null));};exports[_0x649e('0x49')]=function(_0x254f00,_0x5a7bf3){if(_0x254f00[_0x649e('0x4a')]['id']){delete _0x254f00[_0x649e('0x4a')]['id'];}return db[_0x649e('0x40')]['find']({'where':{'id':_0x254f00[_0x649e('0x46')]['id']}})[_0x649e('0x25')](handleEntityNotFound(_0x5a7bf3,null))['then'](saveUpdates(_0x254f00[_0x649e('0x4a')],null))['then'](respondWithResult(_0x5a7bf3,null))[_0x649e('0x44')](handleError(_0x5a7bf3,null));};exports[_0x649e('0x26')]=function(_0x19cd07,_0x4ac01c){return db[_0x649e('0x40')][_0x649e('0x4b')]({'where':{'id':_0x19cd07[_0x649e('0x46')]['id']}})[_0x649e('0x25')](handleEntityNotFound(_0x4ac01c,null))[_0x649e('0x25')](removeEntity(_0x4ac01c,null))[_0x649e('0x44')](handleError(_0x4ac01c,null));};exports[_0x649e('0x4c')]=function(_0x10c461,_0x5595bd,_0x5500b8){var _0x34be1d={};var _0x4e2e20={};var _0x13154c;var _0x23f37d;return db[_0x649e('0x40')][_0x649e('0x4d')]({'where':{'id':_0x10c461[_0x649e('0x46')]['id']}})[_0x649e('0x25')](handleEntityNotFound(_0x5595bd,null))[_0x649e('0x25')](function(_0x1f17e2){if(_0x1f17e2){_0x13154c=_0x1f17e2;_0x4e2e20[_0x649e('0x31')]=_['keys'](db['FreshsalesConfiguration'][_0x649e('0x47')]);_0x4e2e20['query']=_[_0x649e('0x2e')](_0x10c461['query']);_0x4e2e20['filters']=_[_0x649e('0x30')](_0x4e2e20[_0x649e('0x31')],_0x4e2e20['query']);_0x34be1d[_0x649e('0x32')]=_[_0x649e('0x30')](_0x4e2e20[_0x649e('0x31')],qs[_0x649e('0x33')](_0x10c461[_0x649e('0x2d')][_0x649e('0x33')]));_0x34be1d[_0x649e('0x32')]=_0x34be1d['attributes'][_0x649e('0x34')]?_0x34be1d[_0x649e('0x32')]:_0x4e2e20['model'];_0x34be1d[_0x649e('0x37')]=qs[_0x649e('0x38')](_0x10c461[_0x649e('0x2d')][_0x649e('0x38')]);_0x34be1d[_0x649e('0x3b')]=qs[_0x649e('0x2f')](_[_0x649e('0x39')](_0x10c461[_0x649e('0x2d')],_0x4e2e20[_0x649e('0x2f')]));if(_0x10c461[_0x649e('0x2d')]['filter']){_0x34be1d['where']=_['merge'](_0x34be1d[_0x649e('0x3b')],{'$or':_[_0x649e('0x2a')](_0x34be1d[_0x649e('0x32')],function(_0x19d780){var _0x47e861={};_0x47e861[_0x19d780]={'$like':'%'+_0x10c461[_0x649e('0x2d')][_0x649e('0x3a')]+'%'};return _0x47e861;})});}_0x34be1d=_[_0x649e('0x3c')]({},_0x34be1d,_0x10c461[_0x649e('0x3f')]);return _0x13154c['getConfigurations'](_0x34be1d);}})[_0x649e('0x25')](function(_0x56a54d){if(_0x56a54d){_0x23f37d=_0x56a54d[_0x649e('0x34')];if(!_0x10c461['query'][_0x649e('0x35')]('nolimit')){_0x34be1d[_0x649e('0x1f')]=qs[_0x649e('0x1f')](_0x10c461[_0x649e('0x2d')][_0x649e('0x1f')]);_0x34be1d[_0x649e('0x1c')]=qs['offset'](_0x10c461['query'][_0x649e('0x1c')]);}return _0x13154c[_0x649e('0x4c')](_0x34be1d);}})[_0x649e('0x25')](function(_0x3f9a51){if(_0x3f9a51){return _0x3f9a51?{'count':_0x23f37d,'rows':_0x3f9a51}:null;}})[_0x649e('0x25')](respondWithResult(_0x5595bd,null))[_0x649e('0x44')](handleError(_0x5595bd,null));};exports['addConfiguration']=function(_0x14e532,_0x40d245,_0x2a7902){if(_0x14e532['body']['id']){delete _0x14e532[_0x649e('0x4a')]['id'];}return db['FreshsalesAccount'][_0x649e('0x4d')]({'where':{'id':_0x14e532['params']['id']}})[_0x649e('0x25')](handleEntityNotFound(_0x40d245,null))[_0x649e('0x25')](function(_0x51204a){if(_0x51204a){_0x14e532['body'][_0x649e('0x4e')]=_0x51204a['id'];_0x14e532['body'][_0x649e('0x4f')]=integrations[_0x649e('0x50')](_0x14e532[_0x649e('0x4a')][_0x649e('0x51')],_0x14e532['body']['type']);_0x14e532[_0x649e('0x4a')]['Descriptions']=integrations[_0x649e('0x52')](_0x14e532[_0x649e('0x4a')][_0x649e('0x51')],_0x14e532[_0x649e('0x4a')][_0x649e('0x3d')]);return db['FreshsalesConfiguration'][_0x649e('0x48')](_0x14e532[_0x649e('0x4a')],{'include':[{'model':db[_0x649e('0x53')],'as':_0x649e('0x4f')},{'model':db[_0x649e('0x53')],'as':_0x649e('0x54')}]});}return null;})[_0x649e('0x25')](respondWithResult(_0x40d245,null))[_0x649e('0x44')](handleError(_0x40d245,null));};exports[_0x649e('0x55')]=function(_0x928882,_0x4e9304,_0x30d12c){var _0x22ac15='';var _0x26be61='';return db[_0x649e('0x40')]['findOne']({'where':{'id':_0x928882[_0x649e('0x46')]['id']},'attributes':['id',_0x649e('0x56'),_0x649e('0x57'),_0x649e('0x58')]})['then'](handleEntityNotFound(_0x4e9304,null))[_0x649e('0x25')](function(_0x5abcc9){if(_0x5abcc9){_0x26be61=_0x5abcc9['username'];_0x22ac15=_0x5abcc9[_0x649e('0x57')];var _0x5a4fe7=_0x5abcc9['remoteUri'][_0x649e('0x59')](-0x1);if(_0x5a4fe7==='/'){_0x22ac15=_0x22ac15[_0x649e('0x5a')](0x0,_0x22ac15[_0x649e('0x5b')](_0x5a4fe7));}return rp({'method':'GET','uri':util['format'](_0x649e('0x5c'),_0x22ac15,'/api/selector/owners'),'headers':{'Authorization':_0x649e('0x5d')+_0x5abcc9[_0x649e('0x58')]},'json':!![]});}})[_0x649e('0x25')](function(_0x1e434c){if(_0x1e434c){var _0x59fa6b=_0x1e434c[_0x649e('0x5e')];var _0x392fa9=![];var _0x1ca8d8=null;for(_0x1ca8d8=0x0;_0x1ca8d8<_0x59fa6b[_0x649e('0x34')];_0x1ca8d8++){if(_0x59fa6b[_0x1ca8d8][_0x649e('0x5f')]===_0x26be61){_0x392fa9=!![];}}if(_0x392fa9){return!![];}else{throw new Error({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}})[_0x649e('0x25')](respondWithResult(_0x4e9304,null))['catch'](function(_0x5ac9ad){var _0x12f319=_0x928882[_0x649e('0x2d')][_0x649e('0x60')]?0x1f4:_0x5ac9ad[_0x649e('0x61')]||0x1f4;logger[_0x649e('0x62')](_0x649e('0x63'),_0x649e('0x55'),_0x12f319,JSON[_0x649e('0x64')](_0x5ac9ad));delete _0x5ac9ad[_0x649e('0x27')];if(_0x12f319===0x191){_0x12f319=0x190;}_0x4e9304[_0x649e('0x19')](_0x12f319)[_0x649e('0x28')](_0x928882['query'][_0x649e('0x60')]?{'message':'Wrong\x20credentials','statusCode':_0x5ac9ad[_0x649e('0x61')]}:_0x5ac9ad);});};