61b20304a036557656e723b5858a09dd794984ca
[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 _0x97d8=['type','key','model','query','attributes','intersection','length','nolimit','order','sort','where','filters','pick','filter','VIRTUAL','options','includeAll','include','findAll','catch','params','keys','fields','merge','find','create','body','destroy','getConfigurations','findOne','FreshsalesConfiguration','hasOwnProperty','addConfiguration','AccountId','Subjects','getSubjects','Descriptions','channel','FreshsalesField','getFields','username','remoteUri','slice','substring','lastIndexOf','format','%s%s','/api/selector/owners','Token\x20token=','apiKey','email','Requested\x20Resource\x20not\x20Found','test','statusCode','Wrong\x20credentials','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','sox','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','then','info','debug','FreshsalesAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','FreshsalesAccount,\x20%s,\x20%s','message','result','status','json','count','offset','limit','set','reject','update','end','sendStatus','stack','name','send','index','map','FreshsalesAccount','rawAttributes','fieldName'];(function(_0xcda482,_0x2de121){var _0x50b43c=function(_0x27c9ec){while(--_0x27c9ec){_0xcda482['push'](_0xcda482['shift']());}};_0x50b43c(++_0x2de121);}(_0x97d8,0x193));var _0x897d=function(_0x325c74,_0x54f82c){_0x325c74=_0x325c74-0x0;var _0x57e4f5=_0x97d8[_0x325c74];return _0x57e4f5;};'use strict';var pdf=require(_0x897d('0x0'));var emlformat=require(_0x897d('0x1'));var rimraf=require(_0x897d('0x2'));var zipdir=require(_0x897d('0x3'));var jsonpatch=require(_0x897d('0x4'));var rp=require(_0x897d('0x5'));var moment=require('moment');var BPromise=require(_0x897d('0x6'));var Mustache=require(_0x897d('0x7'));var util=require('util');var path=require('path');var sox=require(_0x897d('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x897d('0x9'));var squel=require(_0x897d('0xa'));var crypto=require(_0x897d('0xb'));var jsforce=require(_0x897d('0xc'));var deskjs=require(_0x897d('0xd'));var toCsv=require(_0x897d('0xe'));var querystring=require(_0x897d('0xf'));var Papa=require(_0x897d('0x10'));var Redis=require(_0x897d('0x11'));var authService=require(_0x897d('0x12'));var qs=require(_0x897d('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x897d('0x14'))(_0x897d('0x15'));var utils=require(_0x897d('0x16'));var config=require(_0x897d('0x17'));var db=require(_0x897d('0x18'))['db'];var integrations=require(_0x897d('0x19'));var jayson=require(_0x897d('0x1a'));var client=jayson[_0x897d('0x1b')][_0x897d('0x1c')]({'port':0x232a});function checkPasswordPattern(_0x3aa654,_0x245501,_0x384276){if(_0x384276){var _0x57b92b=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x57b92b['test'](_0x245501)){return _0x3aa654;}else{throw new db['Sequelize'][(_0x897d('0x1d'))](_0x897d('0x1e'));}}else{return _0x3aa654;}}function respondWithRpcPromise(_0x1e8531,_0x24b36c,_0x1affdf,_0xed5310){return new BPromise(function(_0x52d220,_0x5574ed){var _0x5a940d=_0xed5310||client;return _0x5a940d[_0x897d('0x1f')](_0x1e8531,_0x1affdf)[_0x897d('0x20')](function(_0x24b259){logger[_0x897d('0x21')]('FreshsalesAccount,\x20%s,\x20%s',_0x24b36c,'request\x20sent');logger[_0x897d('0x22')](_0x897d('0x23'),_0x24b36c,_0x897d('0x24'),JSON[_0x897d('0x25')](_0x24b259));if(_0x24b259[_0x897d('0x26')]){if(_0x24b259['error'][_0x897d('0x27')]===0x1f4){logger['error'](_0x897d('0x28'),_0x24b36c,_0x24b259[_0x897d('0x26')][_0x897d('0x29')]);return _0x5574ed(_0x24b259[_0x897d('0x26')][_0x897d('0x29')]);}logger[_0x897d('0x26')]('FreshsalesAccount,\x20%s,\x20%s',_0x24b36c,_0x24b259[_0x897d('0x26')][_0x897d('0x29')]);return _0x52d220(_0x24b259['error'][_0x897d('0x29')]);}else{logger[_0x897d('0x21')](_0x897d('0x28'),_0x24b36c,_0x897d('0x24'));_0x52d220(_0x24b259[_0x897d('0x2a')][_0x897d('0x29')]);}})['catch'](function(_0x4c0d04){logger[_0x897d('0x26')](_0x897d('0x28'),_0x24b36c,_0x4c0d04);_0x5574ed(_0x4c0d04);});});}function respondWithStatusCode(_0x13eb47,_0x1951c2){_0x1951c2=_0x1951c2||0xcc;return function(_0x589e85){if(_0x589e85){return _0x13eb47['sendStatus'](_0x1951c2);}return _0x13eb47[_0x897d('0x2b')](_0x1951c2)['end']();};}function respondWithResult(_0x1920d0,_0x5f2714){_0x5f2714=_0x5f2714||0xc8;return function(_0x3050db){if(_0x3050db){return _0x1920d0['status'](_0x5f2714)[_0x897d('0x2c')](_0x3050db);}};}function respondWithFilteredResult(_0xdf1911,_0x179064){return function(_0x1bbca0){if(_0x1bbca0){var _0x2427cb=_0x1bbca0[_0x897d('0x2d')],_0x9b7799=_0x179064['offset'],_0x34c9c4=_0x179064[_0x897d('0x2e')]+_0x179064[_0x897d('0x2f')],_0xd5573b;if(_0x34c9c4>=_0x2427cb){_0x34c9c4=_0x2427cb;_0xd5573b=0xc8;}else{_0xd5573b=0xce;}_0xdf1911[_0x897d('0x2b')](_0xd5573b);return _0xdf1911[_0x897d('0x30')]('Content-Range',_0x9b7799+'-'+_0x34c9c4+'/'+_0x2427cb)['json'](_0x1bbca0);}return null;};}function patchUpdates(_0x52857f){return function(_0x1bb034){try{jsonpatch['apply'](_0x1bb034,_0x52857f,!![]);}catch(_0x186ff8){return BPromise[_0x897d('0x31')](_0x186ff8);}return _0x1bb034['save']();};}function saveUpdates(_0x4a4828,_0x37cb2b){return function(_0x5d6ef2){if(_0x5d6ef2){return _0x5d6ef2[_0x897d('0x32')](_0x4a4828)[_0x897d('0x20')](function(_0x1a8611){return _0x1a8611;});}return null;};}function removeEntity(_0x2ef466,_0x1d7634){return function(_0x119052){if(_0x119052){return _0x119052['destroy']()[_0x897d('0x20')](function(){_0x2ef466[_0x897d('0x2b')](0xcc)[_0x897d('0x33')]();});}};}function handleEntityNotFound(_0x1548e1,_0x24c59d){return function(_0x3e328a){if(!_0x3e328a){_0x1548e1[_0x897d('0x34')](0x194);}return _0x3e328a;};}function handleError(_0x581294,_0x309edf){_0x309edf=_0x309edf||0x1f4;return function(_0x15e98b){logger['error'](_0x15e98b[_0x897d('0x35')]);if(_0x15e98b[_0x897d('0x36')]){delete _0x15e98b[_0x897d('0x36')];}_0x581294[_0x897d('0x2b')](_0x309edf)[_0x897d('0x37')](_0x15e98b);};}exports[_0x897d('0x38')]=function(_0x1435a8,_0x6b4cc8){var _0x13f27e={},_0x2d7a75={},_0x5346d8={'count':0x0,'rows':[]};var _0x566d44=_[_0x897d('0x39')](db[_0x897d('0x3a')][_0x897d('0x3b')],function(_0x16b1e5){return{'name':_0x16b1e5[_0x897d('0x3c')],'type':_0x16b1e5[_0x897d('0x3d')][_0x897d('0x3e')]};});_0x2d7a75[_0x897d('0x3f')]=_[_0x897d('0x39')](_0x566d44,_0x897d('0x36'));_0x2d7a75[_0x897d('0x40')]=_['keys'](_0x1435a8[_0x897d('0x40')]);_0x2d7a75['filters']=_['intersection'](_0x2d7a75[_0x897d('0x3f')],_0x2d7a75[_0x897d('0x40')]);_0x13f27e[_0x897d('0x41')]=_[_0x897d('0x42')](_0x2d7a75[_0x897d('0x3f')],qs['fields'](_0x1435a8[_0x897d('0x40')]['fields']));_0x13f27e[_0x897d('0x41')]=_0x13f27e[_0x897d('0x41')][_0x897d('0x43')]?_0x13f27e[_0x897d('0x41')]:_0x2d7a75['model'];if(!_0x1435a8[_0x897d('0x40')]['hasOwnProperty'](_0x897d('0x44'))){_0x13f27e[_0x897d('0x2f')]=qs[_0x897d('0x2f')](_0x1435a8[_0x897d('0x40')]['limit']);_0x13f27e[_0x897d('0x2e')]=qs[_0x897d('0x2e')](_0x1435a8[_0x897d('0x40')][_0x897d('0x2e')]);}_0x13f27e[_0x897d('0x45')]=qs['sort'](_0x1435a8[_0x897d('0x40')][_0x897d('0x46')]);_0x13f27e[_0x897d('0x47')]=qs[_0x897d('0x48')](_[_0x897d('0x49')](_0x1435a8['query'],_0x2d7a75[_0x897d('0x48')]),_0x566d44);if(_0x1435a8[_0x897d('0x40')][_0x897d('0x4a')]){_0x13f27e[_0x897d('0x47')]=_['merge'](_0x13f27e['where'],{'$or':_[_0x897d('0x39')](_0x566d44,function(_0x364f2b){if(_0x364f2b[_0x897d('0x3d')]!==_0x897d('0x4b')){var _0x1e4ab3={};_0x1e4ab3[_0x364f2b[_0x897d('0x36')]]={'$like':'%'+_0x1435a8[_0x897d('0x40')]['filter']+'%'};return _0x1e4ab3;}})});}_0x13f27e=_['merge']({},_0x13f27e,_0x1435a8[_0x897d('0x4c')]);var _0x1973be={'where':_0x13f27e[_0x897d('0x47')]};return db['FreshsalesAccount'][_0x897d('0x2d')](_0x1973be)[_0x897d('0x20')](function(_0x5230ff){_0x5346d8['count']=_0x5230ff;if(_0x1435a8[_0x897d('0x40')][_0x897d('0x4d')]){_0x13f27e[_0x897d('0x4e')]=[{'all':!![]}];}return db[_0x897d('0x3a')][_0x897d('0x4f')](_0x13f27e);})['then'](function(_0x4cd836){_0x5346d8['rows']=_0x4cd836;return _0x5346d8;})[_0x897d('0x20')](respondWithFilteredResult(_0x6b4cc8,_0x13f27e))[_0x897d('0x50')](handleError(_0x6b4cc8,null));};exports['show']=function(_0x1a1e3e,_0x24924e){var _0x164a42={'raw':![],'where':{'id':_0x1a1e3e[_0x897d('0x51')]['id']}},_0x4fec01={};_0x4fec01['model']=_[_0x897d('0x52')](db[_0x897d('0x3a')][_0x897d('0x3b')]);_0x4fec01[_0x897d('0x40')]=_[_0x897d('0x52')](_0x1a1e3e[_0x897d('0x40')]);_0x4fec01[_0x897d('0x48')]=_[_0x897d('0x42')](_0x4fec01[_0x897d('0x3f')],_0x4fec01[_0x897d('0x40')]);_0x164a42['attributes']=_['intersection'](_0x4fec01[_0x897d('0x3f')],qs[_0x897d('0x53')](_0x1a1e3e[_0x897d('0x40')][_0x897d('0x53')]));_0x164a42[_0x897d('0x41')]=_0x164a42[_0x897d('0x41')][_0x897d('0x43')]?_0x164a42['attributes']:_0x4fec01[_0x897d('0x3f')];if(_0x1a1e3e[_0x897d('0x40')]['includeAll']){_0x164a42[_0x897d('0x4e')]=[{'all':!![]}];}_0x164a42=_[_0x897d('0x54')]({},_0x164a42,_0x1a1e3e[_0x897d('0x4c')]);return db['FreshsalesAccount'][_0x897d('0x55')](_0x164a42)[_0x897d('0x20')](handleEntityNotFound(_0x24924e,null))[_0x897d('0x20')](respondWithResult(_0x24924e,null))[_0x897d('0x50')](handleError(_0x24924e,null));};exports['create']=function(_0x18d6a2,_0x4ba808){return db[_0x897d('0x3a')][_0x897d('0x56')](_0x18d6a2['body'],{})[_0x897d('0x20')](respondWithResult(_0x4ba808,0xc9))[_0x897d('0x50')](handleError(_0x4ba808,null));};exports['update']=function(_0xf84546,_0x386bfc){if(_0xf84546[_0x897d('0x57')]['id']){delete _0xf84546[_0x897d('0x57')]['id'];}return db[_0x897d('0x3a')][_0x897d('0x55')]({'where':{'id':_0xf84546[_0x897d('0x51')]['id']}})[_0x897d('0x20')](handleEntityNotFound(_0x386bfc,null))[_0x897d('0x20')](saveUpdates(_0xf84546[_0x897d('0x57')],null))[_0x897d('0x20')](respondWithResult(_0x386bfc,null))[_0x897d('0x50')](handleError(_0x386bfc,null));};exports[_0x897d('0x58')]=function(_0x454b35,_0x45aed2){return db[_0x897d('0x3a')][_0x897d('0x55')]({'where':{'id':_0x454b35['params']['id']}})[_0x897d('0x20')](handleEntityNotFound(_0x45aed2,null))[_0x897d('0x20')](removeEntity(_0x45aed2,null))[_0x897d('0x50')](handleError(_0x45aed2,null));};exports[_0x897d('0x59')]=function(_0x225708,_0x4c0841,_0x11e4a0){var _0x39a333={};var _0xdd9848={};var _0x15ffcc;var _0x25ce53;return db[_0x897d('0x3a')][_0x897d('0x5a')]({'where':{'id':_0x225708[_0x897d('0x51')]['id']}})['then'](handleEntityNotFound(_0x4c0841,null))['then'](function(_0x41454d){if(_0x41454d){_0x15ffcc=_0x41454d;_0xdd9848['model']=_[_0x897d('0x52')](db[_0x897d('0x5b')]['rawAttributes']);_0xdd9848[_0x897d('0x40')]=_[_0x897d('0x52')](_0x225708[_0x897d('0x40')]);_0xdd9848['filters']=_['intersection'](_0xdd9848[_0x897d('0x3f')],_0xdd9848[_0x897d('0x40')]);_0x39a333[_0x897d('0x41')]=_[_0x897d('0x42')](_0xdd9848[_0x897d('0x3f')],qs['fields'](_0x225708[_0x897d('0x40')][_0x897d('0x53')]));_0x39a333[_0x897d('0x41')]=_0x39a333[_0x897d('0x41')][_0x897d('0x43')]?_0x39a333['attributes']:_0xdd9848['model'];_0x39a333[_0x897d('0x45')]=qs['sort'](_0x225708[_0x897d('0x40')][_0x897d('0x46')]);_0x39a333[_0x897d('0x47')]=qs[_0x897d('0x48')](_[_0x897d('0x49')](_0x225708[_0x897d('0x40')],_0xdd9848[_0x897d('0x48')]));if(_0x225708[_0x897d('0x40')][_0x897d('0x4a')]){_0x39a333[_0x897d('0x47')]=_[_0x897d('0x54')](_0x39a333['where'],{'$or':_['map'](_0x39a333[_0x897d('0x41')],function(_0x283c4d){var _0x327abc={};_0x327abc[_0x283c4d]={'$like':'%'+_0x225708[_0x897d('0x40')][_0x897d('0x4a')]+'%'};return _0x327abc;})});}_0x39a333=_[_0x897d('0x54')]({},_0x39a333,_0x225708[_0x897d('0x4c')]);return _0x15ffcc['getConfigurations'](_0x39a333);}})[_0x897d('0x20')](function(_0x1a79cf){if(_0x1a79cf){_0x25ce53=_0x1a79cf[_0x897d('0x43')];if(!_0x225708[_0x897d('0x40')][_0x897d('0x5c')](_0x897d('0x44'))){_0x39a333['limit']=qs['limit'](_0x225708['query'][_0x897d('0x2f')]);_0x39a333[_0x897d('0x2e')]=qs[_0x897d('0x2e')](_0x225708[_0x897d('0x40')][_0x897d('0x2e')]);}return _0x15ffcc[_0x897d('0x59')](_0x39a333);}})['then'](function(_0x43e214){if(_0x43e214){return _0x43e214?{'count':_0x25ce53,'rows':_0x43e214}:null;}})[_0x897d('0x20')](respondWithResult(_0x4c0841,null))[_0x897d('0x50')](handleError(_0x4c0841,null));};exports[_0x897d('0x5d')]=function(_0xa80b9b,_0x2cc83a,_0x424b96){if(_0xa80b9b[_0x897d('0x57')]['id']){delete _0xa80b9b[_0x897d('0x57')]['id'];}return db[_0x897d('0x3a')][_0x897d('0x5a')]({'where':{'id':_0xa80b9b[_0x897d('0x51')]['id']}})['then'](handleEntityNotFound(_0x2cc83a,null))[_0x897d('0x20')](function(_0x669406){if(_0x669406){_0xa80b9b[_0x897d('0x57')][_0x897d('0x5e')]=_0x669406['id'];_0xa80b9b[_0x897d('0x57')][_0x897d('0x5f')]=integrations[_0x897d('0x60')](_0xa80b9b['body']['channel'],_0xa80b9b[_0x897d('0x57')][_0x897d('0x3d')]);_0xa80b9b[_0x897d('0x57')][_0x897d('0x61')]=integrations['getDescriptions'](_0xa80b9b['body'][_0x897d('0x62')],_0xa80b9b['body']['type']);return db[_0x897d('0x5b')]['create'](_0xa80b9b[_0x897d('0x57')],{'include':[{'model':db['FreshsalesField'],'as':_0x897d('0x5f')},{'model':db[_0x897d('0x63')],'as':'Descriptions'}]});}return null;})[_0x897d('0x20')](respondWithResult(_0x2cc83a,null))[_0x897d('0x50')](handleError(_0x2cc83a,null));};exports[_0x897d('0x64')]=function(_0x3084fb,_0x8f48c2,_0x5436f3){var _0x203151='';var _0x3c3fa5='';return db[_0x897d('0x3a')]['findOne']({'where':{'id':_0x3084fb[_0x897d('0x51')]['id']},'attributes':['id',_0x897d('0x65'),_0x897d('0x66'),'apiKey']})[_0x897d('0x20')](handleEntityNotFound(_0x8f48c2,null))[_0x897d('0x20')](function(_0x2bb0be){if(_0x2bb0be){_0x3c3fa5=_0x2bb0be['username'];_0x203151=_0x2bb0be['remoteUri'];var _0x58da62=_0x2bb0be[_0x897d('0x66')][_0x897d('0x67')](-0x1);if(_0x58da62==='/'){_0x203151=_0x203151[_0x897d('0x68')](0x0,_0x203151[_0x897d('0x69')](_0x58da62));}return rp({'method':'GET','uri':util[_0x897d('0x6a')](_0x897d('0x6b'),_0x203151,_0x897d('0x6c')),'headers':{'Authorization':_0x897d('0x6d')+_0x2bb0be[_0x897d('0x6e')]},'json':!![]});}})[_0x897d('0x20')](function(_0x17fcdb){if(_0x17fcdb){var _0x3ea16e=_0x17fcdb['users'];var _0x57ca61=![];var _0x305667=null;for(_0x305667=0x0;_0x305667<_0x3ea16e[_0x897d('0x43')];_0x305667++){if(_0x3ea16e[_0x305667][_0x897d('0x6f')]===_0x3c3fa5){_0x57ca61=!![];}}if(_0x57ca61){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x897d('0x70')});}}})[_0x897d('0x20')](respondWithResult(_0x8f48c2,null))[_0x897d('0x50')](function(_0xc20a78){var _0x510f74=_0x3084fb[_0x897d('0x40')][_0x897d('0x71')]?0x1f4:_0xc20a78[_0x897d('0x72')]||0x1f4;logger[_0x897d('0x26')]('getFields,\x20%s,\x20%s,\x20%s',_0x897d('0x64'),_0x510f74,JSON[_0x897d('0x25')](_0xc20a78));delete _0xc20a78[_0x897d('0x36')];if(_0x510f74===0x191){_0x510f74=0x190;}_0x8f48c2[_0x897d('0x2b')](_0x510f74)['send'](_0x3084fb[_0x897d('0x40')][_0x897d('0x71')]?{'message':_0x897d('0x73'),'statusCode':_0xc20a78[_0x897d('0x72')]}:_0xc20a78);});};