8d257a4c11cab63974a6bd96a9975cfdbea8b242
[motion2.git] / server / api / userProfileResource / userProfileResource.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 _0x87c9=['interaction','account','index','map','UserProfileResource','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','type','VIRTUAL','options','count','includeAll','include','findAll','rows','catch','show','find','create','body','params','describe','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','limit','offset','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','merge','contact','agent'];(function(_0x2a5205,_0x2acca3){var _0x244d4b=function(_0x2598e2){while(--_0x2598e2){_0x2a5205['push'](_0x2a5205['shift']());}};_0x244d4b(++_0x2acca3);}(_0x87c9,0x176));var _0x987c=function(_0x12d2b5,_0x453454){_0x12d2b5=_0x12d2b5-0x0;var _0x252c90=_0x87c9[_0x12d2b5];return _0x252c90;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x987c('0x0'));var zipdir=require(_0x987c('0x1'));var jsonpatch=require(_0x987c('0x2'));var rp=require('request-promise');var moment=require(_0x987c('0x3'));var BPromise=require(_0x987c('0x4'));var Mustache=require(_0x987c('0x5'));var util=require('util');var path=require(_0x987c('0x6'));var sox=require(_0x987c('0x7'));var csv=require(_0x987c('0x8'));var ejs=require(_0x987c('0x9'));var fs=require('fs');var fs_extra=require(_0x987c('0xa'));var _=require(_0x987c('0xb'));var squel=require(_0x987c('0xc'));var crypto=require(_0x987c('0xd'));var jsforce=require(_0x987c('0xe'));var deskjs=require(_0x987c('0xf'));var toCsv=require(_0x987c('0x8'));var querystring=require('querystring');var Papa=require(_0x987c('0x10'));var Redis=require(_0x987c('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x987c('0x12'));var hardwareService=require(_0x987c('0x13'));var logger=require(_0x987c('0x14'))(_0x987c('0x15'));var utils=require(_0x987c('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x987c('0x17'));var db=require(_0x987c('0x18'))['db'];function respondWithStatusCode(_0x1dc109,_0x2cf643){_0x2cf643=_0x2cf643||0xcc;return function(_0x4fedea){if(_0x4fedea){return _0x1dc109[_0x987c('0x19')](_0x2cf643);}return _0x1dc109[_0x987c('0x1a')](_0x2cf643)[_0x987c('0x1b')]();};}function respondWithResult(_0x2c7d79,_0x5f211d){_0x5f211d=_0x5f211d||0xc8;return function(_0x4ee429){if(_0x4ee429){return _0x2c7d79[_0x987c('0x1a')](_0x5f211d)['json'](_0x4ee429);}};}function respondWithFilteredResult(_0x4f9ecd,_0x1e280c){return function(_0x3b4229){if(_0x3b4229){var _0x28a1d9=typeof _0x1e280c['offset']===_0x987c('0x1c')&&typeof _0x1e280c[_0x987c('0x1d')]===_0x987c('0x1c');var _0x457c2b=_0x3b4229['count'];var _0x37ee1f=_0x28a1d9?0x0:_0x1e280c[_0x987c('0x1e')];var _0x4abf3a=_0x28a1d9?_0x3b4229['count']:_0x1e280c['offset']+_0x1e280c[_0x987c('0x1d')];var _0x4aed34;if(_0x4abf3a>=_0x457c2b){_0x4abf3a=_0x457c2b;_0x4aed34=0xc8;}else{_0x4aed34=0xce;}_0x4f9ecd[_0x987c('0x1a')](_0x4aed34);return _0x4f9ecd[_0x987c('0x1f')](_0x987c('0x20'),_0x37ee1f+'-'+_0x4abf3a+'/'+_0x457c2b)['json'](_0x3b4229);}return null;};}function patchUpdates(_0x40e792){return function(_0x4b49dc){try{jsonpatch[_0x987c('0x21')](_0x4b49dc,_0x40e792,!![]);}catch(_0x51843d){return BPromise[_0x987c('0x22')](_0x51843d);}return _0x4b49dc[_0x987c('0x23')]();};}function saveUpdates(_0x8beec4,_0x42e376){return function(_0x3d8ed0){if(_0x3d8ed0){return _0x3d8ed0[_0x987c('0x24')](_0x8beec4)[_0x987c('0x25')](function(_0x114bff){return _0x114bff;});}return null;};}function removeEntity(_0x5ab1f0,_0x1d10d9){return function(_0x4c0195){if(_0x4c0195){return _0x4c0195[_0x987c('0x26')]()[_0x987c('0x25')](function(){_0x5ab1f0[_0x987c('0x1a')](0xcc)[_0x987c('0x1b')]();});}};}function handleEntityNotFound(_0x40c7d1,_0x129b5d){return function(_0x3e92a0){if(!_0x3e92a0){_0x40c7d1[_0x987c('0x19')](0x194);}return _0x3e92a0;};}function handleError(_0x508c99,_0x476fcd){_0x476fcd=_0x476fcd||0x1f4;return function(_0x653d56){logger[_0x987c('0x27')](_0x653d56[_0x987c('0x28')]);if(_0x653d56[_0x987c('0x29')]){delete _0x653d56[_0x987c('0x29')];}_0x508c99[_0x987c('0x1a')](_0x476fcd)[_0x987c('0x2a')](_0x653d56);};}function getMustacheRender(_0x434b45,_0x5c34b1){return Mustache['render'](_0x434b45,_[_0x987c('0x2b')](_0x5c34b1['body'],{'contact':_0x5c34b1[_0x987c('0x2c')],'message':_0x5c34b1['message'],'agent':_0x5c34b1[_0x987c('0x2d')],'interaction':_0x5c34b1[_0x987c('0x2e')],'account':_0x5c34b1[_0x987c('0x2f')]}))||'';}exports[_0x987c('0x30')]=function(_0x45e5e6,_0x3a059b){var _0x3a0f1b={},_0x12a718={},_0x356863={'count':0x0,'rows':[]};var _0x3d6c21=_[_0x987c('0x31')](db[_0x987c('0x32')][_0x987c('0x33')],function(_0x131067){return{'name':_0x131067[_0x987c('0x34')],'type':_0x131067['type'][_0x987c('0x35')]};});_0x12a718[_0x987c('0x36')]=_[_0x987c('0x31')](_0x3d6c21,'name');_0x12a718[_0x987c('0x37')]=_[_0x987c('0x38')](_0x45e5e6['query']);_0x12a718['filters']=_[_0x987c('0x39')](_0x12a718[_0x987c('0x36')],_0x12a718['query']);_0x3a0f1b[_0x987c('0x3a')]=_[_0x987c('0x39')](_0x12a718[_0x987c('0x36')],qs[_0x987c('0x3b')](_0x45e5e6[_0x987c('0x37')][_0x987c('0x3b')]));_0x3a0f1b[_0x987c('0x3a')]=_0x3a0f1b[_0x987c('0x3a')][_0x987c('0x3c')]?_0x3a0f1b[_0x987c('0x3a')]:_0x12a718['model'];if(!_0x45e5e6['query'][_0x987c('0x3d')](_0x987c('0x3e'))){_0x3a0f1b['limit']=qs['limit'](_0x45e5e6[_0x987c('0x37')][_0x987c('0x1d')]);_0x3a0f1b[_0x987c('0x1e')]=qs[_0x987c('0x1e')](_0x45e5e6['query'][_0x987c('0x1e')]);}_0x3a0f1b[_0x987c('0x3f')]=qs['sort'](_0x45e5e6['query'][_0x987c('0x40')]);_0x3a0f1b[_0x987c('0x41')]=qs[_0x987c('0x42')](_[_0x987c('0x43')](_0x45e5e6[_0x987c('0x37')],_0x12a718[_0x987c('0x42')]),_0x3d6c21);if(_0x45e5e6[_0x987c('0x37')][_0x987c('0x44')]){_0x3a0f1b[_0x987c('0x41')]=_[_0x987c('0x2b')](_0x3a0f1b['where'],{'$or':_['map'](_0x3d6c21,function(_0x44ff34){if(_0x44ff34[_0x987c('0x45')]!==_0x987c('0x46')){var _0x5a716e={};_0x5a716e[_0x44ff34['name']]={'$like':'%'+_0x45e5e6['query'][_0x987c('0x44')]+'%'};return _0x5a716e;}})});}_0x3a0f1b=_[_0x987c('0x2b')]({},_0x3a0f1b,_0x45e5e6[_0x987c('0x47')]);var _0x31e438={'where':_0x3a0f1b[_0x987c('0x41')]};return db[_0x987c('0x32')][_0x987c('0x48')](_0x31e438)[_0x987c('0x25')](function(_0x37b645){_0x356863['count']=_0x37b645;if(_0x45e5e6[_0x987c('0x37')][_0x987c('0x49')]){_0x3a0f1b[_0x987c('0x4a')]=[{'all':!![]}];}return db[_0x987c('0x32')][_0x987c('0x4b')](_0x3a0f1b);})[_0x987c('0x25')](function(_0x2287bd){_0x356863[_0x987c('0x4c')]=_0x2287bd;return _0x356863;})['then'](respondWithFilteredResult(_0x3a059b,_0x3a0f1b))[_0x987c('0x4d')](handleError(_0x3a059b,null));};exports[_0x987c('0x4e')]=function(_0x438669,_0x292a6a){var _0x115bff={'raw':![],'where':{'id':_0x438669['params']['id']}},_0x39a89c={};_0x39a89c['model']=_[_0x987c('0x38')](db[_0x987c('0x32')][_0x987c('0x33')]);_0x39a89c['query']=_[_0x987c('0x38')](_0x438669[_0x987c('0x37')]);_0x39a89c['filters']=_['intersection'](_0x39a89c[_0x987c('0x36')],_0x39a89c[_0x987c('0x37')]);_0x115bff[_0x987c('0x3a')]=_[_0x987c('0x39')](_0x39a89c[_0x987c('0x36')],qs['fields'](_0x438669[_0x987c('0x37')]['fields']));_0x115bff[_0x987c('0x3a')]=_0x115bff[_0x987c('0x3a')][_0x987c('0x3c')]?_0x115bff['attributes']:_0x39a89c[_0x987c('0x36')];if(_0x438669['query'][_0x987c('0x49')]){_0x115bff['include']=[{'all':!![]}];}_0x115bff=_[_0x987c('0x2b')]({},_0x115bff,_0x438669[_0x987c('0x47')]);return db[_0x987c('0x32')][_0x987c('0x4f')](_0x115bff)[_0x987c('0x25')](handleEntityNotFound(_0x292a6a,null))[_0x987c('0x25')](respondWithResult(_0x292a6a,null))[_0x987c('0x4d')](handleError(_0x292a6a,null));};exports[_0x987c('0x50')]=function(_0x413399,_0x4c9fc6){return db[_0x987c('0x32')][_0x987c('0x50')](_0x413399['body'],{})[_0x987c('0x25')](respondWithResult(_0x4c9fc6,0xc9))[_0x987c('0x4d')](handleError(_0x4c9fc6,null));};exports[_0x987c('0x24')]=function(_0x469417,_0x28ebc7){if(_0x469417[_0x987c('0x51')]['id']){delete _0x469417[_0x987c('0x51')]['id'];}return db['UserProfileResource'][_0x987c('0x4f')]({'where':{'id':_0x469417[_0x987c('0x52')]['id']}})[_0x987c('0x25')](handleEntityNotFound(_0x28ebc7,null))['then'](saveUpdates(_0x469417[_0x987c('0x51')],null))[_0x987c('0x25')](respondWithResult(_0x28ebc7,null))[_0x987c('0x4d')](handleError(_0x28ebc7,null));};exports[_0x987c('0x26')]=function(_0x14e6fe,_0x3740ed){return db[_0x987c('0x32')][_0x987c('0x4f')]({'where':{'id':_0x14e6fe[_0x987c('0x52')]['id']}})['then'](handleEntityNotFound(_0x3740ed,null))[_0x987c('0x25')](removeEntity(_0x3740ed,null))[_0x987c('0x4d')](handleError(_0x3740ed,null));};exports[_0x987c('0x53')]=function(_0x56bd3e,_0x3a3bc9){return db[_0x987c('0x32')]['describe']()['then'](respondWithResult(_0x3a3bc9,null))['catch'](handleError(_0x3a3bc9,null));};