43f4fc6a2fcee6fc38b84986ca149b01a2c96f60
[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 _0x8d0c=['keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','type','VIRTUAL','filter','options','count','includeAll','include','findAll','rows','catch','show','params','find','create','body','findOne','FreshsalesConfiguration','getConfigurations','AccountId','Subjects','getSubjects','channel','getDescriptions','FreshsalesField','Descriptions','getFields','username','remoteUri','apiKey','slice','substring','lastIndexOf','GET','format','%s%s','Token\x20token=','users','email','test','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','stringify','send','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/license/util','../../components/integrations/configuration','status','end','json','undefined','limit','offset','set','apply','reject','save','update','then','destroy','sendStatus','stack','name','index','map','FreshsalesAccount','rawAttributes','fieldName','key','model','query'];(function(_0x58332b,_0x158d5d){var _0x2376af=function(_0x268a62){while(--_0x268a62){_0x58332b['push'](_0x58332b['shift']());}};_0x2376af(++_0x158d5d);}(_0x8d0c,0x1d5));var _0xc8d0=function(_0x1df437,_0x125d77){_0x1df437=_0x1df437-0x0;var _0x30277e=_0x8d0c[_0x1df437];return _0x30277e;};'use strict';var emlformat=require(_0xc8d0('0x0'));var rimraf=require(_0xc8d0('0x1'));var zipdir=require(_0xc8d0('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xc8d0('0x3'));var BPromise=require(_0xc8d0('0x4'));var Mustache=require(_0xc8d0('0x5'));var util=require(_0xc8d0('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0xc8d0('0x7'));var ejs=require(_0xc8d0('0x8'));var fs=require('fs');var fs_extra=require(_0xc8d0('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xc8d0('0xa'));var jsforce=require(_0xc8d0('0xb'));var deskjs=require(_0xc8d0('0xc'));var toCsv=require(_0xc8d0('0x7'));var querystring=require(_0xc8d0('0xd'));var Papa=require(_0xc8d0('0xe'));var Redis=require(_0xc8d0('0xf'));var authService=require(_0xc8d0('0x10'));var qs=require(_0xc8d0('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xc8d0('0x12'))('api');var utils=require(_0xc8d0('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0xc8d0('0x14'));var db=require('../../mysqldb')['db'];var integrations=require(_0xc8d0('0x15'));function respondWithStatusCode(_0x1529d4,_0x5b5929){_0x5b5929=_0x5b5929||0xcc;return function(_0x249922){if(_0x249922){return _0x1529d4['sendStatus'](_0x5b5929);}return _0x1529d4[_0xc8d0('0x16')](_0x5b5929)[_0xc8d0('0x17')]();};}function respondWithResult(_0x432ea6,_0x17fc15){_0x17fc15=_0x17fc15||0xc8;return function(_0x1776b0){if(_0x1776b0){return _0x432ea6[_0xc8d0('0x16')](_0x17fc15)[_0xc8d0('0x18')](_0x1776b0);}};}function respondWithFilteredResult(_0x208a54,_0x5ed84b){return function(_0x57f1db){if(_0x57f1db){var _0x175438=typeof _0x5ed84b['offset']===_0xc8d0('0x19')&&typeof _0x5ed84b[_0xc8d0('0x1a')]==='undefined';var _0x2a4a73=_0x57f1db['count'];var _0x40ba54=_0x175438?0x0:_0x5ed84b[_0xc8d0('0x1b')];var _0x372076=_0x175438?_0x57f1db['count']:_0x5ed84b['offset']+_0x5ed84b['limit'];var _0x3251a7;if(_0x372076>=_0x2a4a73){_0x372076=_0x2a4a73;_0x3251a7=0xc8;}else{_0x3251a7=0xce;}_0x208a54['status'](_0x3251a7);return _0x208a54[_0xc8d0('0x1c')]('Content-Range',_0x40ba54+'-'+_0x372076+'/'+_0x2a4a73)[_0xc8d0('0x18')](_0x57f1db);}return null;};}function patchUpdates(_0x59f68d){return function(_0x121e54){try{jsonpatch[_0xc8d0('0x1d')](_0x121e54,_0x59f68d,!![]);}catch(_0x3fc857){return BPromise[_0xc8d0('0x1e')](_0x3fc857);}return _0x121e54[_0xc8d0('0x1f')]();};}function saveUpdates(_0x147574,_0x37792a){return function(_0x16c24c){if(_0x16c24c){return _0x16c24c[_0xc8d0('0x20')](_0x147574)[_0xc8d0('0x21')](function(_0x29c713){return _0x29c713;});}return null;};}function removeEntity(_0x531c3c,_0x3a67b1){return function(_0x8a10b2){if(_0x8a10b2){return _0x8a10b2[_0xc8d0('0x22')]()[_0xc8d0('0x21')](function(){_0x531c3c[_0xc8d0('0x16')](0xcc)[_0xc8d0('0x17')]();});}};}function handleEntityNotFound(_0x200249,_0x42950d){return function(_0x287b5f){if(!_0x287b5f){_0x200249[_0xc8d0('0x23')](0x194);}return _0x287b5f;};}function handleError(_0x1eb468,_0x44b398){_0x44b398=_0x44b398||0x1f4;return function(_0xdbe5fc){logger['error'](_0xdbe5fc[_0xc8d0('0x24')]);if(_0xdbe5fc[_0xc8d0('0x25')]){delete _0xdbe5fc[_0xc8d0('0x25')];}_0x1eb468['status'](_0x44b398)['send'](_0xdbe5fc);};}exports[_0xc8d0('0x26')]=function(_0x4c8623,_0x3c1156){var _0x165098={},_0x25ad93={},_0x4d2d1d={'count':0x0,'rows':[]};var _0x3ef8f5=_[_0xc8d0('0x27')](db[_0xc8d0('0x28')][_0xc8d0('0x29')],function(_0x286043){return{'name':_0x286043[_0xc8d0('0x2a')],'type':_0x286043['type'][_0xc8d0('0x2b')]};});_0x25ad93[_0xc8d0('0x2c')]=_[_0xc8d0('0x27')](_0x3ef8f5,_0xc8d0('0x25'));_0x25ad93[_0xc8d0('0x2d')]=_[_0xc8d0('0x2e')](_0x4c8623[_0xc8d0('0x2d')]);_0x25ad93[_0xc8d0('0x2f')]=_[_0xc8d0('0x30')](_0x25ad93[_0xc8d0('0x2c')],_0x25ad93[_0xc8d0('0x2d')]);_0x165098[_0xc8d0('0x31')]=_[_0xc8d0('0x30')](_0x25ad93[_0xc8d0('0x2c')],qs[_0xc8d0('0x32')](_0x4c8623[_0xc8d0('0x2d')][_0xc8d0('0x32')]));_0x165098[_0xc8d0('0x31')]=_0x165098['attributes'][_0xc8d0('0x33')]?_0x165098[_0xc8d0('0x31')]:_0x25ad93[_0xc8d0('0x2c')];if(!_0x4c8623[_0xc8d0('0x2d')][_0xc8d0('0x34')](_0xc8d0('0x35'))){_0x165098[_0xc8d0('0x1a')]=qs['limit'](_0x4c8623[_0xc8d0('0x2d')][_0xc8d0('0x1a')]);_0x165098[_0xc8d0('0x1b')]=qs[_0xc8d0('0x1b')](_0x4c8623[_0xc8d0('0x2d')][_0xc8d0('0x1b')]);}_0x165098[_0xc8d0('0x36')]=qs[_0xc8d0('0x37')](_0x4c8623['query'][_0xc8d0('0x37')]);_0x165098[_0xc8d0('0x38')]=qs[_0xc8d0('0x2f')](_[_0xc8d0('0x39')](_0x4c8623['query'],_0x25ad93[_0xc8d0('0x2f')]),_0x3ef8f5);if(_0x4c8623['query']['filter']){_0x165098[_0xc8d0('0x38')]=_[_0xc8d0('0x3a')](_0x165098[_0xc8d0('0x38')],{'$or':_[_0xc8d0('0x27')](_0x3ef8f5,function(_0x33f324){if(_0x33f324[_0xc8d0('0x3b')]!==_0xc8d0('0x3c')){var _0x3a50bb={};_0x3a50bb[_0x33f324[_0xc8d0('0x25')]]={'$like':'%'+_0x4c8623[_0xc8d0('0x2d')][_0xc8d0('0x3d')]+'%'};return _0x3a50bb;}})});}_0x165098=_[_0xc8d0('0x3a')]({},_0x165098,_0x4c8623[_0xc8d0('0x3e')]);var _0x5bfda3={'where':_0x165098[_0xc8d0('0x38')]};return db['FreshsalesAccount']['count'](_0x5bfda3)['then'](function(_0x2bf1ab){_0x4d2d1d[_0xc8d0('0x3f')]=_0x2bf1ab;if(_0x4c8623[_0xc8d0('0x2d')][_0xc8d0('0x40')]){_0x165098[_0xc8d0('0x41')]=[{'all':!![]}];}return db[_0xc8d0('0x28')][_0xc8d0('0x42')](_0x165098);})[_0xc8d0('0x21')](function(_0xd205c1){_0x4d2d1d[_0xc8d0('0x43')]=_0xd205c1;return _0x4d2d1d;})[_0xc8d0('0x21')](respondWithFilteredResult(_0x3c1156,_0x165098))[_0xc8d0('0x44')](handleError(_0x3c1156,null));};exports[_0xc8d0('0x45')]=function(_0x177cae,_0x21d224){var _0x41154f={'raw':![],'where':{'id':_0x177cae[_0xc8d0('0x46')]['id']}},_0x52ea46={};_0x52ea46[_0xc8d0('0x2c')]=_[_0xc8d0('0x2e')](db['FreshsalesAccount'][_0xc8d0('0x29')]);_0x52ea46[_0xc8d0('0x2d')]=_[_0xc8d0('0x2e')](_0x177cae['query']);_0x52ea46['filters']=_['intersection'](_0x52ea46[_0xc8d0('0x2c')],_0x52ea46[_0xc8d0('0x2d')]);_0x41154f[_0xc8d0('0x31')]=_[_0xc8d0('0x30')](_0x52ea46[_0xc8d0('0x2c')],qs[_0xc8d0('0x32')](_0x177cae[_0xc8d0('0x2d')][_0xc8d0('0x32')]));_0x41154f[_0xc8d0('0x31')]=_0x41154f['attributes'][_0xc8d0('0x33')]?_0x41154f[_0xc8d0('0x31')]:_0x52ea46['model'];if(_0x177cae[_0xc8d0('0x2d')][_0xc8d0('0x40')]){_0x41154f[_0xc8d0('0x41')]=[{'all':!![]}];}_0x41154f=_['merge']({},_0x41154f,_0x177cae[_0xc8d0('0x3e')]);return db[_0xc8d0('0x28')][_0xc8d0('0x47')](_0x41154f)['then'](handleEntityNotFound(_0x21d224,null))[_0xc8d0('0x21')](respondWithResult(_0x21d224,null))[_0xc8d0('0x44')](handleError(_0x21d224,null));};exports['create']=function(_0x17d2d6,_0x335673){return db['FreshsalesAccount'][_0xc8d0('0x48')](_0x17d2d6['body'],{})[_0xc8d0('0x21')](respondWithResult(_0x335673,0xc9))[_0xc8d0('0x44')](handleError(_0x335673,null));};exports['update']=function(_0x409cba,_0x3068dd){if(_0x409cba['body']['id']){delete _0x409cba[_0xc8d0('0x49')]['id'];}return db[_0xc8d0('0x28')][_0xc8d0('0x47')]({'where':{'id':_0x409cba[_0xc8d0('0x46')]['id']}})[_0xc8d0('0x21')](handleEntityNotFound(_0x3068dd,null))[_0xc8d0('0x21')](saveUpdates(_0x409cba[_0xc8d0('0x49')],null))['then'](respondWithResult(_0x3068dd,null))['catch'](handleError(_0x3068dd,null));};exports['destroy']=function(_0x43fa88,_0x298653){return db['FreshsalesAccount'][_0xc8d0('0x47')]({'where':{'id':_0x43fa88[_0xc8d0('0x46')]['id']}})[_0xc8d0('0x21')](handleEntityNotFound(_0x298653,null))['then'](removeEntity(_0x298653,null))['catch'](handleError(_0x298653,null));};exports['getConfigurations']=function(_0x164d18,_0x853b14,_0xfc410a){var _0x1e687c={};var _0x13572a={};var _0x12d84c;var _0xeb85d7;return db[_0xc8d0('0x28')][_0xc8d0('0x4a')]({'where':{'id':_0x164d18[_0xc8d0('0x46')]['id']}})['then'](handleEntityNotFound(_0x853b14,null))['then'](function(_0x3372a9){if(_0x3372a9){_0x12d84c=_0x3372a9;_0x13572a[_0xc8d0('0x2c')]=_['keys'](db[_0xc8d0('0x4b')][_0xc8d0('0x29')]);_0x13572a[_0xc8d0('0x2d')]=_['keys'](_0x164d18[_0xc8d0('0x2d')]);_0x13572a[_0xc8d0('0x2f')]=_[_0xc8d0('0x30')](_0x13572a['model'],_0x13572a[_0xc8d0('0x2d')]);_0x1e687c[_0xc8d0('0x31')]=_[_0xc8d0('0x30')](_0x13572a[_0xc8d0('0x2c')],qs[_0xc8d0('0x32')](_0x164d18[_0xc8d0('0x2d')]['fields']));_0x1e687c[_0xc8d0('0x31')]=_0x1e687c[_0xc8d0('0x31')][_0xc8d0('0x33')]?_0x1e687c[_0xc8d0('0x31')]:_0x13572a[_0xc8d0('0x2c')];_0x1e687c['order']=qs[_0xc8d0('0x37')](_0x164d18[_0xc8d0('0x2d')][_0xc8d0('0x37')]);_0x1e687c[_0xc8d0('0x38')]=qs[_0xc8d0('0x2f')](_[_0xc8d0('0x39')](_0x164d18['query'],_0x13572a[_0xc8d0('0x2f')]));if(_0x164d18[_0xc8d0('0x2d')][_0xc8d0('0x3d')]){_0x1e687c[_0xc8d0('0x38')]=_['merge'](_0x1e687c['where'],{'$or':_['map'](_0x1e687c['attributes'],function(_0xb9f86c){var _0x4cc599={};_0x4cc599[_0xb9f86c]={'$like':'%'+_0x164d18[_0xc8d0('0x2d')][_0xc8d0('0x3d')]+'%'};return _0x4cc599;})});}_0x1e687c=_[_0xc8d0('0x3a')]({},_0x1e687c,_0x164d18[_0xc8d0('0x3e')]);return _0x12d84c[_0xc8d0('0x4c')](_0x1e687c);}})[_0xc8d0('0x21')](function(_0xa6c6a6){if(_0xa6c6a6){_0xeb85d7=_0xa6c6a6['length'];if(!_0x164d18['query']['hasOwnProperty'](_0xc8d0('0x35'))){_0x1e687c[_0xc8d0('0x1a')]=qs[_0xc8d0('0x1a')](_0x164d18[_0xc8d0('0x2d')][_0xc8d0('0x1a')]);_0x1e687c['offset']=qs[_0xc8d0('0x1b')](_0x164d18[_0xc8d0('0x2d')][_0xc8d0('0x1b')]);}return _0x12d84c['getConfigurations'](_0x1e687c);}})[_0xc8d0('0x21')](function(_0x3d09e4){if(_0x3d09e4){return _0x3d09e4?{'count':_0xeb85d7,'rows':_0x3d09e4}:null;}})[_0xc8d0('0x21')](respondWithResult(_0x853b14,null))[_0xc8d0('0x44')](handleError(_0x853b14,null));};exports['addConfiguration']=function(_0x37d924,_0x55cc4f,_0x5b00c1){if(_0x37d924[_0xc8d0('0x49')]['id']){delete _0x37d924[_0xc8d0('0x49')]['id'];}return db[_0xc8d0('0x28')][_0xc8d0('0x4a')]({'where':{'id':_0x37d924['params']['id']}})[_0xc8d0('0x21')](handleEntityNotFound(_0x55cc4f,null))[_0xc8d0('0x21')](function(_0x233b04){if(_0x233b04){_0x37d924[_0xc8d0('0x49')][_0xc8d0('0x4d')]=_0x233b04['id'];_0x37d924[_0xc8d0('0x49')][_0xc8d0('0x4e')]=integrations[_0xc8d0('0x4f')](_0x37d924[_0xc8d0('0x49')][_0xc8d0('0x50')],_0x37d924[_0xc8d0('0x49')][_0xc8d0('0x3b')]);_0x37d924[_0xc8d0('0x49')]['Descriptions']=integrations[_0xc8d0('0x51')](_0x37d924[_0xc8d0('0x49')][_0xc8d0('0x50')],_0x37d924[_0xc8d0('0x49')][_0xc8d0('0x3b')]);return db[_0xc8d0('0x4b')]['create'](_0x37d924[_0xc8d0('0x49')],{'include':[{'model':db[_0xc8d0('0x52')],'as':_0xc8d0('0x4e')},{'model':db[_0xc8d0('0x52')],'as':_0xc8d0('0x53')}]});}return null;})[_0xc8d0('0x21')](respondWithResult(_0x55cc4f,null))[_0xc8d0('0x44')](handleError(_0x55cc4f,null));};exports[_0xc8d0('0x54')]=function(_0x4e30ee,_0x5c9672,_0x27059f){var _0x4bca32='';var _0x7b2754='';return db[_0xc8d0('0x28')][_0xc8d0('0x4a')]({'where':{'id':_0x4e30ee[_0xc8d0('0x46')]['id']},'attributes':['id',_0xc8d0('0x55'),_0xc8d0('0x56'),_0xc8d0('0x57')]})[_0xc8d0('0x21')](handleEntityNotFound(_0x5c9672,null))['then'](function(_0x41d90f){if(_0x41d90f){_0x7b2754=_0x41d90f[_0xc8d0('0x55')];_0x4bca32=_0x41d90f[_0xc8d0('0x56')];var _0x21b5c0=_0x41d90f[_0xc8d0('0x56')][_0xc8d0('0x58')](-0x1);if(_0x21b5c0==='/'){_0x4bca32=_0x4bca32[_0xc8d0('0x59')](0x0,_0x4bca32[_0xc8d0('0x5a')](_0x21b5c0));}return rp({'method':_0xc8d0('0x5b'),'uri':util[_0xc8d0('0x5c')](_0xc8d0('0x5d'),_0x4bca32,'/api/selector/owners'),'headers':{'Authorization':_0xc8d0('0x5e')+_0x41d90f[_0xc8d0('0x57')]},'json':!![]});}})[_0xc8d0('0x21')](function(_0x1e7289){if(_0x1e7289){var _0x29674f=_0x1e7289[_0xc8d0('0x5f')];var _0x54fc72=![];var _0x4839cc=null;for(_0x4839cc=0x0;_0x4839cc<_0x29674f[_0xc8d0('0x33')];_0x4839cc++){if(_0x29674f[_0x4839cc][_0xc8d0('0x60')]===_0x7b2754){_0x54fc72=!![];}}if(_0x54fc72){return!![];}else{throw new Error({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}})['then'](respondWithResult(_0x5c9672,null))[_0xc8d0('0x44')](function(_0x12373f){var _0x4aaf63=_0x4e30ee['query'][_0xc8d0('0x61')]?0x1f4:_0x12373f[_0xc8d0('0x62')]||0x1f4;logger[_0xc8d0('0x63')](_0xc8d0('0x64'),_0xc8d0('0x54'),_0x4aaf63,JSON[_0xc8d0('0x65')](_0x12373f));delete _0x12373f['name'];if(_0x4aaf63===0x191){_0x4aaf63=0x190;}_0x5c9672[_0xc8d0('0x16')](_0x4aaf63)[_0xc8d0('0x66')](_0x4e30ee[_0xc8d0('0x2d')][_0xc8d0('0x61')]?{'message':'Wrong\x20credentials','statusCode':_0x12373f[_0xc8d0('0x62')]}:_0x12373f);});};