Built motion from commit (unavailable).|2.5.16
[motion2.git] / server / api / squareProject / squareProject.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 _0x27ba=['ejs','lodash','squel','crypto','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','register','status','end','json','count','limit','apply','reject','save','update','then','destroy','get','UserProfileResource','sendStatus','error','stack','name','send','index','map','SquareProject','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','nolimit','offset','order','sort','where','merge','VIRTUAL','filter','options','includeAll','include','findAll','catch','show','params','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','addUsers','ids','omit','removeUsers','isArray','emit','userSquareProject:remove','getUsers','findOne','User','pick','hasOwnProperty','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv'];(function(_0x49ee50,_0x2731b7){var _0x60c9b7=function(_0x54f448){while(--_0x54f448){_0x49ee50['push'](_0x49ee50['shift']());}};_0x60c9b7(++_0x2731b7);}(_0x27ba,0x184));var _0xa27b=function(_0x91cfe2,_0x5302ed){_0x91cfe2=_0x91cfe2-0x0;var _0x5e3374=_0x27ba[_0x91cfe2];return _0x5e3374;};'use strict';var pdf=require(_0xa27b('0x0'));var emlformat=require(_0xa27b('0x1'));var rimraf=require(_0xa27b('0x2'));var zipdir=require(_0xa27b('0x3'));var jsonpatch=require(_0xa27b('0x4'));var rp=require(_0xa27b('0x5'));var moment=require(_0xa27b('0x6'));var BPromise=require('bluebird');var Mustache=require(_0xa27b('0x7'));var util=require(_0xa27b('0x8'));var path=require(_0xa27b('0x9'));var sox=require(_0xa27b('0xa'));var csv=require(_0xa27b('0xb'));var ejs=require(_0xa27b('0xc'));var fs=require('fs');var _=require(_0xa27b('0xd'));var squel=require(_0xa27b('0xe'));var crypto=require(_0xa27b('0xf'));var jsforce=require('jsforce');var deskjs=require(_0xa27b('0x10'));var toCsv=require(_0xa27b('0xb'));var querystring=require('querystring');var Papa=require(_0xa27b('0x11'));var Redis=require('ioredis');var authService=require(_0xa27b('0x12'));var qs=require(_0xa27b('0x13'));var as=require(_0xa27b('0x14'));var hardwareService=require(_0xa27b('0x15'));var logger=require(_0xa27b('0x16'))('api');var utils=require(_0xa27b('0x17'));var config=require(_0xa27b('0x18'));var licenseUtil=require(_0xa27b('0x19'));var db=require('../../mysqldb')['db'];config[_0xa27b('0x1a')]=_[_0xa27b('0x1b')](config[_0xa27b('0x1a')],{'host':_0xa27b('0x1c'),'port':0x18eb});var socket=require(_0xa27b('0x1d'))(new Redis(config['redis']));require('./squareProject.socket')[_0xa27b('0x1e')](socket);function respondWithStatusCode(_0x3d20b4,_0x2cbd18){_0x2cbd18=_0x2cbd18||0xcc;return function(_0xaa7627){if(_0xaa7627){return _0x3d20b4['sendStatus'](_0x2cbd18);}return _0x3d20b4[_0xa27b('0x1f')](_0x2cbd18)[_0xa27b('0x20')]();};}function respondWithResult(_0x48743a,_0x436dfd){_0x436dfd=_0x436dfd||0xc8;return function(_0x46959a){if(_0x46959a){return _0x48743a[_0xa27b('0x1f')](_0x436dfd)[_0xa27b('0x21')](_0x46959a);}};}function respondWithFilteredResult(_0x4ba9d4,_0x3dc80b){return function(_0x12864c){if(_0x12864c){var _0x440969=_0x12864c[_0xa27b('0x22')],_0x4bfba7=_0x3dc80b['offset'],_0x202917=_0x3dc80b['offset']+_0x3dc80b[_0xa27b('0x23')],_0xfbab48;if(_0x202917>=_0x440969){_0x202917=_0x440969;_0xfbab48=0xc8;}else{_0xfbab48=0xce;}_0x4ba9d4['status'](_0xfbab48);return _0x4ba9d4['set']('Content-Range',_0x4bfba7+'-'+_0x202917+'/'+_0x440969)['json'](_0x12864c);}return null;};}function patchUpdates(_0x1119af){return function(_0xb219e7){try{jsonpatch[_0xa27b('0x24')](_0xb219e7,_0x1119af,!![]);}catch(_0x321636){return BPromise[_0xa27b('0x25')](_0x321636);}return _0xb219e7[_0xa27b('0x26')]();};}function saveUpdates(_0x251cd8,_0xb49a0){return function(_0xd716e9){if(_0xd716e9){return _0xd716e9[_0xa27b('0x27')](_0x251cd8)[_0xa27b('0x28')](function(_0x282b09){return _0x282b09;});}return null;};}function removeEntity(_0x2a54a6,_0x5b7e51){return function(_0x52f9e1){if(_0x52f9e1){return _0x52f9e1[_0xa27b('0x29')]()[_0xa27b('0x28')](function(){var _0x2168e8=_0x52f9e1[_0xa27b('0x2a')]({'plain':!![]});var _0x55ca1b='SquareProjects';return db[_0xa27b('0x2b')]['destroy']({'where':{'type':_0x55ca1b,'resourceId':_0x2168e8['id']}})[_0xa27b('0x28')](function(){return _0x52f9e1;});})[_0xa27b('0x28')](function(){_0x2a54a6[_0xa27b('0x1f')](0xcc)[_0xa27b('0x20')]();});}};}function handleEntityNotFound(_0x3c1152,_0x247956){return function(_0x1cb27f){if(!_0x1cb27f){_0x3c1152[_0xa27b('0x2c')](0x194);}return _0x1cb27f;};}function handleError(_0x2d49f0,_0x3abd1f){_0x3abd1f=_0x3abd1f||0x1f4;return function(_0x604a07){logger[_0xa27b('0x2d')](_0x604a07[_0xa27b('0x2e')]);if(_0x604a07[_0xa27b('0x2f')]){delete _0x604a07[_0xa27b('0x2f')];}_0x2d49f0['status'](_0x3abd1f)[_0xa27b('0x30')](_0x604a07);};}exports[_0xa27b('0x31')]=function(_0x5b7940,_0x5de58d){var _0x23fe6a={},_0x244583={},_0x119f4d={'count':0x0,'rows':[]};var _0x20aa2c=_[_0xa27b('0x32')](db[_0xa27b('0x33')][_0xa27b('0x34')],function(_0xf0ee1){return{'name':_0xf0ee1[_0xa27b('0x35')],'type':_0xf0ee1[_0xa27b('0x36')][_0xa27b('0x37')]};});_0x244583['model']=_[_0xa27b('0x32')](_0x20aa2c,_0xa27b('0x2f'));_0x244583[_0xa27b('0x38')]=_[_0xa27b('0x39')](_0x5b7940[_0xa27b('0x38')]);_0x244583[_0xa27b('0x3a')]=_[_0xa27b('0x3b')](_0x244583[_0xa27b('0x3c')],_0x244583[_0xa27b('0x38')]);_0x23fe6a[_0xa27b('0x3d')]=_[_0xa27b('0x3b')](_0x244583[_0xa27b('0x3c')],qs[_0xa27b('0x3e')](_0x5b7940[_0xa27b('0x38')][_0xa27b('0x3e')]));_0x23fe6a[_0xa27b('0x3d')]=_0x23fe6a[_0xa27b('0x3d')][_0xa27b('0x3f')]?_0x23fe6a[_0xa27b('0x3d')]:_0x244583[_0xa27b('0x3c')];if(!_0x5b7940[_0xa27b('0x38')]['hasOwnProperty'](_0xa27b('0x40'))){_0x23fe6a[_0xa27b('0x23')]=qs[_0xa27b('0x23')](_0x5b7940[_0xa27b('0x38')][_0xa27b('0x23')]);_0x23fe6a[_0xa27b('0x41')]=qs[_0xa27b('0x41')](_0x5b7940[_0xa27b('0x38')][_0xa27b('0x41')]);}_0x23fe6a[_0xa27b('0x42')]=qs['sort'](_0x5b7940['query'][_0xa27b('0x43')]);_0x23fe6a[_0xa27b('0x44')]=qs[_0xa27b('0x3a')](_['pick'](_0x5b7940[_0xa27b('0x38')],_0x244583[_0xa27b('0x3a')]),_0x20aa2c);if(_0x5b7940[_0xa27b('0x38')]['filter']){_0x23fe6a[_0xa27b('0x44')]=_[_0xa27b('0x45')](_0x23fe6a[_0xa27b('0x44')],{'$or':_[_0xa27b('0x32')](_0x20aa2c,function(_0x81393b){if(_0x81393b[_0xa27b('0x36')]!==_0xa27b('0x46')){var _0x4597ba={};_0x4597ba[_0x81393b['name']]={'$like':'%'+_0x5b7940[_0xa27b('0x38')][_0xa27b('0x47')]+'%'};return _0x4597ba;}})});}_0x23fe6a=_['merge']({},_0x23fe6a,_0x5b7940[_0xa27b('0x48')]);var _0x1de020={'where':_0x23fe6a[_0xa27b('0x44')]};return db[_0xa27b('0x33')][_0xa27b('0x22')](_0x1de020)[_0xa27b('0x28')](function(_0x1bb910){_0x119f4d[_0xa27b('0x22')]=_0x1bb910;if(_0x5b7940[_0xa27b('0x38')][_0xa27b('0x49')]){_0x23fe6a[_0xa27b('0x4a')]=[{'all':!![]}];}return db['SquareProject'][_0xa27b('0x4b')](_0x23fe6a);})['then'](function(_0x3da10c){_0x119f4d['rows']=_0x3da10c;return _0x119f4d;})[_0xa27b('0x28')](respondWithFilteredResult(_0x5de58d,_0x23fe6a))[_0xa27b('0x4c')](handleError(_0x5de58d,null));};exports[_0xa27b('0x4d')]=function(_0x14029b,_0x149938){var _0x4fdb58={'raw':![],'where':{'id':_0x14029b[_0xa27b('0x4e')]['id']}},_0x3ce45a={};_0x3ce45a[_0xa27b('0x3c')]=_[_0xa27b('0x39')](db['SquareProject']['rawAttributes']);_0x3ce45a[_0xa27b('0x38')]=_[_0xa27b('0x39')](_0x14029b['query']);_0x3ce45a[_0xa27b('0x3a')]=_['intersection'](_0x3ce45a[_0xa27b('0x3c')],_0x3ce45a[_0xa27b('0x38')]);_0x4fdb58['attributes']=_[_0xa27b('0x3b')](_0x3ce45a['model'],qs[_0xa27b('0x3e')](_0x14029b[_0xa27b('0x38')][_0xa27b('0x3e')]));_0x4fdb58[_0xa27b('0x3d')]=_0x4fdb58['attributes'][_0xa27b('0x3f')]?_0x4fdb58['attributes']:_0x3ce45a[_0xa27b('0x3c')];if(_0x14029b['query'][_0xa27b('0x49')]){_0x4fdb58['include']=[{'all':!![]}];}_0x4fdb58=_[_0xa27b('0x45')]({},_0x4fdb58,_0x14029b[_0xa27b('0x48')]);return db[_0xa27b('0x33')][_0xa27b('0x4f')](_0x4fdb58)['then'](handleEntityNotFound(_0x149938,null))[_0xa27b('0x28')](respondWithResult(_0x149938,null))[_0xa27b('0x4c')](handleError(_0x149938,null));};exports[_0xa27b('0x50')]=function(_0x3e0673,_0x2c2988){return db['SquareProject']['create'](_0x3e0673['body'],{})['then'](function(_0x4cf4b8){var _0x57aa38=_0x3e0673[_0xa27b('0x51')][_0xa27b('0x2a')]({'plain':!![]});if(!_0x57aa38)throw new Error(_0xa27b('0x52'));if(_0x57aa38[_0xa27b('0x53')]==='user'){var _0x17587e=_0x4cf4b8[_0xa27b('0x2a')]({'plain':!![]});var _0x55d112='SquareProjects';return db[_0xa27b('0x54')][_0xa27b('0x4f')]({'where':{'name':_0x55d112,'userProfileId':_0x57aa38[_0xa27b('0x55')]},'raw':!![]})[_0xa27b('0x28')](function(_0x22418f){if(_0x22418f&&_0x22418f['autoAssociation']===0x0){return db[_0xa27b('0x2b')][_0xa27b('0x50')]({'name':_0x17587e['name'],'resourceId':_0x17587e['id'],'type':_0x22418f['name'],'sectionId':_0x22418f['id']},{})['then'](function(){return _0x4cf4b8;});}else{return _0x4cf4b8;}})['catch'](function(_0x36e54a){logger['error'](_0xa27b('0x56'),_0x36e54a);throw _0x36e54a;});}return _0x4cf4b8;})[_0xa27b('0x28')](respondWithResult(_0x2c2988,0xc9))['catch'](handleError(_0x2c2988,null));};exports[_0xa27b('0x27')]=function(_0x3d1e0e,_0x1e8700){if(_0x3d1e0e[_0xa27b('0x57')]['id']){delete _0x3d1e0e[_0xa27b('0x57')]['id'];}return db[_0xa27b('0x33')][_0xa27b('0x4f')]({'where':{'id':_0x3d1e0e[_0xa27b('0x4e')]['id']}})['then'](handleEntityNotFound(_0x1e8700,null))['then'](saveUpdates(_0x3d1e0e[_0xa27b('0x57')],null))['then'](respondWithResult(_0x1e8700,null))[_0xa27b('0x4c')](handleError(_0x1e8700,null));};exports[_0xa27b('0x29')]=function(_0x38b043,_0x5e1220){return db[_0xa27b('0x33')][_0xa27b('0x4f')]({'where':{'id':_0x38b043[_0xa27b('0x4e')]['id']}})[_0xa27b('0x28')](handleEntityNotFound(_0x5e1220,null))[_0xa27b('0x28')](removeEntity(_0x5e1220,null))['catch'](handleError(_0x5e1220,null));};exports[_0xa27b('0x58')]=function(_0x1a9bae,_0x5bbef,_0x2d4bf9){return db[_0xa27b('0x33')]['find']({'where':{'id':_0x1a9bae[_0xa27b('0x4e')]['id']}})['then'](handleEntityNotFound(_0x5bbef,null))[_0xa27b('0x28')](function(_0x1e2273){if(_0x1e2273){return _0x1e2273[_0xa27b('0x58')](_0x1a9bae['body'][_0xa27b('0x59')],_[_0xa27b('0x5a')](_0x1a9bae['body'],['ids','id'])||{});}})['then'](respondWithResult(_0x5bbef,null))[_0xa27b('0x4c')](handleError(_0x5bbef,null));};exports[_0xa27b('0x5b')]=function(_0x43e57a,_0x5e6500,_0x26d1de){return db[_0xa27b('0x33')][_0xa27b('0x4f')]({'where':{'id':_0x43e57a[_0xa27b('0x4e')]['id']}})[_0xa27b('0x28')](handleEntityNotFound(_0x5e6500,null))[_0xa27b('0x28')](function(_0x205c27){if(_0x205c27){return _0x205c27['removeUsers'](_0x43e57a[_0xa27b('0x38')][_0xa27b('0x59')])['then'](function(){if(_[_0xa27b('0x5c')](_0x43e57a[_0xa27b('0x38')][_0xa27b('0x59')])){for(var _0x5c9c2d=0x0;_0x5c9c2d<_0x43e57a[_0xa27b('0x38')]['ids'][_0xa27b('0x3f')];_0x5c9c2d+=0x1){socket[_0xa27b('0x5d')](_0xa27b('0x5e'),{'UserId':Number(_0x43e57a[_0xa27b('0x38')]['ids'][_0x5c9c2d]),'SquareProjectId':Number(_0x43e57a[_0xa27b('0x4e')]['id'])});}}else{socket[_0xa27b('0x5d')]('userSquareProject:remove',{'UserId':Number(_0x43e57a[_0xa27b('0x38')][_0xa27b('0x59')]),'SquareProjectId':Number(_0x43e57a['params']['id'])});}});}})[_0xa27b('0x28')](respondWithStatusCode(_0x5e6500,null))[_0xa27b('0x4c')](handleError(_0x5e6500,null));};exports[_0xa27b('0x5f')]=function(_0x249a95,_0x45c651,_0x408f6f){var _0x29988c={};var _0x361a94={};var _0x567942;var _0x57b023;return db['SquareProject'][_0xa27b('0x60')]({'where':{'id':_0x249a95[_0xa27b('0x4e')]['id']}})[_0xa27b('0x28')](handleEntityNotFound(_0x45c651,null))[_0xa27b('0x28')](function(_0x681c1c){if(_0x681c1c){_0x567942=_0x681c1c;_0x361a94[_0xa27b('0x3c')]=_['keys'](db[_0xa27b('0x61')][_0xa27b('0x34')]);_0x361a94[_0xa27b('0x38')]=_[_0xa27b('0x39')](_0x249a95[_0xa27b('0x38')]);_0x361a94['filters']=_[_0xa27b('0x3b')](_0x361a94[_0xa27b('0x3c')],_0x361a94['query']);_0x29988c['attributes']=_[_0xa27b('0x3b')](_0x361a94[_0xa27b('0x3c')],qs[_0xa27b('0x3e')](_0x249a95[_0xa27b('0x38')][_0xa27b('0x3e')]));_0x29988c['attributes']=_0x29988c[_0xa27b('0x3d')][_0xa27b('0x3f')]?_0x29988c[_0xa27b('0x3d')]:_0x361a94[_0xa27b('0x3c')];_0x29988c[_0xa27b('0x42')]=qs[_0xa27b('0x43')](_0x249a95['query']['sort']);_0x29988c['where']=qs['filters'](_[_0xa27b('0x62')](_0x249a95[_0xa27b('0x38')],_0x361a94[_0xa27b('0x3a')]));if(_0x249a95['query']['filter']){_0x29988c['where']=_[_0xa27b('0x45')](_0x29988c[_0xa27b('0x44')],{'$or':_[_0xa27b('0x32')](_0x29988c['attributes'],function(_0x537ede){var _0x5a32cf={};_0x5a32cf[_0x537ede]={'$like':'%'+_0x249a95['query'][_0xa27b('0x47')]+'%'};return _0x5a32cf;})});}_0x29988c=_[_0xa27b('0x45')]({},_0x29988c,_0x249a95[_0xa27b('0x48')]);return _0x567942[_0xa27b('0x5f')](_0x29988c);}})[_0xa27b('0x28')](function(_0x30f9c3){if(_0x30f9c3){_0x57b023=_0x30f9c3[_0xa27b('0x3f')];if(!_0x249a95[_0xa27b('0x38')][_0xa27b('0x63')]('nolimit')){_0x29988c[_0xa27b('0x23')]=qs[_0xa27b('0x23')](_0x249a95['query'][_0xa27b('0x23')]);_0x29988c[_0xa27b('0x41')]=qs['offset'](_0x249a95[_0xa27b('0x38')][_0xa27b('0x41')]);}return _0x567942[_0xa27b('0x5f')](_0x29988c);}})[_0xa27b('0x28')](function(_0x3c86d1){if(_0x3c86d1){return _0x3c86d1?{'count':_0x57b023,'rows':_0x3c86d1}:null;}})[_0xa27b('0x28')](respondWithResult(_0x45c651,null))[_0xa27b('0x4c')](handleError(_0x45c651,null));};