Built motion from commit 753c950e.|2.5.42
[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 _0x5ba1=['userSquareProject:remove','getUsers','findOne','User','order','eml-format','rimraf','zip-dir','fast-json-patch','moment','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','sendStatus','status','offset','undefined','limit','count','Content-Range','json','apply','update','then','destroy','SquareProjects','UserProfileResource','end','stack','name','send','index','map','SquareProject','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','addUsers','ids','omit','removeUsers','emit'];(function(_0x3b5250,_0x7a0b2c){var _0xc844a1=function(_0x2fbc98){while(--_0x2fbc98){_0x3b5250['push'](_0x3b5250['shift']());}};_0xc844a1(++_0x7a0b2c);}(_0x5ba1,0x66));var _0x15ba=function(_0x51842d,_0x231483){_0x51842d=_0x51842d-0x0;var _0x2dca5b=_0x5ba1[_0x51842d];return _0x2dca5b;};'use strict';var emlformat=require(_0x15ba('0x0'));var rimraf=require(_0x15ba('0x1'));var zipdir=require(_0x15ba('0x2'));var jsonpatch=require(_0x15ba('0x3'));var rp=require('request-promise');var moment=require(_0x15ba('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x15ba('0x5'));var sox=require(_0x15ba('0x6'));var csv=require(_0x15ba('0x7'));var ejs=require(_0x15ba('0x8'));var fs=require('fs');var fs_extra=require(_0x15ba('0x9'));var _=require(_0x15ba('0xa'));var squel=require(_0x15ba('0xb'));var crypto=require(_0x15ba('0xc'));var jsforce=require(_0x15ba('0xd'));var deskjs=require(_0x15ba('0xe'));var toCsv=require(_0x15ba('0x7'));var querystring=require(_0x15ba('0xf'));var Papa=require(_0x15ba('0x10'));var Redis=require(_0x15ba('0x11'));var authService=require(_0x15ba('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x15ba('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x15ba('0x14'));var utils=require(_0x15ba('0x15'));var config=require(_0x15ba('0x16'));var licenseUtil=require(_0x15ba('0x17'));var db=require(_0x15ba('0x18'))['db'];config[_0x15ba('0x19')]=_[_0x15ba('0x1a')](config[_0x15ba('0x19')],{'host':_0x15ba('0x1b'),'port':0x18eb});var socket=require(_0x15ba('0x1c'))(new Redis(config[_0x15ba('0x19')]));require('./squareProject.socket')['register'](socket);function respondWithStatusCode(_0x37b1bb,_0x406e7a){_0x406e7a=_0x406e7a||0xcc;return function(_0x47a2d0){if(_0x47a2d0){return _0x37b1bb[_0x15ba('0x1d')](_0x406e7a);}return _0x37b1bb[_0x15ba('0x1e')](_0x406e7a)['end']();};}function respondWithResult(_0x4077ae,_0x557dc9){_0x557dc9=_0x557dc9||0xc8;return function(_0x2875cf){if(_0x2875cf){return _0x4077ae['status'](_0x557dc9)['json'](_0x2875cf);}};}function respondWithFilteredResult(_0x7fc8ec,_0x494c0e){return function(_0x2e485b){if(_0x2e485b){var _0xdf36b7=typeof _0x494c0e[_0x15ba('0x1f')]===_0x15ba('0x20')&&typeof _0x494c0e[_0x15ba('0x21')]==='undefined';var _0x5279f6=_0x2e485b[_0x15ba('0x22')];var _0x1ca539=_0xdf36b7?0x0:_0x494c0e['offset'];var _0x4f0458=_0xdf36b7?_0x2e485b[_0x15ba('0x22')]:_0x494c0e[_0x15ba('0x1f')]+_0x494c0e[_0x15ba('0x21')];var _0x34cfcb;if(_0x4f0458>=_0x5279f6){_0x4f0458=_0x5279f6;_0x34cfcb=0xc8;}else{_0x34cfcb=0xce;}_0x7fc8ec['status'](_0x34cfcb);return _0x7fc8ec['set'](_0x15ba('0x23'),_0x1ca539+'-'+_0x4f0458+'/'+_0x5279f6)[_0x15ba('0x24')](_0x2e485b);}return null;};}function patchUpdates(_0x5bfdeb){return function(_0x4f4687){try{jsonpatch[_0x15ba('0x25')](_0x4f4687,_0x5bfdeb,!![]);}catch(_0x5355ac){return BPromise['reject'](_0x5355ac);}return _0x4f4687['save']();};}function saveUpdates(_0x34954c,_0x908ab6){return function(_0x1e9ca8){if(_0x1e9ca8){return _0x1e9ca8[_0x15ba('0x26')](_0x34954c)[_0x15ba('0x27')](function(_0x453f8b){return _0x453f8b;});}return null;};}function removeEntity(_0x5d7500,_0xd77fd9){return function(_0x5be012){if(_0x5be012){return _0x5be012[_0x15ba('0x28')]()['then'](function(){var _0x4cf75c=_0x5be012['get']({'plain':!![]});var _0x37d16d=_0x15ba('0x29');return db[_0x15ba('0x2a')][_0x15ba('0x28')]({'where':{'type':_0x37d16d,'resourceId':_0x4cf75c['id']}})['then'](function(){return _0x5be012;});})[_0x15ba('0x27')](function(){_0x5d7500[_0x15ba('0x1e')](0xcc)[_0x15ba('0x2b')]();});}};}function handleEntityNotFound(_0xb10ba0,_0x1b6858){return function(_0x158c25){if(!_0x158c25){_0xb10ba0['sendStatus'](0x194);}return _0x158c25;};}function handleError(_0x4719b9,_0xe16221){_0xe16221=_0xe16221||0x1f4;return function(_0x4baaeb){logger['error'](_0x4baaeb[_0x15ba('0x2c')]);if(_0x4baaeb['name']){delete _0x4baaeb[_0x15ba('0x2d')];}_0x4719b9[_0x15ba('0x1e')](_0xe16221)[_0x15ba('0x2e')](_0x4baaeb);};}exports[_0x15ba('0x2f')]=function(_0x16bf27,_0xafb258){var _0x489400={},_0x12b063={},_0x4022d3={'count':0x0,'rows':[]};var _0x1155ec=_[_0x15ba('0x30')](db[_0x15ba('0x31')][_0x15ba('0x32')],function(_0x237f89){return{'name':_0x237f89[_0x15ba('0x33')],'type':_0x237f89[_0x15ba('0x34')]['key']};});_0x12b063[_0x15ba('0x35')]=_[_0x15ba('0x30')](_0x1155ec,_0x15ba('0x2d'));_0x12b063[_0x15ba('0x36')]=_[_0x15ba('0x37')](_0x16bf27['query']);_0x12b063[_0x15ba('0x38')]=_[_0x15ba('0x39')](_0x12b063['model'],_0x12b063[_0x15ba('0x36')]);_0x489400[_0x15ba('0x3a')]=_[_0x15ba('0x39')](_0x12b063['model'],qs[_0x15ba('0x3b')](_0x16bf27['query']['fields']));_0x489400[_0x15ba('0x3a')]=_0x489400[_0x15ba('0x3a')][_0x15ba('0x3c')]?_0x489400[_0x15ba('0x3a')]:_0x12b063[_0x15ba('0x35')];if(!_0x16bf27[_0x15ba('0x36')][_0x15ba('0x3d')](_0x15ba('0x3e'))){_0x489400[_0x15ba('0x21')]=qs['limit'](_0x16bf27[_0x15ba('0x36')][_0x15ba('0x21')]);_0x489400[_0x15ba('0x1f')]=qs['offset'](_0x16bf27[_0x15ba('0x36')][_0x15ba('0x1f')]);}_0x489400['order']=qs[_0x15ba('0x3f')](_0x16bf27[_0x15ba('0x36')][_0x15ba('0x3f')]);_0x489400[_0x15ba('0x40')]=qs[_0x15ba('0x38')](_[_0x15ba('0x41')](_0x16bf27[_0x15ba('0x36')],_0x12b063[_0x15ba('0x38')]),_0x1155ec);if(_0x16bf27['query'][_0x15ba('0x42')]){_0x489400[_0x15ba('0x40')]=_[_0x15ba('0x43')](_0x489400[_0x15ba('0x40')],{'$or':_[_0x15ba('0x30')](_0x1155ec,function(_0x2cf597){if(_0x2cf597[_0x15ba('0x34')]!==_0x15ba('0x44')){var _0x4631ec={};_0x4631ec[_0x2cf597[_0x15ba('0x2d')]]={'$like':'%'+_0x16bf27[_0x15ba('0x36')][_0x15ba('0x42')]+'%'};return _0x4631ec;}})});}_0x489400=_['merge']({},_0x489400,_0x16bf27[_0x15ba('0x45')]);var _0x10047e={'where':_0x489400[_0x15ba('0x40')]};return db[_0x15ba('0x31')][_0x15ba('0x22')](_0x10047e)[_0x15ba('0x27')](function(_0x16ccdc){_0x4022d3[_0x15ba('0x22')]=_0x16ccdc;if(_0x16bf27[_0x15ba('0x36')][_0x15ba('0x46')]){_0x489400['include']=[{'all':!![]}];}return db[_0x15ba('0x31')][_0x15ba('0x47')](_0x489400);})[_0x15ba('0x27')](function(_0x365811){_0x4022d3[_0x15ba('0x48')]=_0x365811;return _0x4022d3;})['then'](respondWithFilteredResult(_0xafb258,_0x489400))[_0x15ba('0x49')](handleError(_0xafb258,null));};exports[_0x15ba('0x4a')]=function(_0x4c9e14,_0x1a4908){var _0x34b0d9={'raw':![],'where':{'id':_0x4c9e14['params']['id']}},_0x43b787={};_0x43b787['model']=_[_0x15ba('0x37')](db[_0x15ba('0x31')][_0x15ba('0x32')]);_0x43b787[_0x15ba('0x36')]=_[_0x15ba('0x37')](_0x4c9e14[_0x15ba('0x36')]);_0x43b787[_0x15ba('0x38')]=_[_0x15ba('0x39')](_0x43b787[_0x15ba('0x35')],_0x43b787[_0x15ba('0x36')]);_0x34b0d9[_0x15ba('0x3a')]=_[_0x15ba('0x39')](_0x43b787['model'],qs['fields'](_0x4c9e14['query'][_0x15ba('0x3b')]));_0x34b0d9[_0x15ba('0x3a')]=_0x34b0d9[_0x15ba('0x3a')][_0x15ba('0x3c')]?_0x34b0d9[_0x15ba('0x3a')]:_0x43b787[_0x15ba('0x35')];if(_0x4c9e14[_0x15ba('0x36')][_0x15ba('0x46')]){_0x34b0d9[_0x15ba('0x4b')]=[{'all':!![]}];}_0x34b0d9=_[_0x15ba('0x43')]({},_0x34b0d9,_0x4c9e14[_0x15ba('0x45')]);return db[_0x15ba('0x31')][_0x15ba('0x4c')](_0x34b0d9)[_0x15ba('0x27')](handleEntityNotFound(_0x1a4908,null))[_0x15ba('0x27')](respondWithResult(_0x1a4908,null))[_0x15ba('0x49')](handleError(_0x1a4908,null));};exports[_0x15ba('0x4d')]=function(_0x336992,_0x1177ae){return db[_0x15ba('0x31')][_0x15ba('0x4d')](_0x336992[_0x15ba('0x4e')],{})[_0x15ba('0x27')](function(_0xba8af4){var _0x29da47=_0x336992[_0x15ba('0x4f')]['get']({'plain':!![]});if(!_0x29da47)throw new Error(_0x15ba('0x50'));if(_0x29da47[_0x15ba('0x51')]==='user'){var _0x4fbf46=_0xba8af4['get']({'plain':!![]});var _0x4c5516='SquareProjects';return db[_0x15ba('0x52')][_0x15ba('0x4c')]({'where':{'name':_0x4c5516,'userProfileId':_0x29da47[_0x15ba('0x53')]},'raw':!![]})['then'](function(_0x3e1298){if(_0x3e1298&&_0x3e1298[_0x15ba('0x54')]===0x0){return db[_0x15ba('0x2a')][_0x15ba('0x4d')]({'name':_0x4fbf46['name'],'resourceId':_0x4fbf46['id'],'type':_0x3e1298[_0x15ba('0x2d')],'sectionId':_0x3e1298['id']},{})[_0x15ba('0x27')](function(){return _0xba8af4;});}else{return _0xba8af4;}})[_0x15ba('0x49')](function(_0x392992){logger['error'](_0x15ba('0x55'),_0x392992);throw _0x392992;});}return _0xba8af4;})['then'](respondWithResult(_0x1177ae,0xc9))[_0x15ba('0x49')](handleError(_0x1177ae,null));};exports[_0x15ba('0x26')]=function(_0x390e78,_0x454005){if(_0x390e78[_0x15ba('0x4e')]['id']){delete _0x390e78[_0x15ba('0x4e')]['id'];}return db['SquareProject'][_0x15ba('0x4c')]({'where':{'id':_0x390e78[_0x15ba('0x56')]['id']}})['then'](handleEntityNotFound(_0x454005,null))[_0x15ba('0x27')](saveUpdates(_0x390e78[_0x15ba('0x4e')],null))['then'](respondWithResult(_0x454005,null))[_0x15ba('0x49')](handleError(_0x454005,null));};exports['destroy']=function(_0x526bc5,_0x64261){return db[_0x15ba('0x31')][_0x15ba('0x4c')]({'where':{'id':_0x526bc5[_0x15ba('0x56')]['id']}})['then'](handleEntityNotFound(_0x64261,null))['then'](removeEntity(_0x64261,null))['catch'](handleError(_0x64261,null));};exports[_0x15ba('0x57')]=function(_0x31d5ff,_0x5c83de,_0x11754f){return db[_0x15ba('0x31')]['find']({'where':{'id':_0x31d5ff[_0x15ba('0x56')]['id']}})[_0x15ba('0x27')](handleEntityNotFound(_0x5c83de,null))[_0x15ba('0x27')](function(_0x3781ab){if(_0x3781ab){return _0x3781ab[_0x15ba('0x57')](_0x31d5ff[_0x15ba('0x4e')][_0x15ba('0x58')],_[_0x15ba('0x59')](_0x31d5ff['body'],['ids','id'])||{});}})[_0x15ba('0x27')](respondWithResult(_0x5c83de,null))['catch'](handleError(_0x5c83de,null));};exports['removeUsers']=function(_0x3cb639,_0x1e743c,_0x3799e2){return db['SquareProject'][_0x15ba('0x4c')]({'where':{'id':_0x3cb639['params']['id']}})['then'](handleEntityNotFound(_0x1e743c,null))[_0x15ba('0x27')](function(_0x476cac){if(_0x476cac){return _0x476cac[_0x15ba('0x5a')](_0x3cb639['query'][_0x15ba('0x58')])[_0x15ba('0x27')](function(){if(_['isArray'](_0x3cb639['query']['ids'])){for(var _0x95acd8=0x0;_0x95acd8<_0x3cb639['query'][_0x15ba('0x58')]['length'];_0x95acd8+=0x1){socket['emit']('userSquareProject:remove',{'UserId':Number(_0x3cb639['query']['ids'][_0x95acd8]),'SquareProjectId':Number(_0x3cb639[_0x15ba('0x56')]['id'])});}}else{socket[_0x15ba('0x5b')](_0x15ba('0x5c'),{'UserId':Number(_0x3cb639[_0x15ba('0x36')]['ids']),'SquareProjectId':Number(_0x3cb639[_0x15ba('0x56')]['id'])});}});}})[_0x15ba('0x27')](respondWithStatusCode(_0x1e743c,null))[_0x15ba('0x49')](handleError(_0x1e743c,null));};exports[_0x15ba('0x5d')]=function(_0x41bc5b,_0xe5e1ae,_0x235848){var _0x5cfb55={};var _0x1ed92f={};var _0x32c236;var _0x5a286f;return db['SquareProject'][_0x15ba('0x5e')]({'where':{'id':_0x41bc5b['params']['id']}})[_0x15ba('0x27')](handleEntityNotFound(_0xe5e1ae,null))[_0x15ba('0x27')](function(_0x2aa158){if(_0x2aa158){_0x32c236=_0x2aa158;_0x1ed92f[_0x15ba('0x35')]=_[_0x15ba('0x37')](db[_0x15ba('0x5f')][_0x15ba('0x32')]);_0x1ed92f[_0x15ba('0x36')]=_[_0x15ba('0x37')](_0x41bc5b[_0x15ba('0x36')]);_0x1ed92f[_0x15ba('0x38')]=_[_0x15ba('0x39')](_0x1ed92f[_0x15ba('0x35')],_0x1ed92f[_0x15ba('0x36')]);_0x5cfb55[_0x15ba('0x3a')]=_[_0x15ba('0x39')](_0x1ed92f['model'],qs[_0x15ba('0x3b')](_0x41bc5b[_0x15ba('0x36')]['fields']));_0x5cfb55[_0x15ba('0x3a')]=_0x5cfb55[_0x15ba('0x3a')][_0x15ba('0x3c')]?_0x5cfb55[_0x15ba('0x3a')]:_0x1ed92f[_0x15ba('0x35')];_0x5cfb55[_0x15ba('0x60')]=qs['sort'](_0x41bc5b['query'][_0x15ba('0x3f')]);_0x5cfb55[_0x15ba('0x40')]=qs['filters'](_[_0x15ba('0x41')](_0x41bc5b[_0x15ba('0x36')],_0x1ed92f['filters']));if(_0x41bc5b[_0x15ba('0x36')]['filter']){_0x5cfb55[_0x15ba('0x40')]=_[_0x15ba('0x43')](_0x5cfb55[_0x15ba('0x40')],{'$or':_[_0x15ba('0x30')](_0x5cfb55['attributes'],function(_0x2f14e4){var _0x312656={};_0x312656[_0x2f14e4]={'$like':'%'+_0x41bc5b[_0x15ba('0x36')][_0x15ba('0x42')]+'%'};return _0x312656;})});}_0x5cfb55=_[_0x15ba('0x43')]({},_0x5cfb55,_0x41bc5b['options']);return _0x32c236['getUsers'](_0x5cfb55);}})[_0x15ba('0x27')](function(_0x40bcb2){if(_0x40bcb2){_0x5a286f=_0x40bcb2['length'];if(!_0x41bc5b['query'][_0x15ba('0x3d')](_0x15ba('0x3e'))){_0x5cfb55[_0x15ba('0x21')]=qs[_0x15ba('0x21')](_0x41bc5b['query']['limit']);_0x5cfb55['offset']=qs[_0x15ba('0x1f')](_0x41bc5b[_0x15ba('0x36')][_0x15ba('0x1f')]);}return _0x32c236[_0x15ba('0x5d')](_0x5cfb55);}})[_0x15ba('0x27')](function(_0x3a469a){if(_0x3a469a){return _0x3a469a?{'count':_0x5a286f,'rows':_0x3a469a}:null;}})[_0x15ba('0x27')](respondWithResult(_0xe5e1ae,null))[_0x15ba('0x49')](handleError(_0xe5e1ae,null));};