b18103aa3183a5c4cc90f838a86dae6d772a46fc
[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 _0xaefa=['User','hasOwnProperty','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','defaults','socket.io-emitter','redis','./squareProject.socket','register','sendStatus','status','end','json','undefined','count','offset','set','reject','save','update','then','destroy','get','SquareProjects','stack','name','send','index','map','SquareProject','rawAttributes','fieldName','type','key','model','keys','filters','intersection','query','attributes','fields','length','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','include','create','body','role','user','UserProfileSection','find','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addUsers','omit','ids','removeUsers','userSquareProject:remove','getUsers','findOne'];(function(_0x53c856,_0x394fee){var _0x1f2fdd=function(_0x15a5a0){while(--_0x15a5a0){_0x53c856['push'](_0x53c856['shift']());}};_0x1f2fdd(++_0x394fee);}(_0xaefa,0x12b));var _0xaaef=function(_0x388460,_0x306eea){_0x388460=_0x388460-0x0;var _0xa61b5c=_0xaefa[_0x388460];return _0xa61b5c;};'use strict';var emlformat=require(_0xaaef('0x0'));var rimraf=require(_0xaaef('0x1'));var zipdir=require(_0xaaef('0x2'));var jsonpatch=require(_0xaaef('0x3'));var rp=require(_0xaaef('0x4'));var moment=require(_0xaaef('0x5'));var BPromise=require(_0xaaef('0x6'));var Mustache=require(_0xaaef('0x7'));var util=require(_0xaaef('0x8'));var path=require('path');var sox=require(_0xaaef('0x9'));var csv=require(_0xaaef('0xa'));var ejs=require(_0xaaef('0xb'));var fs=require('fs');var fs_extra=require(_0xaaef('0xc'));var _=require('lodash');var squel=require(_0xaaef('0xd'));var crypto=require(_0xaaef('0xe'));var jsforce=require(_0xaaef('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xaaef('0xa'));var querystring=require('querystring');var Papa=require(_0xaaef('0x10'));var Redis=require(_0xaaef('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xaaef('0x12'));var hardwareService=require(_0xaaef('0x13'));var logger=require(_0xaaef('0x14'))(_0xaaef('0x15'));var utils=require('../../config/utils');var config=require(_0xaaef('0x16'));var licenseUtil=require(_0xaaef('0x17'));var db=require(_0xaaef('0x18'))['db'];config['redis']=_[_0xaaef('0x19')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xaaef('0x1a'))(new Redis(config[_0xaaef('0x1b')]));require(_0xaaef('0x1c'))[_0xaaef('0x1d')](socket);function respondWithStatusCode(_0x5212d3,_0x48b8a5){_0x48b8a5=_0x48b8a5||0xcc;return function(_0x78b712){if(_0x78b712){return _0x5212d3[_0xaaef('0x1e')](_0x48b8a5);}return _0x5212d3[_0xaaef('0x1f')](_0x48b8a5)[_0xaaef('0x20')]();};}function respondWithResult(_0x1ea9a4,_0x28067e){_0x28067e=_0x28067e||0xc8;return function(_0x39fb8a){if(_0x39fb8a){return _0x1ea9a4[_0xaaef('0x1f')](_0x28067e)[_0xaaef('0x21')](_0x39fb8a);}};}function respondWithFilteredResult(_0x4acc29,_0x5db4cc){return function(_0xa6b7ee){if(_0xa6b7ee){var _0x9beeac=typeof _0x5db4cc['offset']===_0xaaef('0x22')&&typeof _0x5db4cc['limit']==='undefined';var _0x11dcda=_0xa6b7ee[_0xaaef('0x23')];var _0x1d71ec=_0x9beeac?0x0:_0x5db4cc[_0xaaef('0x24')];var _0x12aef5=_0x9beeac?_0xa6b7ee[_0xaaef('0x23')]:_0x5db4cc[_0xaaef('0x24')]+_0x5db4cc['limit'];var _0x3b2126;if(_0x12aef5>=_0x11dcda){_0x12aef5=_0x11dcda;_0x3b2126=0xc8;}else{_0x3b2126=0xce;}_0x4acc29[_0xaaef('0x1f')](_0x3b2126);return _0x4acc29[_0xaaef('0x25')]('Content-Range',_0x1d71ec+'-'+_0x12aef5+'/'+_0x11dcda)[_0xaaef('0x21')](_0xa6b7ee);}return null;};}function patchUpdates(_0x6a10e2){return function(_0x3ab4b2){try{jsonpatch['apply'](_0x3ab4b2,_0x6a10e2,!![]);}catch(_0x3e99f6){return BPromise[_0xaaef('0x26')](_0x3e99f6);}return _0x3ab4b2[_0xaaef('0x27')]();};}function saveUpdates(_0x3b6e59,_0x2b8c65){return function(_0x25b702){if(_0x25b702){return _0x25b702[_0xaaef('0x28')](_0x3b6e59)[_0xaaef('0x29')](function(_0x5b66a1){return _0x5b66a1;});}return null;};}function removeEntity(_0x148507,_0x5fae99){return function(_0x33a7e5){if(_0x33a7e5){return _0x33a7e5[_0xaaef('0x2a')]()[_0xaaef('0x29')](function(){var _0x4be3be=_0x33a7e5[_0xaaef('0x2b')]({'plain':!![]});var _0xfcd078=_0xaaef('0x2c');return db['UserProfileResource']['destroy']({'where':{'type':_0xfcd078,'resourceId':_0x4be3be['id']}})[_0xaaef('0x29')](function(){return _0x33a7e5;});})['then'](function(){_0x148507['status'](0xcc)[_0xaaef('0x20')]();});}};}function handleEntityNotFound(_0x1ef22a,_0x27417e){return function(_0x5da338){if(!_0x5da338){_0x1ef22a['sendStatus'](0x194);}return _0x5da338;};}function handleError(_0x2322b6,_0x5d48a5){_0x5d48a5=_0x5d48a5||0x1f4;return function(_0x34cca9){logger['error'](_0x34cca9[_0xaaef('0x2d')]);if(_0x34cca9['name']){delete _0x34cca9[_0xaaef('0x2e')];}_0x2322b6['status'](_0x5d48a5)[_0xaaef('0x2f')](_0x34cca9);};}exports[_0xaaef('0x30')]=function(_0x38eee0,_0x29f824){var _0x3ba005={},_0xb3a8a2={},_0x53c357={'count':0x0,'rows':[]};var _0x3a4530=_[_0xaaef('0x31')](db[_0xaaef('0x32')][_0xaaef('0x33')],function(_0x26f25b){return{'name':_0x26f25b[_0xaaef('0x34')],'type':_0x26f25b[_0xaaef('0x35')][_0xaaef('0x36')]};});_0xb3a8a2[_0xaaef('0x37')]=_['map'](_0x3a4530,_0xaaef('0x2e'));_0xb3a8a2['query']=_[_0xaaef('0x38')](_0x38eee0['query']);_0xb3a8a2[_0xaaef('0x39')]=_[_0xaaef('0x3a')](_0xb3a8a2[_0xaaef('0x37')],_0xb3a8a2[_0xaaef('0x3b')]);_0x3ba005[_0xaaef('0x3c')]=_[_0xaaef('0x3a')](_0xb3a8a2[_0xaaef('0x37')],qs[_0xaaef('0x3d')](_0x38eee0[_0xaaef('0x3b')][_0xaaef('0x3d')]));_0x3ba005[_0xaaef('0x3c')]=_0x3ba005[_0xaaef('0x3c')][_0xaaef('0x3e')]?_0x3ba005['attributes']:_0xb3a8a2[_0xaaef('0x37')];if(!_0x38eee0[_0xaaef('0x3b')]['hasOwnProperty'](_0xaaef('0x3f'))){_0x3ba005[_0xaaef('0x40')]=qs[_0xaaef('0x40')](_0x38eee0[_0xaaef('0x3b')][_0xaaef('0x40')]);_0x3ba005[_0xaaef('0x24')]=qs[_0xaaef('0x24')](_0x38eee0['query'][_0xaaef('0x24')]);}_0x3ba005[_0xaaef('0x41')]=qs[_0xaaef('0x42')](_0x38eee0[_0xaaef('0x3b')][_0xaaef('0x42')]);_0x3ba005[_0xaaef('0x43')]=qs[_0xaaef('0x39')](_[_0xaaef('0x44')](_0x38eee0[_0xaaef('0x3b')],_0xb3a8a2[_0xaaef('0x39')]),_0x3a4530);if(_0x38eee0[_0xaaef('0x3b')][_0xaaef('0x45')]){_0x3ba005[_0xaaef('0x43')]=_[_0xaaef('0x46')](_0x3ba005[_0xaaef('0x43')],{'$or':_[_0xaaef('0x31')](_0x3a4530,function(_0x3f41b4){if(_0x3f41b4['type']!==_0xaaef('0x47')){var _0x8dac20={};_0x8dac20[_0x3f41b4[_0xaaef('0x2e')]]={'$like':'%'+_0x38eee0[_0xaaef('0x3b')][_0xaaef('0x45')]+'%'};return _0x8dac20;}})});}_0x3ba005=_[_0xaaef('0x46')]({},_0x3ba005,_0x38eee0[_0xaaef('0x48')]);var _0x116d85={'where':_0x3ba005['where']};return db[_0xaaef('0x32')][_0xaaef('0x23')](_0x116d85)[_0xaaef('0x29')](function(_0x3c5b80){_0x53c357[_0xaaef('0x23')]=_0x3c5b80;if(_0x38eee0[_0xaaef('0x3b')][_0xaaef('0x49')]){_0x3ba005['include']=[{'all':!![]}];}return db[_0xaaef('0x32')][_0xaaef('0x4a')](_0x3ba005);})['then'](function(_0x5a6d13){_0x53c357[_0xaaef('0x4b')]=_0x5a6d13;return _0x53c357;})[_0xaaef('0x29')](respondWithFilteredResult(_0x29f824,_0x3ba005))[_0xaaef('0x4c')](handleError(_0x29f824,null));};exports[_0xaaef('0x4d')]=function(_0x22ec4d,_0x1f8237){var _0x27f2a9={'raw':![],'where':{'id':_0x22ec4d[_0xaaef('0x4e')]['id']}},_0x571996={};_0x571996[_0xaaef('0x37')]=_[_0xaaef('0x38')](db[_0xaaef('0x32')]['rawAttributes']);_0x571996[_0xaaef('0x3b')]=_[_0xaaef('0x38')](_0x22ec4d[_0xaaef('0x3b')]);_0x571996[_0xaaef('0x39')]=_[_0xaaef('0x3a')](_0x571996[_0xaaef('0x37')],_0x571996['query']);_0x27f2a9['attributes']=_[_0xaaef('0x3a')](_0x571996[_0xaaef('0x37')],qs['fields'](_0x22ec4d['query'][_0xaaef('0x3d')]));_0x27f2a9[_0xaaef('0x3c')]=_0x27f2a9[_0xaaef('0x3c')][_0xaaef('0x3e')]?_0x27f2a9[_0xaaef('0x3c')]:_0x571996[_0xaaef('0x37')];if(_0x22ec4d[_0xaaef('0x3b')]['includeAll']){_0x27f2a9[_0xaaef('0x4f')]=[{'all':!![]}];}_0x27f2a9=_['merge']({},_0x27f2a9,_0x22ec4d[_0xaaef('0x48')]);return db[_0xaaef('0x32')]['find'](_0x27f2a9)['then'](handleEntityNotFound(_0x1f8237,null))[_0xaaef('0x29')](respondWithResult(_0x1f8237,null))[_0xaaef('0x4c')](handleError(_0x1f8237,null));};exports['create']=function(_0xfcf67c,_0x16e538){return db[_0xaaef('0x32')][_0xaaef('0x50')](_0xfcf67c[_0xaaef('0x51')],{})[_0xaaef('0x29')](function(_0x11c59b){var _0x34ff7b=_0xfcf67c['user'][_0xaaef('0x2b')]({'plain':!![]});if(!_0x34ff7b)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x34ff7b[_0xaaef('0x52')]===_0xaaef('0x53')){var _0x29c9d3=_0x11c59b[_0xaaef('0x2b')]({'plain':!![]});var _0x173d9f=_0xaaef('0x2c');return db[_0xaaef('0x54')][_0xaaef('0x55')]({'where':{'name':_0x173d9f,'userProfileId':_0x34ff7b['userProfileId']},'raw':!![]})['then'](function(_0x59c615){if(_0x59c615&&_0x59c615[_0xaaef('0x56')]===0x0){return db[_0xaaef('0x57')]['create']({'name':_0x29c9d3[_0xaaef('0x2e')],'resourceId':_0x29c9d3['id'],'type':_0x59c615['name'],'sectionId':_0x59c615['id']},{})[_0xaaef('0x29')](function(){return _0x11c59b;});}else{return _0x11c59b;}})['catch'](function(_0x24b985){logger[_0xaaef('0x58')](_0xaaef('0x59'),_0x24b985);throw _0x24b985;});}return _0x11c59b;})[_0xaaef('0x29')](respondWithResult(_0x16e538,0xc9))[_0xaaef('0x4c')](handleError(_0x16e538,null));};exports[_0xaaef('0x28')]=function(_0x169786,_0x3e9bb9){if(_0x169786[_0xaaef('0x51')]['id']){delete _0x169786[_0xaaef('0x51')]['id'];}return db['SquareProject'][_0xaaef('0x55')]({'where':{'id':_0x169786[_0xaaef('0x4e')]['id']}})['then'](handleEntityNotFound(_0x3e9bb9,null))[_0xaaef('0x29')](saveUpdates(_0x169786['body'],null))[_0xaaef('0x29')](respondWithResult(_0x3e9bb9,null))[_0xaaef('0x4c')](handleError(_0x3e9bb9,null));};exports[_0xaaef('0x2a')]=function(_0x496993,_0x120c82){return db[_0xaaef('0x32')]['find']({'where':{'id':_0x496993[_0xaaef('0x4e')]['id']}})[_0xaaef('0x29')](handleEntityNotFound(_0x120c82,null))['then'](removeEntity(_0x120c82,null))[_0xaaef('0x4c')](handleError(_0x120c82,null));};exports[_0xaaef('0x5a')]=function(_0xc652fc,_0x3907c8,_0x2e7069){return db[_0xaaef('0x32')]['find']({'where':{'id':_0xc652fc[_0xaaef('0x4e')]['id']}})['then'](handleEntityNotFound(_0x3907c8,null))[_0xaaef('0x29')](function(_0x4d80a4){if(_0x4d80a4){return _0x4d80a4['addUsers'](_0xc652fc[_0xaaef('0x51')]['ids'],_[_0xaaef('0x5b')](_0xc652fc['body'],[_0xaaef('0x5c'),'id'])||{});}})['then'](respondWithResult(_0x3907c8,null))[_0xaaef('0x4c')](handleError(_0x3907c8,null));};exports[_0xaaef('0x5d')]=function(_0x48dda0,_0x55edcc,_0x128b0b){return db['SquareProject'][_0xaaef('0x55')]({'where':{'id':_0x48dda0[_0xaaef('0x4e')]['id']}})[_0xaaef('0x29')](handleEntityNotFound(_0x55edcc,null))[_0xaaef('0x29')](function(_0x27115b){if(_0x27115b){return _0x27115b[_0xaaef('0x5d')](_0x48dda0[_0xaaef('0x3b')][_0xaaef('0x5c')])[_0xaaef('0x29')](function(){if(_['isArray'](_0x48dda0['query']['ids'])){for(var _0x2ac4d1=0x0;_0x2ac4d1<_0x48dda0[_0xaaef('0x3b')]['ids'][_0xaaef('0x3e')];_0x2ac4d1+=0x1){socket['emit'](_0xaaef('0x5e'),{'UserId':Number(_0x48dda0[_0xaaef('0x3b')]['ids'][_0x2ac4d1]),'SquareProjectId':Number(_0x48dda0[_0xaaef('0x4e')]['id'])});}}else{socket['emit'](_0xaaef('0x5e'),{'UserId':Number(_0x48dda0[_0xaaef('0x3b')][_0xaaef('0x5c')]),'SquareProjectId':Number(_0x48dda0[_0xaaef('0x4e')]['id'])});}});}})[_0xaaef('0x29')](respondWithStatusCode(_0x55edcc,null))[_0xaaef('0x4c')](handleError(_0x55edcc,null));};exports[_0xaaef('0x5f')]=function(_0x48386b,_0x575dfd,_0x2f5a58){var _0x198996={};var _0x32aa68={};var _0x5dd269;var _0x541dc5;return db[_0xaaef('0x32')][_0xaaef('0x60')]({'where':{'id':_0x48386b[_0xaaef('0x4e')]['id']}})[_0xaaef('0x29')](handleEntityNotFound(_0x575dfd,null))[_0xaaef('0x29')](function(_0x4db4d0){if(_0x4db4d0){_0x5dd269=_0x4db4d0;_0x32aa68[_0xaaef('0x37')]=_['keys'](db[_0xaaef('0x61')][_0xaaef('0x33')]);_0x32aa68[_0xaaef('0x3b')]=_[_0xaaef('0x38')](_0x48386b['query']);_0x32aa68[_0xaaef('0x39')]=_['intersection'](_0x32aa68[_0xaaef('0x37')],_0x32aa68['query']);_0x198996[_0xaaef('0x3c')]=_['intersection'](_0x32aa68[_0xaaef('0x37')],qs[_0xaaef('0x3d')](_0x48386b[_0xaaef('0x3b')]['fields']));_0x198996[_0xaaef('0x3c')]=_0x198996[_0xaaef('0x3c')][_0xaaef('0x3e')]?_0x198996[_0xaaef('0x3c')]:_0x32aa68[_0xaaef('0x37')];_0x198996['order']=qs[_0xaaef('0x42')](_0x48386b[_0xaaef('0x3b')]['sort']);_0x198996[_0xaaef('0x43')]=qs['filters'](_['pick'](_0x48386b[_0xaaef('0x3b')],_0x32aa68[_0xaaef('0x39')]));if(_0x48386b[_0xaaef('0x3b')][_0xaaef('0x45')]){_0x198996[_0xaaef('0x43')]=_[_0xaaef('0x46')](_0x198996[_0xaaef('0x43')],{'$or':_['map'](_0x198996[_0xaaef('0x3c')],function(_0x4df14b){var _0x1ada04={};_0x1ada04[_0x4df14b]={'$like':'%'+_0x48386b[_0xaaef('0x3b')][_0xaaef('0x45')]+'%'};return _0x1ada04;})});}_0x198996=_['merge']({},_0x198996,_0x48386b['options']);return _0x5dd269[_0xaaef('0x5f')](_0x198996);}})['then'](function(_0x161a5a){if(_0x161a5a){_0x541dc5=_0x161a5a[_0xaaef('0x3e')];if(!_0x48386b['query'][_0xaaef('0x62')](_0xaaef('0x3f'))){_0x198996[_0xaaef('0x40')]=qs[_0xaaef('0x40')](_0x48386b['query'][_0xaaef('0x40')]);_0x198996['offset']=qs[_0xaaef('0x24')](_0x48386b[_0xaaef('0x3b')][_0xaaef('0x24')]);}return _0x5dd269[_0xaaef('0x5f')](_0x198996);}})[_0xaaef('0x29')](function(_0x42bd32){if(_0x42bd32){return _0x42bd32?{'count':_0x541dc5,'rows':_0x42bd32}:null;}})[_0xaaef('0x29')](respondWithResult(_0x575dfd,null))[_0xaaef('0x4c')](handleError(_0x575dfd,null));};