60c27060c866ef883781e639aaafa55a5f2efd4d
[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 _0x4598=['./squareProject.socket','register','status','end','json','offset','undefined','limit','count','set','apply','save','update','then','destroy','SquareProjects','UserProfileResource','error','stack','index','map','SquareProject','rawAttributes','fieldName','type','key','model','query','filters','attributes','intersection','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','name','options','include','rows','params','keys','find','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addUsers','ids','omit','removeUsers','isArray','userSquareProject:remove','emit','findOne','User','fields','getUsers','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter'];(function(_0x3065c6,_0x20d3a1){var _0x1a366d=function(_0x1f652e){while(--_0x1f652e){_0x3065c6['push'](_0x3065c6['shift']());}};_0x1a366d(++_0x20d3a1);}(_0x4598,0x1ba));var _0x8459=function(_0x164d60,_0x20c6d1){_0x164d60=_0x164d60-0x0;var _0x142fd3=_0x4598[_0x164d60];return _0x142fd3;};'use strict';var emlformat=require(_0x8459('0x0'));var rimraf=require(_0x8459('0x1'));var zipdir=require(_0x8459('0x2'));var jsonpatch=require(_0x8459('0x3'));var rp=require(_0x8459('0x4'));var moment=require(_0x8459('0x5'));var BPromise=require(_0x8459('0x6'));var Mustache=require('mustache');var util=require(_0x8459('0x7'));var path=require('path');var sox=require(_0x8459('0x8'));var csv=require(_0x8459('0x9'));var ejs=require(_0x8459('0xa'));var fs=require('fs');var fs_extra=require(_0x8459('0xb'));var _=require(_0x8459('0xc'));var squel=require(_0x8459('0xd'));var crypto=require(_0x8459('0xe'));var jsforce=require(_0x8459('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x8459('0x10'));var Redis=require('ioredis');var authService=require(_0x8459('0x11'));var qs=require(_0x8459('0x12'));var as=require(_0x8459('0x13'));var hardwareService=require(_0x8459('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x8459('0x15'));var config=require(_0x8459('0x16'));var licenseUtil=require(_0x8459('0x17'));var db=require(_0x8459('0x18'))['db'];config[_0x8459('0x19')]=_['defaults'](config[_0x8459('0x19')],{'host':_0x8459('0x1a'),'port':0x18eb});var socket=require(_0x8459('0x1b'))(new Redis(config[_0x8459('0x19')]));require(_0x8459('0x1c'))[_0x8459('0x1d')](socket);function respondWithStatusCode(_0x246313,_0x3c96ac){_0x3c96ac=_0x3c96ac||0xcc;return function(_0x34f0c8){if(_0x34f0c8){return _0x246313['sendStatus'](_0x3c96ac);}return _0x246313[_0x8459('0x1e')](_0x3c96ac)[_0x8459('0x1f')]();};}function respondWithResult(_0x9c61e7,_0x2bd2e5){_0x2bd2e5=_0x2bd2e5||0xc8;return function(_0x262e88){if(_0x262e88){return _0x9c61e7[_0x8459('0x1e')](_0x2bd2e5)[_0x8459('0x20')](_0x262e88);}};}function respondWithFilteredResult(_0x477a20,_0x9719ba){return function(_0x2a99bf){if(_0x2a99bf){var _0x15ae7c=typeof _0x9719ba[_0x8459('0x21')]===_0x8459('0x22')&&typeof _0x9719ba[_0x8459('0x23')]===_0x8459('0x22');var _0x47666d=_0x2a99bf[_0x8459('0x24')];var _0xbce3f4=_0x15ae7c?0x0:_0x9719ba['offset'];var _0x1bfc4c=_0x15ae7c?_0x2a99bf[_0x8459('0x24')]:_0x9719ba[_0x8459('0x21')]+_0x9719ba['limit'];var _0x20beee;if(_0x1bfc4c>=_0x47666d){_0x1bfc4c=_0x47666d;_0x20beee=0xc8;}else{_0x20beee=0xce;}_0x477a20['status'](_0x20beee);return _0x477a20[_0x8459('0x25')]('Content-Range',_0xbce3f4+'-'+_0x1bfc4c+'/'+_0x47666d)['json'](_0x2a99bf);}return null;};}function patchUpdates(_0x69a359){return function(_0x403e20){try{jsonpatch[_0x8459('0x26')](_0x403e20,_0x69a359,!![]);}catch(_0x19b876){return BPromise['reject'](_0x19b876);}return _0x403e20[_0x8459('0x27')]();};}function saveUpdates(_0x44899e,_0x462f3a){return function(_0x120ba6){if(_0x120ba6){return _0x120ba6[_0x8459('0x28')](_0x44899e)[_0x8459('0x29')](function(_0x51defc){return _0x51defc;});}return null;};}function removeEntity(_0x478647,_0x370fa1){return function(_0x423ba0){if(_0x423ba0){return _0x423ba0[_0x8459('0x2a')]()[_0x8459('0x29')](function(){var _0x34a78d=_0x423ba0['get']({'plain':!![]});var _0x28f219=_0x8459('0x2b');return db[_0x8459('0x2c')][_0x8459('0x2a')]({'where':{'type':_0x28f219,'resourceId':_0x34a78d['id']}})[_0x8459('0x29')](function(){return _0x423ba0;});})[_0x8459('0x29')](function(){_0x478647[_0x8459('0x1e')](0xcc)[_0x8459('0x1f')]();});}};}function handleEntityNotFound(_0x12fe72,_0x4ae834){return function(_0x12fe56){if(!_0x12fe56){_0x12fe72['sendStatus'](0x194);}return _0x12fe56;};}function handleError(_0x12a18c,_0x105fbb){_0x105fbb=_0x105fbb||0x1f4;return function(_0x20adcc){logger[_0x8459('0x2d')](_0x20adcc[_0x8459('0x2e')]);if(_0x20adcc['name']){delete _0x20adcc['name'];}_0x12a18c['status'](_0x105fbb)['send'](_0x20adcc);};}exports[_0x8459('0x2f')]=function(_0x2f41ba,_0xf9e864){var _0x2f3773={},_0x3ca7f7={},_0x29ea4e={'count':0x0,'rows':[]};var _0x5cd583=_[_0x8459('0x30')](db[_0x8459('0x31')][_0x8459('0x32')],function(_0x16d740){return{'name':_0x16d740[_0x8459('0x33')],'type':_0x16d740[_0x8459('0x34')][_0x8459('0x35')]};});_0x3ca7f7[_0x8459('0x36')]=_['map'](_0x5cd583,'name');_0x3ca7f7[_0x8459('0x37')]=_['keys'](_0x2f41ba[_0x8459('0x37')]);_0x3ca7f7[_0x8459('0x38')]=_['intersection'](_0x3ca7f7[_0x8459('0x36')],_0x3ca7f7[_0x8459('0x37')]);_0x2f3773[_0x8459('0x39')]=_[_0x8459('0x3a')](_0x3ca7f7[_0x8459('0x36')],qs['fields'](_0x2f41ba['query']['fields']));_0x2f3773[_0x8459('0x39')]=_0x2f3773['attributes'][_0x8459('0x3b')]?_0x2f3773[_0x8459('0x39')]:_0x3ca7f7['model'];if(!_0x2f41ba[_0x8459('0x37')][_0x8459('0x3c')](_0x8459('0x3d'))){_0x2f3773[_0x8459('0x23')]=qs[_0x8459('0x23')](_0x2f41ba[_0x8459('0x37')]['limit']);_0x2f3773[_0x8459('0x21')]=qs[_0x8459('0x21')](_0x2f41ba[_0x8459('0x37')][_0x8459('0x21')]);}_0x2f3773['order']=qs[_0x8459('0x3e')](_0x2f41ba['query'][_0x8459('0x3e')]);_0x2f3773[_0x8459('0x3f')]=qs[_0x8459('0x38')](_[_0x8459('0x40')](_0x2f41ba[_0x8459('0x37')],_0x3ca7f7[_0x8459('0x38')]),_0x5cd583);if(_0x2f41ba[_0x8459('0x37')][_0x8459('0x41')]){_0x2f3773[_0x8459('0x3f')]=_[_0x8459('0x42')](_0x2f3773['where'],{'$or':_[_0x8459('0x30')](_0x5cd583,function(_0xc32dc3){if(_0xc32dc3['type']!==_0x8459('0x43')){var _0x4480f2={};_0x4480f2[_0xc32dc3[_0x8459('0x44')]]={'$like':'%'+_0x2f41ba[_0x8459('0x37')][_0x8459('0x41')]+'%'};return _0x4480f2;}})});}_0x2f3773=_['merge']({},_0x2f3773,_0x2f41ba[_0x8459('0x45')]);var _0x650cf3={'where':_0x2f3773[_0x8459('0x3f')]};return db[_0x8459('0x31')][_0x8459('0x24')](_0x650cf3)[_0x8459('0x29')](function(_0x3ec318){_0x29ea4e[_0x8459('0x24')]=_0x3ec318;if(_0x2f41ba[_0x8459('0x37')]['includeAll']){_0x2f3773[_0x8459('0x46')]=[{'all':!![]}];}return db[_0x8459('0x31')]['findAll'](_0x2f3773);})[_0x8459('0x29')](function(_0x528362){_0x29ea4e[_0x8459('0x47')]=_0x528362;return _0x29ea4e;})[_0x8459('0x29')](respondWithFilteredResult(_0xf9e864,_0x2f3773))['catch'](handleError(_0xf9e864,null));};exports['show']=function(_0x5f3fe9,_0x524933){var _0x439075={'raw':![],'where':{'id':_0x5f3fe9[_0x8459('0x48')]['id']}},_0x269301={};_0x269301[_0x8459('0x36')]=_[_0x8459('0x49')](db[_0x8459('0x31')][_0x8459('0x32')]);_0x269301[_0x8459('0x37')]=_[_0x8459('0x49')](_0x5f3fe9[_0x8459('0x37')]);_0x269301[_0x8459('0x38')]=_[_0x8459('0x3a')](_0x269301[_0x8459('0x36')],_0x269301['query']);_0x439075[_0x8459('0x39')]=_[_0x8459('0x3a')](_0x269301['model'],qs['fields'](_0x5f3fe9[_0x8459('0x37')]['fields']));_0x439075[_0x8459('0x39')]=_0x439075['attributes'][_0x8459('0x3b')]?_0x439075['attributes']:_0x269301[_0x8459('0x36')];if(_0x5f3fe9['query']['includeAll']){_0x439075[_0x8459('0x46')]=[{'all':!![]}];}_0x439075=_[_0x8459('0x42')]({},_0x439075,_0x5f3fe9['options']);return db[_0x8459('0x31')][_0x8459('0x4a')](_0x439075)['then'](handleEntityNotFound(_0x524933,null))[_0x8459('0x29')](respondWithResult(_0x524933,null))['catch'](handleError(_0x524933,null));};exports[_0x8459('0x4b')]=function(_0x3e94cf,_0x10a76e){return db[_0x8459('0x31')][_0x8459('0x4b')](_0x3e94cf[_0x8459('0x4c')],{})[_0x8459('0x29')](function(_0x3993d0){var _0x34c68a=_0x3e94cf['user'][_0x8459('0x4d')]({'plain':!![]});if(!_0x34c68a)throw new Error(_0x8459('0x4e'));if(_0x34c68a[_0x8459('0x4f')]==='user'){var _0x549105=_0x3993d0[_0x8459('0x4d')]({'plain':!![]});var _0x4fbd32=_0x8459('0x2b');return db['UserProfileSection']['find']({'where':{'name':_0x4fbd32,'userProfileId':_0x34c68a[_0x8459('0x50')]},'raw':!![]})['then'](function(_0x335def){if(_0x335def&&_0x335def['autoAssociation']===0x0){return db[_0x8459('0x2c')][_0x8459('0x4b')]({'name':_0x549105[_0x8459('0x44')],'resourceId':_0x549105['id'],'type':_0x335def[_0x8459('0x44')],'sectionId':_0x335def['id']},{})[_0x8459('0x29')](function(){return _0x3993d0;});}else{return _0x3993d0;}})[_0x8459('0x51')](function(_0x2ba36b){logger[_0x8459('0x2d')](_0x8459('0x52'),_0x2ba36b);throw _0x2ba36b;});}return _0x3993d0;})[_0x8459('0x29')](respondWithResult(_0x10a76e,0xc9))['catch'](handleError(_0x10a76e,null));};exports[_0x8459('0x28')]=function(_0x2000d4,_0x1d18f7){if(_0x2000d4[_0x8459('0x4c')]['id']){delete _0x2000d4['body']['id'];}return db[_0x8459('0x31')][_0x8459('0x4a')]({'where':{'id':_0x2000d4[_0x8459('0x48')]['id']}})[_0x8459('0x29')](handleEntityNotFound(_0x1d18f7,null))['then'](saveUpdates(_0x2000d4[_0x8459('0x4c')],null))[_0x8459('0x29')](respondWithResult(_0x1d18f7,null))[_0x8459('0x51')](handleError(_0x1d18f7,null));};exports[_0x8459('0x2a')]=function(_0x5aa5e0,_0x4a22a4){return db[_0x8459('0x31')][_0x8459('0x4a')]({'where':{'id':_0x5aa5e0[_0x8459('0x48')]['id']}})[_0x8459('0x29')](handleEntityNotFound(_0x4a22a4,null))[_0x8459('0x29')](removeEntity(_0x4a22a4,null))[_0x8459('0x51')](handleError(_0x4a22a4,null));};exports[_0x8459('0x53')]=function(_0x568cd3,_0x27af0e,_0x307c80){return db[_0x8459('0x31')][_0x8459('0x4a')]({'where':{'id':_0x568cd3[_0x8459('0x48')]['id']}})[_0x8459('0x29')](handleEntityNotFound(_0x27af0e,null))[_0x8459('0x29')](function(_0x356a99){if(_0x356a99){return _0x356a99[_0x8459('0x53')](_0x568cd3['body'][_0x8459('0x54')],_[_0x8459('0x55')](_0x568cd3['body'],['ids','id'])||{});}})[_0x8459('0x29')](respondWithResult(_0x27af0e,null))[_0x8459('0x51')](handleError(_0x27af0e,null));};exports[_0x8459('0x56')]=function(_0x2dfdf6,_0x5b90e7,_0x817100){return db[_0x8459('0x31')][_0x8459('0x4a')]({'where':{'id':_0x2dfdf6[_0x8459('0x48')]['id']}})[_0x8459('0x29')](handleEntityNotFound(_0x5b90e7,null))[_0x8459('0x29')](function(_0x12c858){if(_0x12c858){return _0x12c858[_0x8459('0x56')](_0x2dfdf6[_0x8459('0x37')]['ids'])['then'](function(){if(_[_0x8459('0x57')](_0x2dfdf6[_0x8459('0x37')]['ids'])){for(var _0x1c0d2a=0x0;_0x1c0d2a<_0x2dfdf6[_0x8459('0x37')]['ids'][_0x8459('0x3b')];_0x1c0d2a+=0x1){socket['emit'](_0x8459('0x58'),{'UserId':Number(_0x2dfdf6[_0x8459('0x37')][_0x8459('0x54')][_0x1c0d2a]),'SquareProjectId':Number(_0x2dfdf6['params']['id'])});}}else{socket[_0x8459('0x59')](_0x8459('0x58'),{'UserId':Number(_0x2dfdf6[_0x8459('0x37')]['ids']),'SquareProjectId':Number(_0x2dfdf6['params']['id'])});}});}})[_0x8459('0x29')](respondWithStatusCode(_0x5b90e7,null))['catch'](handleError(_0x5b90e7,null));};exports['getUsers']=function(_0x512265,_0x2352e7,_0x48663d){var _0x3de0e8={};var _0x2197cd={};var _0x1f1f17;var _0x3e3925;return db[_0x8459('0x31')][_0x8459('0x5a')]({'where':{'id':_0x512265[_0x8459('0x48')]['id']}})[_0x8459('0x29')](handleEntityNotFound(_0x2352e7,null))[_0x8459('0x29')](function(_0x2ed625){if(_0x2ed625){_0x1f1f17=_0x2ed625;_0x2197cd[_0x8459('0x36')]=_[_0x8459('0x49')](db[_0x8459('0x5b')]['rawAttributes']);_0x2197cd[_0x8459('0x37')]=_['keys'](_0x512265[_0x8459('0x37')]);_0x2197cd[_0x8459('0x38')]=_[_0x8459('0x3a')](_0x2197cd[_0x8459('0x36')],_0x2197cd[_0x8459('0x37')]);_0x3de0e8[_0x8459('0x39')]=_[_0x8459('0x3a')](_0x2197cd['model'],qs['fields'](_0x512265['query'][_0x8459('0x5c')]));_0x3de0e8[_0x8459('0x39')]=_0x3de0e8[_0x8459('0x39')][_0x8459('0x3b')]?_0x3de0e8[_0x8459('0x39')]:_0x2197cd['model'];_0x3de0e8['order']=qs['sort'](_0x512265[_0x8459('0x37')][_0x8459('0x3e')]);_0x3de0e8[_0x8459('0x3f')]=qs[_0x8459('0x38')](_[_0x8459('0x40')](_0x512265[_0x8459('0x37')],_0x2197cd[_0x8459('0x38')]));if(_0x512265[_0x8459('0x37')][_0x8459('0x41')]){_0x3de0e8['where']=_[_0x8459('0x42')](_0x3de0e8[_0x8459('0x3f')],{'$or':_[_0x8459('0x30')](_0x3de0e8[_0x8459('0x39')],function(_0x29dfaf){var _0x2fc571={};_0x2fc571[_0x29dfaf]={'$like':'%'+_0x512265['query'][_0x8459('0x41')]+'%'};return _0x2fc571;})});}_0x3de0e8=_['merge']({},_0x3de0e8,_0x512265[_0x8459('0x45')]);return _0x1f1f17[_0x8459('0x5d')](_0x3de0e8);}})[_0x8459('0x29')](function(_0x5bff98){if(_0x5bff98){_0x3e3925=_0x5bff98[_0x8459('0x3b')];if(!_0x512265['query'][_0x8459('0x3c')](_0x8459('0x3d'))){_0x3de0e8[_0x8459('0x23')]=qs['limit'](_0x512265['query'][_0x8459('0x23')]);_0x3de0e8[_0x8459('0x21')]=qs[_0x8459('0x21')](_0x512265[_0x8459('0x37')][_0x8459('0x21')]);}return _0x1f1f17[_0x8459('0x5d')](_0x3de0e8);}})[_0x8459('0x29')](function(_0x2f5422){if(_0x2f5422){return _0x2f5422?{'count':_0x3e3925,'rows':_0x2f5422}:null;}})[_0x8459('0x29')](respondWithResult(_0x2352e7,null))[_0x8459('0x51')](handleError(_0x2352e7,null));};