b348e195de93884b0914058c5e23452f70911261
[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 _0x655d=['stringify','end','sendStatus','error','stack','name','send','index','map','SquareProject','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','pick','filter','merge','where','VIRTUAL','options','include','findAll','catch','show','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','defaults','redis','localhost','./squareProject.socket','register','status','offset','undefined','limit','count','set','Content-Range','then','destroy','get','UserProfileResource','publish','agi'];(function(_0x36a046,_0x1c37ce){var _0x435883=function(_0x12741f){while(--_0x12741f){_0x36a046['push'](_0x36a046['shift']());}};_0x435883(++_0x1c37ce);}(_0x655d,0x18b));var _0xd655=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0x655d[_0x2c91e9];return _0x13f0ff;};'use strict';var _=require(_0xd655('0x0'));var Redis=require(_0xd655('0x1'));var qs=require(_0xd655('0x2'));var logger=require(_0xd655('0x3'))(_0xd655('0x4'));var config=require(_0xd655('0x5'));var db=require(_0xd655('0x6'))['db'];config['redis']=_[_0xd655('0x7')](config[_0xd655('0x8')],{'host':_0xd655('0x9'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xd655('0xa'))[_0xd655('0xb')](socket);function respondWithResult(_0x8d99d2,_0x16f46b){_0x16f46b=_0x16f46b||0xc8;return function(_0x271d18){if(_0x271d18){return _0x8d99d2[_0xd655('0xc')](_0x16f46b)['json'](_0x271d18);}};}function respondWithFilteredResult(_0x599b40,_0x32acdf){return function(_0x32b4db){if(_0x32b4db){var _0x529c90=typeof _0x32acdf[_0xd655('0xd')]===_0xd655('0xe')&&typeof _0x32acdf[_0xd655('0xf')]===_0xd655('0xe');var _0x4708cc=_0x32b4db[_0xd655('0x10')];var _0x11a48b=_0x529c90?0x0:_0x32acdf[_0xd655('0xd')];var _0x241c4f=_0x529c90?_0x32b4db[_0xd655('0x10')]:_0x32acdf[_0xd655('0xd')]+_0x32acdf[_0xd655('0xf')];var _0x5e76a0;if(_0x241c4f>=_0x4708cc){_0x241c4f=_0x4708cc;_0x5e76a0=0xc8;}else{_0x5e76a0=0xce;}_0x599b40['status'](_0x5e76a0);return _0x599b40[_0xd655('0x11')](_0xd655('0x12'),_0x11a48b+'-'+_0x241c4f+'/'+_0x4708cc)['json'](_0x32b4db);}return null;};}function saveUpdates(_0x23fdf7){return function(_0x26f020){if(_0x26f020){return _0x26f020['update'](_0x23fdf7)[_0xd655('0x13')](function(_0x212bf1){return _0x212bf1;});}return null;};}function removeEntity(_0x59ab2e){return function(_0xaa5fc6){if(_0xaa5fc6){return _0xaa5fc6[_0xd655('0x14')]()['then'](function(){var _0x426494=_0xaa5fc6[_0xd655('0x15')]({'plain':!![]});var _0x111dd1='SquareProjects';return db[_0xd655('0x16')][_0xd655('0x14')]({'where':{'type':_0x111dd1,'resourceId':_0x426494['id']}})['then'](function(){return _0xaa5fc6;});})[_0xd655('0x13')](function(){var _0xf1a511=new Redis(config[_0xd655('0x8')]);_0xf1a511[_0xd655('0x17')](_0xd655('0x18'),JSON[_0xd655('0x19')]({'id':_0xaa5fc6['id'],'deleted':!![]}));})['then'](function(){_0x59ab2e['status'](0xcc)[_0xd655('0x1a')]();});}};}function handleEntityNotFound(_0x2db28e){return function(_0x1e9e44){if(!_0x1e9e44){_0x2db28e[_0xd655('0x1b')](0x194);}return _0x1e9e44;};}function handleError(_0x487aa9,_0x28e5f7){_0x28e5f7=_0x28e5f7||0x1f4;return function(_0x4eb7a0){logger[_0xd655('0x1c')](_0x4eb7a0[_0xd655('0x1d')]);if(_0x4eb7a0[_0xd655('0x1e')]){delete _0x4eb7a0['name'];}_0x487aa9[_0xd655('0xc')](_0x28e5f7)[_0xd655('0x1f')](_0x4eb7a0);};}exports[_0xd655('0x20')]=function(_0x138473,_0x1b2561){var _0x42256b={},_0x53043a={},_0x3b2bb3={'count':0x0,'rows':[]};var _0x628f74=_[_0xd655('0x21')](db[_0xd655('0x22')][_0xd655('0x23')],function(_0x509626){return{'name':_0x509626[_0xd655('0x24')],'type':_0x509626[_0xd655('0x25')][_0xd655('0x26')]};});_0x53043a[_0xd655('0x27')]=_[_0xd655('0x21')](_0x628f74,_0xd655('0x1e'));_0x53043a[_0xd655('0x28')]=_[_0xd655('0x29')](_0x138473[_0xd655('0x28')]);_0x53043a[_0xd655('0x2a')]=_['intersection'](_0x53043a['model'],_0x53043a[_0xd655('0x28')]);_0x42256b[_0xd655('0x2b')]=_[_0xd655('0x2c')](_0x53043a[_0xd655('0x27')],qs[_0xd655('0x2d')](_0x138473[_0xd655('0x28')][_0xd655('0x2d')]));_0x42256b[_0xd655('0x2b')]=_0x42256b[_0xd655('0x2b')][_0xd655('0x2e')]?_0x42256b['attributes']:_0x53043a['model'];if(!_0x138473[_0xd655('0x28')][_0xd655('0x2f')](_0xd655('0x30'))){_0x42256b['limit']=qs[_0xd655('0xf')](_0x138473[_0xd655('0x28')][_0xd655('0xf')]);_0x42256b[_0xd655('0xd')]=qs[_0xd655('0xd')](_0x138473[_0xd655('0x28')][_0xd655('0xd')]);}_0x42256b['order']=qs[_0xd655('0x31')](_0x138473[_0xd655('0x28')][_0xd655('0x31')]);_0x42256b['where']=qs['filters'](_[_0xd655('0x32')](_0x138473[_0xd655('0x28')],_0x53043a[_0xd655('0x2a')]),_0x628f74);if(_0x138473['query'][_0xd655('0x33')]){_0x42256b['where']=_[_0xd655('0x34')](_0x42256b[_0xd655('0x35')],{'$or':_[_0xd655('0x21')](_0x628f74,function(_0x2b9844){if(_0x2b9844[_0xd655('0x25')]!==_0xd655('0x36')){var _0x5651d4={};_0x5651d4[_0x2b9844[_0xd655('0x1e')]]={'$like':'%'+_0x138473[_0xd655('0x28')]['filter']+'%'};return _0x5651d4;}})});}_0x42256b=_['merge']({},_0x42256b,_0x138473[_0xd655('0x37')]);var _0x12d8a0={'where':_0x42256b[_0xd655('0x35')]};return db[_0xd655('0x22')][_0xd655('0x10')](_0x12d8a0)[_0xd655('0x13')](function(_0x1a5f71){_0x3b2bb3['count']=_0x1a5f71;if(_0x138473['query']['includeAll']){_0x42256b[_0xd655('0x38')]=[{'all':!![]}];}return db['SquareProject'][_0xd655('0x39')](_0x42256b);})[_0xd655('0x13')](function(_0x2e4c63){_0x3b2bb3['rows']=_0x2e4c63;return _0x3b2bb3;})['then'](respondWithFilteredResult(_0x1b2561,_0x42256b))[_0xd655('0x3a')](handleError(_0x1b2561,null));};exports[_0xd655('0x3b')]=function(_0x2bcbd2,_0x4c60de){var _0x26f224={'raw':![],'where':{'id':_0x2bcbd2['params']['id']}},_0x1b2d5b={};_0x1b2d5b[_0xd655('0x27')]=_[_0xd655('0x29')](db[_0xd655('0x22')][_0xd655('0x23')]);_0x1b2d5b[_0xd655('0x28')]=_[_0xd655('0x29')](_0x2bcbd2[_0xd655('0x28')]);_0x1b2d5b[_0xd655('0x2a')]=_['intersection'](_0x1b2d5b[_0xd655('0x27')],_0x1b2d5b[_0xd655('0x28')]);_0x26f224[_0xd655('0x2b')]=_[_0xd655('0x2c')](_0x1b2d5b[_0xd655('0x27')],qs['fields'](_0x2bcbd2[_0xd655('0x28')]['fields']));_0x26f224['attributes']=_0x26f224[_0xd655('0x2b')]['length']?_0x26f224['attributes']:_0x1b2d5b[_0xd655('0x27')];if(_0x2bcbd2[_0xd655('0x28')]['includeAll']){_0x26f224[_0xd655('0x38')]=[{'all':!![]}];}_0x26f224=_[_0xd655('0x34')]({},_0x26f224,_0x2bcbd2['options']);return db['SquareProject'][_0xd655('0x3c')](_0x26f224)[_0xd655('0x13')](handleEntityNotFound(_0x4c60de,null))['then'](respondWithResult(_0x4c60de,null))['catch'](handleError(_0x4c60de,null));};exports[_0xd655('0x3d')]=function(_0x1f1ce8,_0x6975b7){return db[_0xd655('0x22')][_0xd655('0x3d')](_0x1f1ce8[_0xd655('0x3e')],{})[_0xd655('0x13')](function(_0x2c3aa9){var _0x50a316=_0x1f1ce8[_0xd655('0x3f')][_0xd655('0x15')]({'plain':!![]});if(!_0x50a316)throw new Error(_0xd655('0x40'));if(_0x50a316[_0xd655('0x41')]===_0xd655('0x3f')){var _0x3434fe=_0x2c3aa9[_0xd655('0x15')]({'plain':!![]});var _0x416c98='SquareProjects';return db[_0xd655('0x42')][_0xd655('0x3c')]({'where':{'name':_0x416c98,'userProfileId':_0x50a316[_0xd655('0x43')]},'raw':!![]})['then'](function(_0x491f6e){if(_0x491f6e&&_0x491f6e['autoAssociation']===0x0){return db['UserProfileResource'][_0xd655('0x3d')]({'name':_0x3434fe[_0xd655('0x1e')],'resourceId':_0x3434fe['id'],'type':_0x491f6e[_0xd655('0x1e')],'sectionId':_0x491f6e['id']},{})[_0xd655('0x13')](function(){return _0x2c3aa9;});}else{return _0x2c3aa9;}})[_0xd655('0x3a')](function(_0x3f1b77){logger['error'](_0xd655('0x44'),_0x3f1b77);throw _0x3f1b77;});}return _0x2c3aa9;})[_0xd655('0x13')](respondWithResult(_0x6975b7,0xc9))[_0xd655('0x3a')](handleError(_0x6975b7,null));};exports['update']=function(_0x11fea4,_0x5bc0bf){if(_0x11fea4[_0xd655('0x3e')]['id']){delete _0x11fea4[_0xd655('0x3e')]['id'];}return db[_0xd655('0x22')][_0xd655('0x3c')]({'where':{'id':_0x11fea4[_0xd655('0x45')]['id']}})[_0xd655('0x13')](handleEntityNotFound(_0x5bc0bf,null))[_0xd655('0x13')](saveUpdates(_0x11fea4[_0xd655('0x3e')],null))[_0xd655('0x13')](function(_0x95b046){if(!_0x95b046)return;var _0x547883=_0x95b046[_0xd655('0x15')]({'plain':!![]});return _0x547883;})[_0xd655('0x13')](function(_0x5a97d7){var _0x187212=new Redis(config[_0xd655('0x8')]);_0x187212[_0xd655('0x17')]('agi',JSON[_0xd655('0x19')](_[_0xd655('0x32')](_0x5a97d7,['id',_0xd655('0x1e'),'production'])));return _0x5a97d7;})[_0xd655('0x13')](respondWithResult(_0x5bc0bf,null))[_0xd655('0x3a')](handleError(_0x5bc0bf,null));};exports[_0xd655('0x14')]=function(_0x4073e1,_0x2b6e2f){return db[_0xd655('0x22')][_0xd655('0x3c')]({'where':{'id':_0x4073e1[_0xd655('0x45')]['id']}})[_0xd655('0x13')](handleEntityNotFound(_0x2b6e2f,null))[_0xd655('0x13')](removeEntity(_0x2b6e2f,null))[_0xd655('0x3a')](handleError(_0x2b6e2f,null));};