Built motion from commit efa66e19.|2.6.22
[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 _0x529c=['intersection','attributes','fields','length','nolimit','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','update','params','agi','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','defaults','redis','localhost','./squareProject.socket','status','json','undefined','count','offset','limit','Content-Range','destroy','then','SquareProjects','UserProfileResource','publish','stringify','end','sendStatus','error','stack','name','send','index','map','SquareProject','rawAttributes','fieldName','type','model','query','keys','filters'];(function(_0x25ab55,_0x3c2d1d){var _0x4e2d65=function(_0x2bb417){while(--_0x2bb417){_0x25ab55['push'](_0x25ab55['shift']());}};_0x4e2d65(++_0x3c2d1d);}(_0x529c,0x170));var _0xc529=function(_0x35640b,_0x252d0a){_0x35640b=_0x35640b-0x0;var _0x1df2ab=_0x529c[_0x35640b];return _0x1df2ab;};'use strict';var _=require(_0xc529('0x0'));var Redis=require(_0xc529('0x1'));var qs=require(_0xc529('0x2'));var logger=require(_0xc529('0x3'))(_0xc529('0x4'));var config=require(_0xc529('0x5'));var db=require(_0xc529('0x6'))['db'];config['redis']=_[_0xc529('0x7')](config[_0xc529('0x8')],{'host':_0xc529('0x9'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc529('0x8')]));require(_0xc529('0xa'))['register'](socket);function respondWithResult(_0x5eaaa7,_0x347f28){_0x347f28=_0x347f28||0xc8;return function(_0x4a1445){if(_0x4a1445){return _0x5eaaa7[_0xc529('0xb')](_0x347f28)[_0xc529('0xc')](_0x4a1445);}};}function respondWithFilteredResult(_0x1862a1,_0x13e228){return function(_0x269665){if(_0x269665){var _0x1aa7f3=typeof _0x13e228['offset']===_0xc529('0xd')&&typeof _0x13e228['limit']===_0xc529('0xd');var _0x231dc7=_0x269665[_0xc529('0xe')];var _0x5a03b2=_0x1aa7f3?0x0:_0x13e228[_0xc529('0xf')];var _0x3d2e89=_0x1aa7f3?_0x269665[_0xc529('0xe')]:_0x13e228[_0xc529('0xf')]+_0x13e228[_0xc529('0x10')];var _0x1e3f4f;if(_0x3d2e89>=_0x231dc7){_0x3d2e89=_0x231dc7;_0x1e3f4f=0xc8;}else{_0x1e3f4f=0xce;}_0x1862a1['status'](_0x1e3f4f);return _0x1862a1['set'](_0xc529('0x11'),_0x5a03b2+'-'+_0x3d2e89+'/'+_0x231dc7)['json'](_0x269665);}return null;};}function saveUpdates(_0x29613a){return function(_0x2c45f1){if(_0x2c45f1){return _0x2c45f1['update'](_0x29613a)['then'](function(_0x572eb4){return _0x572eb4;});}return null;};}function removeEntity(_0x526697){return function(_0x386943){if(_0x386943){return _0x386943[_0xc529('0x12')]()[_0xc529('0x13')](function(){var _0x46bb73=_0x386943['get']({'plain':!![]});var _0x280e94=_0xc529('0x14');return db[_0xc529('0x15')]['destroy']({'where':{'type':_0x280e94,'resourceId':_0x46bb73['id']}})['then'](function(){return _0x386943;});})[_0xc529('0x13')](function(){var _0x1a7f83=new Redis(config[_0xc529('0x8')]);_0x1a7f83[_0xc529('0x16')]('agi',JSON[_0xc529('0x17')]({'id':_0x386943['id'],'deleted':!![]}));})[_0xc529('0x13')](function(){_0x526697[_0xc529('0xb')](0xcc)[_0xc529('0x18')]();});}};}function handleEntityNotFound(_0x17e206){return function(_0x5c32fc){if(!_0x5c32fc){_0x17e206[_0xc529('0x19')](0x194);}return _0x5c32fc;};}function handleError(_0x519b62,_0x553eea){_0x553eea=_0x553eea||0x1f4;return function(_0x1a4e03){logger[_0xc529('0x1a')](_0x1a4e03[_0xc529('0x1b')]);if(_0x1a4e03[_0xc529('0x1c')]){delete _0x1a4e03['name'];}_0x519b62[_0xc529('0xb')](_0x553eea)[_0xc529('0x1d')](_0x1a4e03);};}exports[_0xc529('0x1e')]=function(_0xae0042,_0x6bbd20){var _0x5ba93c={},_0x2715e9={},_0x1db9c5={'count':0x0,'rows':[]};var _0x12335=_[_0xc529('0x1f')](db[_0xc529('0x20')][_0xc529('0x21')],function(_0x553263){return{'name':_0x553263[_0xc529('0x22')],'type':_0x553263[_0xc529('0x23')]['key']};});_0x2715e9[_0xc529('0x24')]=_[_0xc529('0x1f')](_0x12335,_0xc529('0x1c'));_0x2715e9[_0xc529('0x25')]=_[_0xc529('0x26')](_0xae0042[_0xc529('0x25')]);_0x2715e9[_0xc529('0x27')]=_[_0xc529('0x28')](_0x2715e9[_0xc529('0x24')],_0x2715e9['query']);_0x5ba93c[_0xc529('0x29')]=_[_0xc529('0x28')](_0x2715e9[_0xc529('0x24')],qs[_0xc529('0x2a')](_0xae0042[_0xc529('0x25')][_0xc529('0x2a')]));_0x5ba93c['attributes']=_0x5ba93c['attributes'][_0xc529('0x2b')]?_0x5ba93c[_0xc529('0x29')]:_0x2715e9[_0xc529('0x24')];if(!_0xae0042['query']['hasOwnProperty'](_0xc529('0x2c'))){_0x5ba93c[_0xc529('0x10')]=qs[_0xc529('0x10')](_0xae0042[_0xc529('0x25')]['limit']);_0x5ba93c['offset']=qs[_0xc529('0xf')](_0xae0042['query'][_0xc529('0xf')]);}_0x5ba93c['order']=qs[_0xc529('0x2d')](_0xae0042[_0xc529('0x25')][_0xc529('0x2d')]);_0x5ba93c[_0xc529('0x2e')]=qs[_0xc529('0x27')](_[_0xc529('0x2f')](_0xae0042[_0xc529('0x25')],_0x2715e9[_0xc529('0x27')]),_0x12335);if(_0xae0042[_0xc529('0x25')]['filter']){_0x5ba93c[_0xc529('0x2e')]=_[_0xc529('0x30')](_0x5ba93c[_0xc529('0x2e')],{'$or':_[_0xc529('0x1f')](_0x12335,function(_0x30f779){if(_0x30f779[_0xc529('0x23')]!==_0xc529('0x31')){var _0x2254e3={};_0x2254e3[_0x30f779[_0xc529('0x1c')]]={'$like':'%'+_0xae0042[_0xc529('0x25')][_0xc529('0x32')]+'%'};return _0x2254e3;}})});}_0x5ba93c=_[_0xc529('0x30')]({},_0x5ba93c,_0xae0042[_0xc529('0x33')]);var _0x548324={'where':_0x5ba93c['where']};return db['SquareProject']['count'](_0x548324)[_0xc529('0x13')](function(_0x47d3b0){_0x1db9c5['count']=_0x47d3b0;if(_0xae0042[_0xc529('0x25')][_0xc529('0x34')]){_0x5ba93c[_0xc529('0x35')]=[{'all':!![]}];}return db[_0xc529('0x20')][_0xc529('0x36')](_0x5ba93c);})[_0xc529('0x13')](function(_0x522b80){_0x1db9c5[_0xc529('0x37')]=_0x522b80;return _0x1db9c5;})['then'](respondWithFilteredResult(_0x6bbd20,_0x5ba93c))[_0xc529('0x38')](handleError(_0x6bbd20,null));};exports[_0xc529('0x39')]=function(_0xb8c15a,_0x21d8f1){var _0x546a46={'raw':![],'where':{'id':_0xb8c15a['params']['id']}},_0x589fc6={};_0x589fc6[_0xc529('0x24')]=_[_0xc529('0x26')](db['SquareProject'][_0xc529('0x21')]);_0x589fc6[_0xc529('0x25')]=_['keys'](_0xb8c15a[_0xc529('0x25')]);_0x589fc6[_0xc529('0x27')]=_[_0xc529('0x28')](_0x589fc6[_0xc529('0x24')],_0x589fc6[_0xc529('0x25')]);_0x546a46[_0xc529('0x29')]=_[_0xc529('0x28')](_0x589fc6[_0xc529('0x24')],qs['fields'](_0xb8c15a[_0xc529('0x25')][_0xc529('0x2a')]));_0x546a46[_0xc529('0x29')]=_0x546a46[_0xc529('0x29')][_0xc529('0x2b')]?_0x546a46[_0xc529('0x29')]:_0x589fc6[_0xc529('0x24')];if(_0xb8c15a[_0xc529('0x25')][_0xc529('0x34')]){_0x546a46[_0xc529('0x35')]=[{'all':!![]}];}_0x546a46=_[_0xc529('0x30')]({},_0x546a46,_0xb8c15a[_0xc529('0x33')]);return db['SquareProject'][_0xc529('0x3a')](_0x546a46)[_0xc529('0x13')](handleEntityNotFound(_0x21d8f1,null))[_0xc529('0x13')](respondWithResult(_0x21d8f1,null))[_0xc529('0x38')](handleError(_0x21d8f1,null));};exports['create']=function(_0x340c9f,_0x3ef460){return db[_0xc529('0x20')][_0xc529('0x3b')](_0x340c9f[_0xc529('0x3c')],{})[_0xc529('0x13')](function(_0x30a4c7){var _0x37af08=_0x340c9f[_0xc529('0x3d')][_0xc529('0x3e')]({'plain':!![]});if(!_0x37af08)throw new Error(_0xc529('0x3f'));if(_0x37af08['role']===_0xc529('0x3d')){var _0x3acc01=_0x30a4c7[_0xc529('0x3e')]({'plain':!![]});var _0x12c7ff='SquareProjects';return db['UserProfileSection'][_0xc529('0x3a')]({'where':{'name':_0x12c7ff,'userProfileId':_0x37af08[_0xc529('0x40')]},'raw':!![]})[_0xc529('0x13')](function(_0x4dcad7){if(_0x4dcad7&&_0x4dcad7['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x3acc01['name'],'resourceId':_0x3acc01['id'],'type':_0x4dcad7[_0xc529('0x1c')],'sectionId':_0x4dcad7['id']},{})[_0xc529('0x13')](function(){return _0x30a4c7;});}else{return _0x30a4c7;}})[_0xc529('0x38')](function(_0x4a3227){logger[_0xc529('0x1a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4a3227);throw _0x4a3227;});}return _0x30a4c7;})['then'](respondWithResult(_0x3ef460,0xc9))['catch'](handleError(_0x3ef460,null));};exports[_0xc529('0x41')]=function(_0x2a6894,_0x1e946c){if(_0x2a6894[_0xc529('0x3c')]['id']){delete _0x2a6894['body']['id'];}return db['SquareProject'][_0xc529('0x3a')]({'where':{'id':_0x2a6894[_0xc529('0x42')]['id']}})[_0xc529('0x13')](handleEntityNotFound(_0x1e946c,null))[_0xc529('0x13')](saveUpdates(_0x2a6894[_0xc529('0x3c')],null))[_0xc529('0x13')](function(_0x37abe7){if(!_0x37abe7)return;var _0x367d07=_0x37abe7['get']({'plain':!![]});return _0x367d07;})[_0xc529('0x13')](function(_0x4eac98){var _0x1f5439=new Redis(config[_0xc529('0x8')]);_0x1f5439[_0xc529('0x16')](_0xc529('0x43'),JSON[_0xc529('0x17')](_['pick'](_0x4eac98,['id',_0xc529('0x1c'),'production'])));return _0x4eac98;})[_0xc529('0x13')](respondWithResult(_0x1e946c,null))['catch'](handleError(_0x1e946c,null));};exports['destroy']=function(_0x6d11e6,_0x508c7b){return db[_0xc529('0x20')]['find']({'where':{'id':_0x6d11e6[_0xc529('0x42')]['id']}})[_0xc529('0x13')](handleEntityNotFound(_0x508c7b,null))[_0xc529('0x13')](removeEntity(_0x508c7b,null))[_0xc529('0x38')](handleError(_0x508c7b,null));};