290e32afb620590d67f62de055ea4e95f43d8fdc
[motion2.git] / server / api / cannedAnswer / cannedAnswer.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 _0x86d8=['autoAssociation','error','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','count','set','Content-Range','json','apply','reject','save','update','then','get','CannedAnswers','UserProfileResource','destroy','stack','name','send','index','map','CannedAnswer','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','order','sort','where','filter','merge','options','includeAll','include','findAll','params','keys','length','find','catch','body','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId'];(function(_0x174ef5,_0x256e8e){var _0x1cc379=function(_0x3eafcf){while(--_0x3eafcf){_0x174ef5['push'](_0x174ef5['shift']());}};_0x1cc379(++_0x256e8e);}(_0x86d8,0xba));var _0x886d=function(_0x2efb30,_0x1a310e){_0x2efb30=_0x2efb30-0x0;var _0x39e68c=_0x86d8[_0x2efb30];return _0x39e68c;};'use strict';var emlformat=require(_0x886d('0x0'));var rimraf=require(_0x886d('0x1'));var zipdir=require(_0x886d('0x2'));var jsonpatch=require(_0x886d('0x3'));var rp=require(_0x886d('0x4'));var moment=require(_0x886d('0x5'));var BPromise=require(_0x886d('0x6'));var Mustache=require(_0x886d('0x7'));var util=require(_0x886d('0x8'));var path=require(_0x886d('0x9'));var sox=require(_0x886d('0xa'));var csv=require(_0x886d('0xb'));var ejs=require(_0x886d('0xc'));var fs=require('fs');var fs_extra=require(_0x886d('0xd'));var _=require(_0x886d('0xe'));var squel=require('squel');var crypto=require(_0x886d('0xf'));var jsforce=require(_0x886d('0x10'));var deskjs=require(_0x886d('0x11'));var toCsv=require(_0x886d('0xb'));var querystring=require(_0x886d('0x12'));var Papa=require(_0x886d('0x13'));var Redis=require(_0x886d('0x14'));var authService=require(_0x886d('0x15'));var qs=require('../../components/parsers/qs');var as=require(_0x886d('0x16'));var hardwareService=require(_0x886d('0x17'));var logger=require(_0x886d('0x18'))(_0x886d('0x19'));var utils=require('../../config/utils');var config=require(_0x886d('0x1a'));var licenseUtil=require(_0x886d('0x1b'));var db=require(_0x886d('0x1c'))['db'];function respondWithStatusCode(_0x5ec95a,_0x1330c9){_0x1330c9=_0x1330c9||0xcc;return function(_0x2bb0ae){if(_0x2bb0ae){return _0x5ec95a[_0x886d('0x1d')](_0x1330c9);}return _0x5ec95a[_0x886d('0x1e')](_0x1330c9)[_0x886d('0x1f')]();};}function respondWithResult(_0x321db3,_0x217e14){_0x217e14=_0x217e14||0xc8;return function(_0x17d4bd){if(_0x17d4bd){return _0x321db3[_0x886d('0x1e')](_0x217e14)['json'](_0x17d4bd);}};}function respondWithFilteredResult(_0x3b494a,_0x30beb1){return function(_0x313e64){if(_0x313e64){var _0xf8fa0f=typeof _0x30beb1[_0x886d('0x20')]==='undefined'&&typeof _0x30beb1[_0x886d('0x21')]==='undefined';var _0x19861a=_0x313e64['count'];var _0x2f9f10=_0xf8fa0f?0x0:_0x30beb1[_0x886d('0x20')];var _0x3293fb=_0xf8fa0f?_0x313e64[_0x886d('0x22')]:_0x30beb1[_0x886d('0x20')]+_0x30beb1[_0x886d('0x21')];var _0x25bcff;if(_0x3293fb>=_0x19861a){_0x3293fb=_0x19861a;_0x25bcff=0xc8;}else{_0x25bcff=0xce;}_0x3b494a[_0x886d('0x1e')](_0x25bcff);return _0x3b494a[_0x886d('0x23')](_0x886d('0x24'),_0x2f9f10+'-'+_0x3293fb+'/'+_0x19861a)[_0x886d('0x25')](_0x313e64);}return null;};}function patchUpdates(_0x3c5384){return function(_0x17e624){try{jsonpatch[_0x886d('0x26')](_0x17e624,_0x3c5384,!![]);}catch(_0x1b3066){return BPromise[_0x886d('0x27')](_0x1b3066);}return _0x17e624[_0x886d('0x28')]();};}function saveUpdates(_0x494d11,_0x142cbe){return function(_0x179220){if(_0x179220){return _0x179220[_0x886d('0x29')](_0x494d11)[_0x886d('0x2a')](function(_0x9c656){return _0x9c656;});}return null;};}function removeEntity(_0x9e1aa2,_0x586eb4){return function(_0x407b57){if(_0x407b57){return _0x407b57['destroy']()[_0x886d('0x2a')](function(){var _0x2ac533=_0x407b57[_0x886d('0x2b')]({'plain':!![]});var _0x2f7eac=_0x886d('0x2c');return db[_0x886d('0x2d')][_0x886d('0x2e')]({'where':{'type':_0x2f7eac,'resourceId':_0x2ac533['id']}})[_0x886d('0x2a')](function(){return _0x407b57;});})[_0x886d('0x2a')](function(){_0x9e1aa2['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1997c3,_0x356838){return function(_0x26b50f){if(!_0x26b50f){_0x1997c3[_0x886d('0x1d')](0x194);}return _0x26b50f;};}function handleError(_0x240a4d,_0x3a5122){_0x3a5122=_0x3a5122||0x1f4;return function(_0x159bce){logger['error'](_0x159bce[_0x886d('0x2f')]);if(_0x159bce[_0x886d('0x30')]){delete _0x159bce[_0x886d('0x30')];}_0x240a4d[_0x886d('0x1e')](_0x3a5122)[_0x886d('0x31')](_0x159bce);};}exports[_0x886d('0x32')]=function(_0x3f82a3,_0x40f161){var _0x95cc76={},_0x29b01a={},_0x3a06ab={'count':0x0,'rows':[]};var _0x4c0044=_[_0x886d('0x33')](db[_0x886d('0x34')][_0x886d('0x35')],function(_0x356f40){return{'name':_0x356f40['fieldName'],'type':_0x356f40[_0x886d('0x36')][_0x886d('0x37')]};});_0x29b01a[_0x886d('0x38')]=_['map'](_0x4c0044,_0x886d('0x30'));_0x29b01a[_0x886d('0x39')]=_['keys'](_0x3f82a3['query']);_0x29b01a[_0x886d('0x3a')]=_[_0x886d('0x3b')](_0x29b01a['model'],_0x29b01a['query']);_0x95cc76[_0x886d('0x3c')]=_[_0x886d('0x3b')](_0x29b01a[_0x886d('0x38')],qs[_0x886d('0x3d')](_0x3f82a3['query'][_0x886d('0x3d')]));_0x95cc76[_0x886d('0x3c')]=_0x95cc76['attributes']['length']?_0x95cc76[_0x886d('0x3c')]:_0x29b01a['model'];if(!_0x3f82a3[_0x886d('0x39')]['hasOwnProperty']('nolimit')){_0x95cc76['limit']=qs[_0x886d('0x21')](_0x3f82a3['query'][_0x886d('0x21')]);_0x95cc76[_0x886d('0x20')]=qs[_0x886d('0x20')](_0x3f82a3[_0x886d('0x39')][_0x886d('0x20')]);}_0x95cc76[_0x886d('0x3e')]=qs[_0x886d('0x3f')](_0x3f82a3[_0x886d('0x39')][_0x886d('0x3f')]);_0x95cc76[_0x886d('0x40')]=qs[_0x886d('0x3a')](_['pick'](_0x3f82a3[_0x886d('0x39')],_0x29b01a['filters']),_0x4c0044);if(_0x3f82a3[_0x886d('0x39')][_0x886d('0x41')]){_0x95cc76[_0x886d('0x40')]=_[_0x886d('0x42')](_0x95cc76['where'],{'$or':[{'key':{'$like':'%'+_0x3f82a3[_0x886d('0x39')][_0x886d('0x41')]+'%'}},{'value':{'$like':'%'+_0x3f82a3[_0x886d('0x39')][_0x886d('0x41')]+'%'}}]});}_0x95cc76=_[_0x886d('0x42')]({},_0x95cc76,_0x3f82a3[_0x886d('0x43')]);var _0x54bdde={'where':_0x95cc76['where']};return db[_0x886d('0x34')][_0x886d('0x22')](_0x54bdde)[_0x886d('0x2a')](function(_0x25942f){_0x3a06ab[_0x886d('0x22')]=_0x25942f;if(_0x3f82a3['query'][_0x886d('0x44')]){_0x95cc76[_0x886d('0x45')]=[{'all':!![]}];}return db['CannedAnswer'][_0x886d('0x46')](_0x95cc76);})['then'](function(_0x247ea7){_0x3a06ab['rows']=_0x247ea7;return _0x3a06ab;})[_0x886d('0x2a')](respondWithFilteredResult(_0x40f161,_0x95cc76))['catch'](handleError(_0x40f161,null));};exports['show']=function(_0x28ef15,_0x3c0f8b){var _0x306ca8={'raw':!![],'where':{'id':_0x28ef15[_0x886d('0x47')]['id']}},_0x2d3af2={};_0x2d3af2[_0x886d('0x38')]=_[_0x886d('0x48')](db[_0x886d('0x34')][_0x886d('0x35')]);_0x2d3af2[_0x886d('0x39')]=_[_0x886d('0x48')](_0x28ef15['query']);_0x2d3af2[_0x886d('0x3a')]=_[_0x886d('0x3b')](_0x2d3af2['model'],_0x2d3af2['query']);_0x306ca8[_0x886d('0x3c')]=_[_0x886d('0x3b')](_0x2d3af2['model'],qs[_0x886d('0x3d')](_0x28ef15['query']['fields']));_0x306ca8['attributes']=_0x306ca8['attributes'][_0x886d('0x49')]?_0x306ca8[_0x886d('0x3c')]:_0x2d3af2[_0x886d('0x38')];if(_0x28ef15[_0x886d('0x39')][_0x886d('0x44')]){_0x306ca8[_0x886d('0x45')]=[{'all':!![]}];}_0x306ca8=_[_0x886d('0x42')]({},_0x306ca8,_0x28ef15['options']);return db[_0x886d('0x34')][_0x886d('0x4a')](_0x306ca8)[_0x886d('0x2a')](handleEntityNotFound(_0x3c0f8b,null))[_0x886d('0x2a')](respondWithResult(_0x3c0f8b,null))[_0x886d('0x4b')](handleError(_0x3c0f8b,null));};exports[_0x886d('0x29')]=function(_0x80f1ba,_0x14bef8){if(_0x80f1ba[_0x886d('0x4c')]['id']){delete _0x80f1ba[_0x886d('0x4c')]['id'];}return db[_0x886d('0x34')][_0x886d('0x4a')]({'where':{'id':_0x80f1ba['params']['id']}})[_0x886d('0x2a')](handleEntityNotFound(_0x14bef8,null))[_0x886d('0x2a')](saveUpdates(_0x80f1ba[_0x886d('0x4c')],null))['then'](respondWithResult(_0x14bef8,null))['catch'](handleError(_0x14bef8,null));};exports[_0x886d('0x2e')]=function(_0x2c48fe,_0x4218bf){return db[_0x886d('0x34')]['find']({'where':{'id':_0x2c48fe[_0x886d('0x47')]['id']}})[_0x886d('0x2a')](handleEntityNotFound(_0x4218bf,null))[_0x886d('0x2a')](removeEntity(_0x4218bf,null))['catch'](handleError(_0x4218bf,null));};exports[_0x886d('0x4d')]=function(_0x3f02df,_0x22a414){var _0xce7b68={'key':_0x3f02df[_0x886d('0x4c')]['key']};if(_0x3f02df[_0x886d('0x4c')][_0x886d('0x4e')]){_0xce7b68[_0x886d('0x4e')]=_0x3f02df['body'][_0x886d('0x4e')];}else if(_0x3f02df[_0x886d('0x4c')]['SmsAccountId']){_0xce7b68[_0x886d('0x4f')]=_0x3f02df[_0x886d('0x4c')][_0x886d('0x4f')];}else if(_0x3f02df[_0x886d('0x4c')]['OpenchannelAccountId']){_0xce7b68[_0x886d('0x50')]=_0x3f02df['body'][_0x886d('0x50')];}else if(_0x3f02df[_0x886d('0x4c')][_0x886d('0x51')]){_0xce7b68[_0x886d('0x51')]=_0x3f02df[_0x886d('0x4c')][_0x886d('0x51')];}return db['CannedAnswer'][_0x886d('0x4a')]({'where':_0xce7b68})[_0x886d('0x2a')](function(_0xd4903b){if(_0xd4903b){throw new db[(_0x886d('0x52'))][(_0x886d('0x53'))](_0x886d('0x54'));}return db[_0x886d('0x34')][_0x886d('0x4d')](_0x3f02df[_0x886d('0x4c')]);})[_0x886d('0x2a')](function(_0x47076f){var _0x41d6e8=_0x3f02df[_0x886d('0x55')]['get']({'plain':!![]});if(!_0x41d6e8)throw new Error(_0x886d('0x56'));if(_0x41d6e8[_0x886d('0x57')]===_0x886d('0x55')){var _0x1bbb7e=_0x47076f['get']({'plain':!![]});return db[_0x886d('0x58')]['find']({'where':{'name':'CannedAnswers','userProfileId':_0x41d6e8[_0x886d('0x59')]},'raw':!![]})[_0x886d('0x2a')](function(_0x1d9c83){if(_0x1d9c83&&_0x1d9c83[_0x886d('0x5a')]===0x0){return db[_0x886d('0x2d')][_0x886d('0x4d')]({'name':_0x1bbb7e[_0x886d('0x30')],'resourceId':_0x1bbb7e['id'],'type':_0x1d9c83[_0x886d('0x30')],'sectionId':_0x1d9c83['id']},{})[_0x886d('0x2a')](function(){return _0x47076f;});}else{return _0x47076f;}})[_0x886d('0x4b')](function(_0x2e15ca){logger[_0x886d('0x5b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2e15ca);throw _0x2e15ca;});}return _0x47076f;})[_0x886d('0x2a')](respondWithResult(_0x22a414,0xc9))[_0x886d('0x4b')](handleError(_0x22a414,null));};