f4e514402007bbbb28af015fb15ee9f3d5a8af66
[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 _0x86ce=['rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','redis','defaults','./squareProject.socket','register','sendStatus','status','end','json','count','offset','limit','Content-Range','reject','save','destroy','then','get','SquareProjects','UserProfileResource','send','index','map','SquareProject','rawAttributes','fieldName','type','key','name','query','filters','model','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','keys','find','create','user','role','UserProfileSection','userProfileId','autoAssociation','error','update','body','params','addUsers','ids','omit','removeUsers','isArray','length','emit','userSquareProject:remove','getUsers','findOne','User','eml-format'];(function(_0x4cb095,_0x58da07){var _0x2b565d=function(_0x4d41b3){while(--_0x4d41b3){_0x4cb095['push'](_0x4cb095['shift']());}};_0x2b565d(++_0x58da07);}(_0x86ce,0x11f));var _0xe86c=function(_0x594670,_0x4b9fdd){_0x594670=_0x594670-0x0;var _0x36a5b7=_0x86ce[_0x594670];return _0x36a5b7;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xe86c('0x0'));var rimraf=require(_0xe86c('0x1'));var zipdir=require(_0xe86c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe86c('0x3'));var moment=require(_0xe86c('0x4'));var BPromise=require(_0xe86c('0x5'));var Mustache=require(_0xe86c('0x6'));var util=require('util');var path=require(_0xe86c('0x7'));var sox=require(_0xe86c('0x8'));var csv=require(_0xe86c('0x9'));var ejs=require(_0xe86c('0xa'));var fs=require('fs');var _=require(_0xe86c('0xb'));var squel=require('squel');var crypto=require(_0xe86c('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xe86c('0xd'));var toCsv=require(_0xe86c('0x9'));var querystring=require(_0xe86c('0xe'));var Papa=require(_0xe86c('0xf'));var Redis=require(_0xe86c('0x10'));var authService=require(_0xe86c('0x11'));var qs=require(_0xe86c('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe86c('0x13'));var logger=require(_0xe86c('0x14'))(_0xe86c('0x15'));var utils=require('../../config/utils');var config=require(_0xe86c('0x16'));var db=require('../../mysqldb')['db'];config[_0xe86c('0x17')]=_[_0xe86c('0x18')](config[_0xe86c('0x17')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xe86c('0x17')]));require(_0xe86c('0x19'))[_0xe86c('0x1a')](socket);function respondWithStatusCode(_0x1865d6,_0x1c2f99){_0x1c2f99=_0x1c2f99||0xcc;return function(_0xa7d77f){if(_0xa7d77f){return _0x1865d6[_0xe86c('0x1b')](_0x1c2f99);}return _0x1865d6[_0xe86c('0x1c')](_0x1c2f99)[_0xe86c('0x1d')]();};}function respondWithResult(_0xc532be,_0x32a20e){_0x32a20e=_0x32a20e||0xc8;return function(_0x121070){if(_0x121070){return _0xc532be[_0xe86c('0x1c')](_0x32a20e)[_0xe86c('0x1e')](_0x121070);}};}function respondWithFilteredResult(_0x296379,_0x2a9df2){return function(_0x4e6d82){if(_0x4e6d82){var _0xefe3e3=_0x4e6d82[_0xe86c('0x1f')],_0x20db18=_0x2a9df2[_0xe86c('0x20')],_0x5b6fd7=_0x2a9df2[_0xe86c('0x20')]+_0x2a9df2[_0xe86c('0x21')],_0x3558d4;if(_0x5b6fd7>=_0xefe3e3){_0x5b6fd7=_0xefe3e3;_0x3558d4=0xc8;}else{_0x3558d4=0xce;}_0x296379[_0xe86c('0x1c')](_0x3558d4);return _0x296379['set'](_0xe86c('0x22'),_0x20db18+'-'+_0x5b6fd7+'/'+_0xefe3e3)[_0xe86c('0x1e')](_0x4e6d82);}return null;};}function patchUpdates(_0x41cde5){return function(_0x7b30f){try{jsonpatch['apply'](_0x7b30f,_0x41cde5,!![]);}catch(_0x4a4cae){return BPromise[_0xe86c('0x23')](_0x4a4cae);}return _0x7b30f[_0xe86c('0x24')]();};}function saveUpdates(_0x28c95c,_0x4c872c){return function(_0x2ef177){if(_0x2ef177){return _0x2ef177['update'](_0x28c95c)['then'](function(_0x4f03e0){return _0x4f03e0;});}return null;};}function removeEntity(_0x336573,_0x1bfe4c){return function(_0x22615b){if(_0x22615b){return _0x22615b[_0xe86c('0x25')]()[_0xe86c('0x26')](function(){var _0x4a99b2=_0x22615b[_0xe86c('0x27')]({'plain':!![]});var _0x1a9f43=_0xe86c('0x28');return db[_0xe86c('0x29')][_0xe86c('0x25')]({'where':{'type':_0x1a9f43,'resourceId':_0x4a99b2['id']}})[_0xe86c('0x26')](function(){return _0x22615b;});})['then'](function(){_0x336573[_0xe86c('0x1c')](0xcc)[_0xe86c('0x1d')]();});}};}function handleEntityNotFound(_0x17afa2,_0x1ba0da){return function(_0x43ed20){if(!_0x43ed20){_0x17afa2[_0xe86c('0x1b')](0x194);}return _0x43ed20;};}function handleError(_0x3cd23c,_0x4b7ef9){_0x4b7ef9=_0x4b7ef9||0x1f4;return function(_0xb54965){logger['error'](_0xb54965['stack']);if(_0xb54965['name']){delete _0xb54965['name'];}_0x3cd23c[_0xe86c('0x1c')](_0x4b7ef9)[_0xe86c('0x2a')](_0xb54965);};}exports[_0xe86c('0x2b')]=function(_0x22325a,_0x268d82){var _0x30bebb={},_0x4ca48c={},_0x51fba6={'count':0x0,'rows':[]};var _0x4c5bb9=_[_0xe86c('0x2c')](db[_0xe86c('0x2d')][_0xe86c('0x2e')],function(_0x2da184){return{'name':_0x2da184[_0xe86c('0x2f')],'type':_0x2da184[_0xe86c('0x30')][_0xe86c('0x31')]};});_0x4ca48c['model']=_[_0xe86c('0x2c')](_0x4c5bb9,_0xe86c('0x32'));_0x4ca48c[_0xe86c('0x33')]=_['keys'](_0x22325a[_0xe86c('0x33')]);_0x4ca48c[_0xe86c('0x34')]=_['intersection'](_0x4ca48c[_0xe86c('0x35')],_0x4ca48c['query']);_0x30bebb[_0xe86c('0x36')]=_[_0xe86c('0x37')](_0x4ca48c['model'],qs['fields'](_0x22325a[_0xe86c('0x33')][_0xe86c('0x38')]));_0x30bebb[_0xe86c('0x36')]=_0x30bebb['attributes']['length']?_0x30bebb[_0xe86c('0x36')]:_0x4ca48c['model'];if(!_0x22325a[_0xe86c('0x33')][_0xe86c('0x39')](_0xe86c('0x3a'))){_0x30bebb[_0xe86c('0x21')]=qs[_0xe86c('0x21')](_0x22325a[_0xe86c('0x33')][_0xe86c('0x21')]);_0x30bebb[_0xe86c('0x20')]=qs['offset'](_0x22325a['query'][_0xe86c('0x20')]);}_0x30bebb[_0xe86c('0x3b')]=qs[_0xe86c('0x3c')](_0x22325a[_0xe86c('0x33')][_0xe86c('0x3c')]);_0x30bebb[_0xe86c('0x3d')]=qs[_0xe86c('0x34')](_[_0xe86c('0x3e')](_0x22325a[_0xe86c('0x33')],_0x4ca48c[_0xe86c('0x34')]),_0x4c5bb9);if(_0x22325a[_0xe86c('0x33')][_0xe86c('0x3f')]){_0x30bebb[_0xe86c('0x3d')]=_['merge'](_0x30bebb['where'],{'$or':_[_0xe86c('0x2c')](_0x4c5bb9,function(_0x39ae5c){if(_0x39ae5c[_0xe86c('0x30')]!==_0xe86c('0x40')){var _0x1d8710={};_0x1d8710[_0x39ae5c[_0xe86c('0x32')]]={'$like':'%'+_0x22325a['query'][_0xe86c('0x3f')]+'%'};return _0x1d8710;}})});}_0x30bebb=_[_0xe86c('0x41')]({},_0x30bebb,_0x22325a[_0xe86c('0x42')]);var _0x45b4f3={'where':_0x30bebb['where']};return db[_0xe86c('0x2d')][_0xe86c('0x1f')](_0x45b4f3)[_0xe86c('0x26')](function(_0x3675b7){_0x51fba6[_0xe86c('0x1f')]=_0x3675b7;if(_0x22325a[_0xe86c('0x33')][_0xe86c('0x43')]){_0x30bebb[_0xe86c('0x44')]=[{'all':!![]}];}return db[_0xe86c('0x2d')][_0xe86c('0x45')](_0x30bebb);})[_0xe86c('0x26')](function(_0x34be90){_0x51fba6[_0xe86c('0x46')]=_0x34be90;return _0x51fba6;})['then'](respondWithFilteredResult(_0x268d82,_0x30bebb))[_0xe86c('0x47')](handleError(_0x268d82,null));};exports[_0xe86c('0x48')]=function(_0x5322bf,_0x1fdb75){var _0x2dd850={'raw':![],'where':{'id':_0x5322bf['params']['id']}},_0x53a1ff={};_0x53a1ff[_0xe86c('0x35')]=_['keys'](db[_0xe86c('0x2d')]['rawAttributes']);_0x53a1ff[_0xe86c('0x33')]=_[_0xe86c('0x49')](_0x5322bf[_0xe86c('0x33')]);_0x53a1ff['filters']=_['intersection'](_0x53a1ff['model'],_0x53a1ff[_0xe86c('0x33')]);_0x2dd850['attributes']=_[_0xe86c('0x37')](_0x53a1ff['model'],qs[_0xe86c('0x38')](_0x5322bf['query'][_0xe86c('0x38')]));_0x2dd850[_0xe86c('0x36')]=_0x2dd850[_0xe86c('0x36')]['length']?_0x2dd850[_0xe86c('0x36')]:_0x53a1ff[_0xe86c('0x35')];if(_0x5322bf[_0xe86c('0x33')][_0xe86c('0x43')]){_0x2dd850['include']=[{'all':!![]}];}_0x2dd850=_['merge']({},_0x2dd850,_0x5322bf['options']);return db['SquareProject'][_0xe86c('0x4a')](_0x2dd850)[_0xe86c('0x26')](handleEntityNotFound(_0x1fdb75,null))[_0xe86c('0x26')](respondWithResult(_0x1fdb75,null))[_0xe86c('0x47')](handleError(_0x1fdb75,null));};exports[_0xe86c('0x4b')]=function(_0x1a5ffa,_0x33fae7){return db[_0xe86c('0x2d')][_0xe86c('0x4b')](_0x1a5ffa['body'],{})[_0xe86c('0x26')](function(_0x2bc3a3){var _0x2308f8=_0x1a5ffa[_0xe86c('0x4c')][_0xe86c('0x27')]({'plain':!![]});if(!_0x2308f8)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2308f8[_0xe86c('0x4d')]==='user'){var _0x49ff6a=_0x2bc3a3[_0xe86c('0x27')]({'plain':!![]});var _0x3ec0bc=_0xe86c('0x28');return db[_0xe86c('0x4e')]['find']({'where':{'name':_0x3ec0bc,'userProfileId':_0x2308f8[_0xe86c('0x4f')]},'raw':!![]})['then'](function(_0x687286){if(_0x687286&&_0x687286[_0xe86c('0x50')]===0x0){return db[_0xe86c('0x29')][_0xe86c('0x4b')]({'name':_0x49ff6a[_0xe86c('0x32')],'resourceId':_0x49ff6a['id'],'type':_0x687286[_0xe86c('0x32')],'sectionId':_0x687286['id']},{})[_0xe86c('0x26')](function(){return _0x2bc3a3;});}else{return _0x2bc3a3;}})[_0xe86c('0x47')](function(_0x1a709e){logger[_0xe86c('0x51')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1a709e);throw _0x1a709e;});}return _0x2bc3a3;})[_0xe86c('0x26')](respondWithResult(_0x33fae7,0xc9))[_0xe86c('0x47')](handleError(_0x33fae7,null));};exports[_0xe86c('0x52')]=function(_0x6839c6,_0x3e3736){if(_0x6839c6[_0xe86c('0x53')]['id']){delete _0x6839c6[_0xe86c('0x53')]['id'];}return db['SquareProject'][_0xe86c('0x4a')]({'where':{'id':_0x6839c6[_0xe86c('0x54')]['id']}})[_0xe86c('0x26')](handleEntityNotFound(_0x3e3736,null))['then'](saveUpdates(_0x6839c6[_0xe86c('0x53')],null))[_0xe86c('0x26')](respondWithResult(_0x3e3736,null))['catch'](handleError(_0x3e3736,null));};exports[_0xe86c('0x25')]=function(_0x2c7c95,_0x2c6d2b){return db[_0xe86c('0x2d')][_0xe86c('0x4a')]({'where':{'id':_0x2c7c95['params']['id']}})[_0xe86c('0x26')](handleEntityNotFound(_0x2c6d2b,null))[_0xe86c('0x26')](removeEntity(_0x2c6d2b,null))[_0xe86c('0x47')](handleError(_0x2c6d2b,null));};exports[_0xe86c('0x55')]=function(_0x182272,_0x5b69b6,_0x46cb03){return db[_0xe86c('0x2d')][_0xe86c('0x4a')]({'where':{'id':_0x182272['params']['id']}})[_0xe86c('0x26')](handleEntityNotFound(_0x5b69b6,null))[_0xe86c('0x26')](function(_0x41b9c0){if(_0x41b9c0){return _0x41b9c0[_0xe86c('0x55')](_0x182272[_0xe86c('0x53')][_0xe86c('0x56')],_[_0xe86c('0x57')](_0x182272[_0xe86c('0x53')],[_0xe86c('0x56'),'id'])||{});}})['then'](respondWithResult(_0x5b69b6,null))[_0xe86c('0x47')](handleError(_0x5b69b6,null));};exports[_0xe86c('0x58')]=function(_0x45d05b,_0x46813c,_0x4b00be){return db[_0xe86c('0x2d')][_0xe86c('0x4a')]({'where':{'id':_0x45d05b[_0xe86c('0x54')]['id']}})[_0xe86c('0x26')](handleEntityNotFound(_0x46813c,null))[_0xe86c('0x26')](function(_0x4e9a1c){if(_0x4e9a1c){return _0x4e9a1c[_0xe86c('0x58')](_0x45d05b[_0xe86c('0x33')]['ids'])[_0xe86c('0x26')](function(){if(_[_0xe86c('0x59')](_0x45d05b[_0xe86c('0x33')][_0xe86c('0x56')])){for(var _0x355322=0x0;_0x355322<_0x45d05b[_0xe86c('0x33')][_0xe86c('0x56')][_0xe86c('0x5a')];_0x355322+=0x1){socket[_0xe86c('0x5b')](_0xe86c('0x5c'),{'UserId':Number(_0x45d05b[_0xe86c('0x33')][_0xe86c('0x56')][_0x355322]),'SquareProjectId':Number(_0x45d05b[_0xe86c('0x54')]['id'])});}}else{socket['emit'](_0xe86c('0x5c'),{'UserId':Number(_0x45d05b['query'][_0xe86c('0x56')]),'SquareProjectId':Number(_0x45d05b['params']['id'])});}});}})['then'](respondWithStatusCode(_0x46813c,null))[_0xe86c('0x47')](handleError(_0x46813c,null));};exports[_0xe86c('0x5d')]=function(_0x5667a6,_0x1fcd9c,_0x16649c){var _0x1ebdcb={};var _0x4187f4={};var _0x5a6aff;var _0x4d66c3;return db[_0xe86c('0x2d')][_0xe86c('0x5e')]({'where':{'id':_0x5667a6['params']['id']}})[_0xe86c('0x26')](handleEntityNotFound(_0x1fcd9c,null))[_0xe86c('0x26')](function(_0x2ec63e){if(_0x2ec63e){_0x5a6aff=_0x2ec63e;_0x4187f4[_0xe86c('0x35')]=_['keys'](db[_0xe86c('0x5f')][_0xe86c('0x2e')]);_0x4187f4[_0xe86c('0x33')]=_['keys'](_0x5667a6['query']);_0x4187f4[_0xe86c('0x34')]=_[_0xe86c('0x37')](_0x4187f4[_0xe86c('0x35')],_0x4187f4['query']);_0x1ebdcb[_0xe86c('0x36')]=_[_0xe86c('0x37')](_0x4187f4[_0xe86c('0x35')],qs[_0xe86c('0x38')](_0x5667a6[_0xe86c('0x33')][_0xe86c('0x38')]));_0x1ebdcb[_0xe86c('0x36')]=_0x1ebdcb[_0xe86c('0x36')][_0xe86c('0x5a')]?_0x1ebdcb[_0xe86c('0x36')]:_0x4187f4[_0xe86c('0x35')];_0x1ebdcb[_0xe86c('0x3b')]=qs[_0xe86c('0x3c')](_0x5667a6[_0xe86c('0x33')][_0xe86c('0x3c')]);_0x1ebdcb[_0xe86c('0x3d')]=qs[_0xe86c('0x34')](_['pick'](_0x5667a6[_0xe86c('0x33')],_0x4187f4[_0xe86c('0x34')]));if(_0x5667a6[_0xe86c('0x33')][_0xe86c('0x3f')]){_0x1ebdcb['where']=_['merge'](_0x1ebdcb['where'],{'$or':_[_0xe86c('0x2c')](_0x1ebdcb[_0xe86c('0x36')],function(_0x3570fa){var _0x53ab66={};_0x53ab66[_0x3570fa]={'$like':'%'+_0x5667a6[_0xe86c('0x33')][_0xe86c('0x3f')]+'%'};return _0x53ab66;})});}_0x1ebdcb=_[_0xe86c('0x41')]({},_0x1ebdcb,_0x5667a6[_0xe86c('0x42')]);return _0x5a6aff[_0xe86c('0x5d')](_0x1ebdcb);}})[_0xe86c('0x26')](function(_0x1a0f3c){if(_0x1a0f3c){_0x4d66c3=_0x1a0f3c[_0xe86c('0x5a')];if(!_0x5667a6[_0xe86c('0x33')][_0xe86c('0x39')]('nolimit')){_0x1ebdcb[_0xe86c('0x21')]=qs[_0xe86c('0x21')](_0x5667a6['query']['limit']);_0x1ebdcb['offset']=qs['offset'](_0x5667a6[_0xe86c('0x33')][_0xe86c('0x20')]);}return _0x5a6aff[_0xe86c('0x5d')](_0x1ebdcb);}})[_0xe86c('0x26')](function(_0x4ff31a){if(_0x4ff31a){return _0x4ff31a?{'count':_0x4d66c3,'rows':_0x4ff31a}:null;}})[_0xe86c('0x26')](respondWithResult(_0x1fcd9c,null))[_0xe86c('0x47')](handleError(_0x1fcd9c,null));};