Built motion from commit (unavailable).|2.5.4
[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 _0x8393=['get','SquareProjects','UserProfileResource','destroy','name','send','index','map','rawAttributes','fieldName','type','key','keys','query','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','VIRTUAL','merge','SquareProject','includeAll','include','findAll','rows','catch','options','find','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','addUsers','ids','omit','removeUsers','isArray','emit','userSquareProject:remove','getUsers','User','order','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','defaults','redis','socket.io-emitter','./squareProject.socket','register','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','save','update','then'];(function(_0x1d7ae2,_0x5852ac){var _0x2587b4=function(_0xe06f09){while(--_0xe06f09){_0x1d7ae2['push'](_0x1d7ae2['shift']());}};_0x2587b4(++_0x5852ac);}(_0x8393,0x152));var _0x3839=function(_0x13cb8a,_0x51fd5a){_0x13cb8a=_0x13cb8a-0x0;var _0x3d8cea=_0x8393[_0x13cb8a];return _0x3d8cea;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x3839('0x0'));var zipdir=require(_0x3839('0x1'));var jsonpatch=require(_0x3839('0x2'));var rp=require(_0x3839('0x3'));var moment=require('moment');var BPromise=require(_0x3839('0x4'));var Mustache=require(_0x3839('0x5'));var util=require(_0x3839('0x6'));var path=require(_0x3839('0x7'));var sox=require(_0x3839('0x8'));var csv=require(_0x3839('0x9'));var ejs=require(_0x3839('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x3839('0xb'));var crypto=require(_0x3839('0xc'));var jsforce=require(_0x3839('0xd'));var deskjs=require(_0x3839('0xe'));var toCsv=require('to-csv');var querystring=require(_0x3839('0xf'));var Papa=require(_0x3839('0x10'));var Redis=require(_0x3839('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x3839('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3839('0x13'));var logger=require(_0x3839('0x14'))(_0x3839('0x15'));var utils=require(_0x3839('0x16'));var config=require('../../config/environment');var db=require(_0x3839('0x17'))['db'];config['redis']=_[_0x3839('0x18')](config[_0x3839('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0x3839('0x1a'))(new Redis(config['redis']));require(_0x3839('0x1b'))[_0x3839('0x1c')](socket);function respondWithStatusCode(_0x4148b7,_0x164f2e){_0x164f2e=_0x164f2e||0xcc;return function(_0x58e877){if(_0x58e877){return _0x4148b7[_0x3839('0x1d')](_0x164f2e);}return _0x4148b7[_0x3839('0x1e')](_0x164f2e)[_0x3839('0x1f')]();};}function respondWithResult(_0x35ae45,_0x2a9a88){_0x2a9a88=_0x2a9a88||0xc8;return function(_0x2b71f6){if(_0x2b71f6){return _0x35ae45['status'](_0x2a9a88)[_0x3839('0x20')](_0x2b71f6);}};}function respondWithFilteredResult(_0x43a990,_0x278da5){return function(_0x4ca81b){if(_0x4ca81b){var _0x53abbd=_0x4ca81b[_0x3839('0x21')],_0x1c9b4a=_0x278da5[_0x3839('0x22')],_0x209bd0=_0x278da5['offset']+_0x278da5[_0x3839('0x23')],_0x5c66bb;if(_0x209bd0>=_0x53abbd){_0x209bd0=_0x53abbd;_0x5c66bb=0xc8;}else{_0x5c66bb=0xce;}_0x43a990[_0x3839('0x1e')](_0x5c66bb);return _0x43a990[_0x3839('0x24')](_0x3839('0x25'),_0x1c9b4a+'-'+_0x209bd0+'/'+_0x53abbd)[_0x3839('0x20')](_0x4ca81b);}return null;};}function patchUpdates(_0x530c71){return function(_0xf6fa7){try{jsonpatch[_0x3839('0x26')](_0xf6fa7,_0x530c71,!![]);}catch(_0x4fcc4e){return BPromise['reject'](_0x4fcc4e);}return _0xf6fa7[_0x3839('0x27')]();};}function saveUpdates(_0x45b416,_0xc34e00){return function(_0x1a4890){if(_0x1a4890){return _0x1a4890[_0x3839('0x28')](_0x45b416)['then'](function(_0x1ea87a){return _0x1ea87a;});}return null;};}function removeEntity(_0x3f581a,_0x372b20){return function(_0x554463){if(_0x554463){return _0x554463['destroy']()[_0x3839('0x29')](function(){var _0x44dbe1=_0x554463[_0x3839('0x2a')]({'plain':!![]});var _0x4ee29e=_0x3839('0x2b');return db[_0x3839('0x2c')][_0x3839('0x2d')]({'where':{'type':_0x4ee29e,'resourceId':_0x44dbe1['id']}})[_0x3839('0x29')](function(){return _0x554463;});})[_0x3839('0x29')](function(){_0x3f581a['status'](0xcc)[_0x3839('0x1f')]();});}};}function handleEntityNotFound(_0x3a966a,_0x844148){return function(_0xf0f193){if(!_0xf0f193){_0x3a966a['sendStatus'](0x194);}return _0xf0f193;};}function handleError(_0x4a3344,_0x4e025d){_0x4e025d=_0x4e025d||0x1f4;return function(_0x337984){logger['error'](_0x337984['stack']);if(_0x337984[_0x3839('0x2e')]){delete _0x337984[_0x3839('0x2e')];}_0x4a3344['status'](_0x4e025d)[_0x3839('0x2f')](_0x337984);};}exports[_0x3839('0x30')]=function(_0x354d29,_0x7d47c8){var _0x25254c={},_0x2319bc={},_0x5afdf3={'count':0x0,'rows':[]};var _0x136a0b=_[_0x3839('0x31')](db['SquareProject'][_0x3839('0x32')],function(_0x4081aa){return{'name':_0x4081aa[_0x3839('0x33')],'type':_0x4081aa[_0x3839('0x34')][_0x3839('0x35')]};});_0x2319bc['model']=_[_0x3839('0x31')](_0x136a0b,_0x3839('0x2e'));_0x2319bc['query']=_[_0x3839('0x36')](_0x354d29[_0x3839('0x37')]);_0x2319bc[_0x3839('0x38')]=_['intersection'](_0x2319bc[_0x3839('0x39')],_0x2319bc[_0x3839('0x37')]);_0x25254c[_0x3839('0x3a')]=_[_0x3839('0x3b')](_0x2319bc[_0x3839('0x39')],qs[_0x3839('0x3c')](_0x354d29[_0x3839('0x37')][_0x3839('0x3c')]));_0x25254c['attributes']=_0x25254c[_0x3839('0x3a')][_0x3839('0x3d')]?_0x25254c[_0x3839('0x3a')]:_0x2319bc[_0x3839('0x39')];if(!_0x354d29[_0x3839('0x37')][_0x3839('0x3e')](_0x3839('0x3f'))){_0x25254c[_0x3839('0x23')]=qs[_0x3839('0x23')](_0x354d29['query'][_0x3839('0x23')]);_0x25254c['offset']=qs[_0x3839('0x22')](_0x354d29[_0x3839('0x37')]['offset']);}_0x25254c['order']=qs[_0x3839('0x40')](_0x354d29[_0x3839('0x37')]['sort']);_0x25254c[_0x3839('0x41')]=qs[_0x3839('0x38')](_[_0x3839('0x42')](_0x354d29[_0x3839('0x37')],_0x2319bc[_0x3839('0x38')]),_0x136a0b);if(_0x354d29['query']['filter']){_0x25254c[_0x3839('0x41')]=_['merge'](_0x25254c['where'],{'$or':_['map'](_0x136a0b,function(_0x1e8dbd){if(_0x1e8dbd['type']!==_0x3839('0x43')){var _0x1e028f={};_0x1e028f[_0x1e8dbd[_0x3839('0x2e')]]={'$like':'%'+_0x354d29[_0x3839('0x37')]['filter']+'%'};return _0x1e028f;}})});}_0x25254c=_[_0x3839('0x44')]({},_0x25254c,_0x354d29['options']);var _0x213f97={'where':_0x25254c['where']};return db[_0x3839('0x45')]['count'](_0x213f97)[_0x3839('0x29')](function(_0x50eab5){_0x5afdf3[_0x3839('0x21')]=_0x50eab5;if(_0x354d29['query'][_0x3839('0x46')]){_0x25254c[_0x3839('0x47')]=[{'all':!![]}];}return db['SquareProject'][_0x3839('0x48')](_0x25254c);})[_0x3839('0x29')](function(_0x3c9c38){_0x5afdf3[_0x3839('0x49')]=_0x3c9c38;return _0x5afdf3;})['then'](respondWithFilteredResult(_0x7d47c8,_0x25254c))[_0x3839('0x4a')](handleError(_0x7d47c8,null));};exports['show']=function(_0x1fdc19,_0x3eec40){var _0x74feda={'raw':![],'where':{'id':_0x1fdc19['params']['id']}},_0x14cc34={};_0x14cc34[_0x3839('0x39')]=_['keys'](db[_0x3839('0x45')]['rawAttributes']);_0x14cc34[_0x3839('0x37')]=_['keys'](_0x1fdc19[_0x3839('0x37')]);_0x14cc34[_0x3839('0x38')]=_[_0x3839('0x3b')](_0x14cc34[_0x3839('0x39')],_0x14cc34[_0x3839('0x37')]);_0x74feda[_0x3839('0x3a')]=_['intersection'](_0x14cc34[_0x3839('0x39')],qs[_0x3839('0x3c')](_0x1fdc19[_0x3839('0x37')][_0x3839('0x3c')]));_0x74feda['attributes']=_0x74feda[_0x3839('0x3a')][_0x3839('0x3d')]?_0x74feda[_0x3839('0x3a')]:_0x14cc34['model'];if(_0x1fdc19[_0x3839('0x37')][_0x3839('0x46')]){_0x74feda['include']=[{'all':!![]}];}_0x74feda=_[_0x3839('0x44')]({},_0x74feda,_0x1fdc19[_0x3839('0x4b')]);return db['SquareProject'][_0x3839('0x4c')](_0x74feda)['then'](handleEntityNotFound(_0x3eec40,null))[_0x3839('0x29')](respondWithResult(_0x3eec40,null))[_0x3839('0x4a')](handleError(_0x3eec40,null));};exports['create']=function(_0x3cbe44,_0x480096){return db[_0x3839('0x45')]['create'](_0x3cbe44[_0x3839('0x4d')],{})[_0x3839('0x29')](function(_0x4b8f93){var _0x2d4056=_0x3cbe44[_0x3839('0x4e')][_0x3839('0x2a')]({'plain':!![]});if(!_0x2d4056)throw new Error(_0x3839('0x4f'));if(_0x2d4056[_0x3839('0x50')]==='user'){var _0x1e78e4=_0x4b8f93[_0x3839('0x2a')]({'plain':!![]});var _0x200c0b='SquareProjects';return db[_0x3839('0x51')][_0x3839('0x4c')]({'where':{'name':_0x200c0b,'userProfileId':_0x2d4056['userProfileId']},'raw':!![]})[_0x3839('0x29')](function(_0x296ae5){if(_0x296ae5&&_0x296ae5['autoAssociation']===0x0){return db[_0x3839('0x2c')]['create']({'name':_0x1e78e4['name'],'resourceId':_0x1e78e4['id'],'type':_0x296ae5[_0x3839('0x2e')],'sectionId':_0x296ae5['id']},{})[_0x3839('0x29')](function(){return _0x4b8f93;});}else{return _0x4b8f93;}})[_0x3839('0x4a')](function(_0x25514a){logger[_0x3839('0x52')](_0x3839('0x53'),_0x25514a);throw _0x25514a;});}return _0x4b8f93;})['then'](respondWithResult(_0x480096,0xc9))[_0x3839('0x4a')](handleError(_0x480096,null));};exports[_0x3839('0x28')]=function(_0x22305b,_0x11e2f4){if(_0x22305b['body']['id']){delete _0x22305b[_0x3839('0x4d')]['id'];}return db[_0x3839('0x45')][_0x3839('0x4c')]({'where':{'id':_0x22305b[_0x3839('0x54')]['id']}})[_0x3839('0x29')](handleEntityNotFound(_0x11e2f4,null))[_0x3839('0x29')](saveUpdates(_0x22305b['body'],null))[_0x3839('0x29')](respondWithResult(_0x11e2f4,null))['catch'](handleError(_0x11e2f4,null));};exports[_0x3839('0x2d')]=function(_0x4eec3d,_0x3f45f5){return db[_0x3839('0x45')][_0x3839('0x4c')]({'where':{'id':_0x4eec3d[_0x3839('0x54')]['id']}})[_0x3839('0x29')](handleEntityNotFound(_0x3f45f5,null))['then'](removeEntity(_0x3f45f5,null))[_0x3839('0x4a')](handleError(_0x3f45f5,null));};exports[_0x3839('0x55')]=function(_0x3402b3,_0x20e32b,_0x4141a3){return db[_0x3839('0x45')][_0x3839('0x4c')]({'where':{'id':_0x3402b3[_0x3839('0x54')]['id']}})[_0x3839('0x29')](handleEntityNotFound(_0x20e32b,null))['then'](function(_0x181d80){if(_0x181d80){return _0x181d80['addUsers'](_0x3402b3[_0x3839('0x4d')][_0x3839('0x56')],_[_0x3839('0x57')](_0x3402b3['body'],[_0x3839('0x56'),'id'])||{});}})[_0x3839('0x29')](respondWithResult(_0x20e32b,null))['catch'](handleError(_0x20e32b,null));};exports[_0x3839('0x58')]=function(_0x23280c,_0x903a3,_0x102ddb){return db[_0x3839('0x45')]['find']({'where':{'id':_0x23280c[_0x3839('0x54')]['id']}})[_0x3839('0x29')](handleEntityNotFound(_0x903a3,null))['then'](function(_0x386f72){if(_0x386f72){return _0x386f72['removeUsers'](_0x23280c[_0x3839('0x37')][_0x3839('0x56')])['then'](function(){if(_[_0x3839('0x59')](_0x23280c[_0x3839('0x37')][_0x3839('0x56')])){for(var _0x28599b=0x0;_0x28599b<_0x23280c[_0x3839('0x37')]['ids'][_0x3839('0x3d')];_0x28599b+=0x1){socket[_0x3839('0x5a')]('userSquareProject:remove',{'UserId':Number(_0x23280c[_0x3839('0x37')][_0x3839('0x56')][_0x28599b]),'SquareProjectId':Number(_0x23280c[_0x3839('0x54')]['id'])});}}else{socket[_0x3839('0x5a')](_0x3839('0x5b'),{'UserId':Number(_0x23280c['query'][_0x3839('0x56')]),'SquareProjectId':Number(_0x23280c[_0x3839('0x54')]['id'])});}});}})[_0x3839('0x29')](respondWithStatusCode(_0x903a3,null))[_0x3839('0x4a')](handleError(_0x903a3,null));};exports[_0x3839('0x5c')]=function(_0x57349a,_0x2da7f3,_0x445cd5){var _0x3cf659={};var _0x1f352e={};var _0x3dda63;var _0x574dd3;return db[_0x3839('0x45')]['findOne']({'where':{'id':_0x57349a['params']['id']}})[_0x3839('0x29')](handleEntityNotFound(_0x2da7f3,null))['then'](function(_0x1a5d29){if(_0x1a5d29){_0x3dda63=_0x1a5d29;_0x1f352e[_0x3839('0x39')]=_[_0x3839('0x36')](db[_0x3839('0x5d')]['rawAttributes']);_0x1f352e[_0x3839('0x37')]=_['keys'](_0x57349a[_0x3839('0x37')]);_0x1f352e['filters']=_['intersection'](_0x1f352e[_0x3839('0x39')],_0x1f352e['query']);_0x3cf659[_0x3839('0x3a')]=_['intersection'](_0x1f352e['model'],qs[_0x3839('0x3c')](_0x57349a['query'][_0x3839('0x3c')]));_0x3cf659['attributes']=_0x3cf659['attributes'][_0x3839('0x3d')]?_0x3cf659[_0x3839('0x3a')]:_0x1f352e[_0x3839('0x39')];_0x3cf659[_0x3839('0x5e')]=qs[_0x3839('0x40')](_0x57349a[_0x3839('0x37')][_0x3839('0x40')]);_0x3cf659[_0x3839('0x41')]=qs[_0x3839('0x38')](_['pick'](_0x57349a['query'],_0x1f352e[_0x3839('0x38')]));if(_0x57349a[_0x3839('0x37')]['filter']){_0x3cf659[_0x3839('0x41')]=_[_0x3839('0x44')](_0x3cf659[_0x3839('0x41')],{'$or':_['map'](_0x3cf659[_0x3839('0x3a')],function(_0x78a8aa){var _0x267051={};_0x267051[_0x78a8aa]={'$like':'%'+_0x57349a[_0x3839('0x37')]['filter']+'%'};return _0x267051;})});}_0x3cf659=_[_0x3839('0x44')]({},_0x3cf659,_0x57349a[_0x3839('0x4b')]);return _0x3dda63[_0x3839('0x5c')](_0x3cf659);}})['then'](function(_0x1e0354){if(_0x1e0354){_0x574dd3=_0x1e0354[_0x3839('0x3d')];if(!_0x57349a[_0x3839('0x37')]['hasOwnProperty']('nolimit')){_0x3cf659[_0x3839('0x23')]=qs['limit'](_0x57349a['query'][_0x3839('0x23')]);_0x3cf659[_0x3839('0x22')]=qs[_0x3839('0x22')](_0x57349a[_0x3839('0x37')]['offset']);}return _0x3dda63[_0x3839('0x5c')](_0x3cf659);}})[_0x3839('0x29')](function(_0xda8558){if(_0xda8558){return _0xda8558?{'count':_0x574dd3,'rows':_0xda8558}:null;}})[_0x3839('0x29')](respondWithResult(_0x2da7f3,null))['catch'](handleError(_0x2da7f3,null));};