Built motion from commit (unavailable).|2.4.0
[motion2.git] / server / api / openchannelMessage / openchannelMessage.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 _0x9186=['bluebird','mustache','util','path','sox','ejs','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','redis','defaults','localhost','socket.io-emitter','./openchannelMessage.socket','register','jayson/promise','http','test','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','status','end','count','offset','limit','set','Content-Range','json','reject','save','destroy','stack','name','send','index','rawAttributes','model','keys','query','intersection','attributes','fields','length','sort','where','filters','pick','merge','map','type','key','VIRTUAL','field','filter','options','OpenchannelMessage','include','show','find','create','body','params','describe','openchannel-interactions','accept','openchannel','read','readAt','format','UserId','user','CmContact','Contact','get','OpenchannelInteraction','OpenchannelInteractionId','update','isNil','read1stAt','interaction','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','event','EventManager','acceptmessage','RejectMessage','rejectMessage','rejectmessage','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment'];(function(_0x451e44,_0x2a4226){var _0x58f6ca=function(_0x504c35){while(--_0x504c35){_0x451e44['push'](_0x451e44['shift']());}};_0x58f6ca(++_0x2a4226);}(_0x9186,0x1e6));var _0x6918=function(_0xe896bf,_0x4f8e5e){_0xe896bf=_0xe896bf-0x0;var _0x4c7a8a=_0x9186[_0xe896bf];return _0x4c7a8a;};'use strict';var pdf=require(_0x6918('0x0'));var emlformat=require(_0x6918('0x1'));var rimraf=require(_0x6918('0x2'));var zipdir=require(_0x6918('0x3'));var jsonpatch=require(_0x6918('0x4'));var rp=require('request-promise');var moment=require(_0x6918('0x5'));var BPromise=require(_0x6918('0x6'));var Mustache=require(_0x6918('0x7'));var util=require(_0x6918('0x8'));var path=require(_0x6918('0x9'));var sox=require(_0x6918('0xa'));var csv=require('to-csv');var ejs=require(_0x6918('0xb'));var fs=require('fs');var _=require(_0x6918('0xc'));var squel=require('squel');var crypto=require(_0x6918('0xd'));var jsforce=require(_0x6918('0xe'));var deskjs=require(_0x6918('0xf'));var toCsv=require(_0x6918('0x10'));var querystring=require(_0x6918('0x11'));var Papa=require(_0x6918('0x12'));var Redis=require(_0x6918('0x13'));var authService=require(_0x6918('0x14'));var qs=require('../../components/parsers/qs');var hardwareService=require(_0x6918('0x15'));var logger=require(_0x6918('0x16'))(_0x6918('0x17'));var utils=require(_0x6918('0x18'));var config=require(_0x6918('0x19'));var db=require('../../mysqldb')['db'];config[_0x6918('0x1a')]=_[_0x6918('0x1b')](config[_0x6918('0x1a')],{'host':_0x6918('0x1c'),'port':0x18eb});var socket=require(_0x6918('0x1d'))(new Redis(config[_0x6918('0x1a')]));require(_0x6918('0x1e'))[_0x6918('0x1f')](socket);var jayson=require(_0x6918('0x20'));var client=jayson['client'][_0x6918('0x21')]({'port':0x232c});var client9002=jayson['client'][_0x6918('0x21')]({'port':0x232a});function checkPasswordPattern(_0x39d8ec,_0x2ce41c,_0x2a5c80){if(_0x2a5c80){var _0x25e5ec=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x25e5ec[_0x6918('0x22')](_0x2ce41c)){return _0x39d8ec;}else{throw new Error(_0x6918('0x23'));}}else{return _0x39d8ec;}}function respondWithRpcPromise(_0x584635,_0xae7de,_0x5284c8,_0x403a50){return new BPromise(function(_0x2f840c,_0x57da8a){var _0x1ef623=_0x403a50||client;return _0x1ef623[_0x6918('0x24')](_0x584635,_0x5284c8)[_0x6918('0x25')](function(_0x2b737c){logger[_0x6918('0x26')](_0x6918('0x27'),_0xae7de,_0x6918('0x28'));logger[_0x6918('0x29')](_0x6918('0x2a'),_0xae7de,_0x6918('0x28'),JSON[_0x6918('0x2b')](_0x2b737c));if(_0x2b737c['error']){if(_0x2b737c['error']['code']===0x1f4){logger[_0x6918('0x2c')]('OpenchannelMessage,\x20%s,\x20%s',_0xae7de,_0x2b737c[_0x6918('0x2c')][_0x6918('0x2d')]);return _0x57da8a(_0x2b737c[_0x6918('0x2c')]['message']);}logger[_0x6918('0x2c')](_0x6918('0x27'),_0xae7de,_0x2b737c['error'][_0x6918('0x2d')]);return _0x2f840c(_0x2b737c[_0x6918('0x2c')]['message']);}else{logger[_0x6918('0x26')](_0x6918('0x27'),_0xae7de,_0x6918('0x28'));_0x2f840c(_0x2b737c[_0x6918('0x2e')][_0x6918('0x2d')]);}})[_0x6918('0x2f')](function(_0x4d8c15){logger[_0x6918('0x2c')](_0x6918('0x27'),_0xae7de,_0x4d8c15);_0x57da8a(_0x4d8c15);});});}function respondWithStatusCode(_0x5a27fe,_0x47a805){_0x47a805=_0x47a805||0xcc;return function(_0x155b9a){if(_0x155b9a){return _0x5a27fe['sendStatus'](_0x47a805);}return _0x5a27fe[_0x6918('0x30')](_0x47a805)[_0x6918('0x31')]();};}function respondWithResult(_0x5a970e,_0x5db617){_0x5db617=_0x5db617||0xc8;return function(_0x19b6dd){if(_0x19b6dd){return _0x5a970e['status'](_0x5db617)['json'](_0x19b6dd);}};}function respondWithFilteredResult(_0x570e83,_0x49256f){return function(_0x5167e4){if(_0x5167e4){var _0x2acac4=_0x5167e4[_0x6918('0x32')],_0x4e1207=_0x49256f[_0x6918('0x33')],_0x3b4450=_0x49256f[_0x6918('0x33')]+_0x49256f[_0x6918('0x34')],_0x33ac8d;if(_0x3b4450>=_0x2acac4){_0x3b4450=_0x2acac4;_0x33ac8d=0xc8;}else{_0x33ac8d=0xce;}_0x570e83['status'](_0x33ac8d);return _0x570e83[_0x6918('0x35')](_0x6918('0x36'),_0x4e1207+'-'+_0x3b4450+'/'+_0x2acac4)[_0x6918('0x37')](_0x5167e4);}return null;};}function patchUpdates(_0x2b73bd){return function(_0x1cbf63){try{jsonpatch['apply'](_0x1cbf63,_0x2b73bd,!![]);}catch(_0x3fec39){return BPromise[_0x6918('0x38')](_0x3fec39);}return _0x1cbf63[_0x6918('0x39')]();};}function saveUpdates(_0x22a994,_0x1be1c4){return function(_0x199273){if(_0x199273){return _0x199273['update'](_0x22a994)[_0x6918('0x25')](function(_0x4887f0){return _0x4887f0;});}return null;};}function removeEntity(_0x4f55f8,_0x51517f){return function(_0x5849cd){if(_0x5849cd){return _0x5849cd[_0x6918('0x3a')]()[_0x6918('0x25')](function(){_0x4f55f8['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x55f2a1,_0x9e60bf){return function(_0x898524){if(!_0x898524){_0x55f2a1['sendStatus'](0x194);}return _0x898524;};}function handleError(_0x2f158f,_0x53bd5d){_0x53bd5d=_0x53bd5d||0x1f4;return function(_0x49f0bf){logger[_0x6918('0x2c')](_0x49f0bf[_0x6918('0x3b')]);if(_0x49f0bf['name']){delete _0x49f0bf[_0x6918('0x3c')];}_0x2f158f[_0x6918('0x30')](_0x53bd5d)[_0x6918('0x3d')](_0x49f0bf);};}exports[_0x6918('0x3e')]=function(_0x20fd74,_0xe853da){var _0x1e7903={},_0x4c75b7={},_0x1abd86={'count':0x0,'rows':[]};var _0x4cfea8=db['OpenchannelMessage'][_0x6918('0x3f')];_0x4c75b7[_0x6918('0x40')]=_[_0x6918('0x41')](_0x4cfea8);_0x4c75b7['query']=_[_0x6918('0x41')](_0x20fd74[_0x6918('0x42')]);_0x4c75b7['filters']=_[_0x6918('0x43')](_0x4c75b7['model'],_0x4c75b7[_0x6918('0x42')]);_0x1e7903[_0x6918('0x44')]=_[_0x6918('0x43')](_0x4c75b7['model'],qs[_0x6918('0x45')](_0x20fd74['query']['fields']));_0x1e7903['attributes']=_0x1e7903[_0x6918('0x44')][_0x6918('0x46')]?_0x1e7903[_0x6918('0x44')]:_0x4c75b7[_0x6918('0x40')];if(!_0x20fd74[_0x6918('0x42')]['hasOwnProperty']('nolimit')){_0x1e7903['limit']=qs[_0x6918('0x34')](_0x20fd74[_0x6918('0x42')][_0x6918('0x34')]);_0x1e7903[_0x6918('0x33')]=qs[_0x6918('0x33')](_0x20fd74[_0x6918('0x42')][_0x6918('0x33')]);}_0x1e7903['order']=qs[_0x6918('0x47')](_0x20fd74[_0x6918('0x42')][_0x6918('0x47')]);_0x1e7903[_0x6918('0x48')]=qs[_0x6918('0x49')](_[_0x6918('0x4a')](_0x20fd74[_0x6918('0x42')],_0x4c75b7[_0x6918('0x49')]));if(_0x20fd74[_0x6918('0x42')]['filter']){_0x1e7903['where']=_[_0x6918('0x4b')](_0x1e7903[_0x6918('0x48')],{'$or':_[_0x6918('0x4c')](_0x4cfea8,function(_0x20fa6f){if(_0x20fa6f[_0x6918('0x4d')][_0x6918('0x4e')]!==_0x6918('0x4f')){var _0x3085b9={};_0x3085b9[_0x20fa6f[_0x6918('0x50')]]={'$like':'%'+_0x20fd74[_0x6918('0x42')][_0x6918('0x51')]+'%'};return _0x3085b9;}})});}_0x1e7903=_['merge']({},_0x1e7903,_0x20fd74[_0x6918('0x52')]);var _0xa303cb={'where':_0x1e7903['where']};return db[_0x6918('0x53')]['count'](_0xa303cb)['then'](function(_0x3d13b0){_0x1abd86['count']=_0x3d13b0;if(_0x20fd74[_0x6918('0x42')]['includeAll']){_0x1e7903[_0x6918('0x54')]=[{'all':!![]}];}return db[_0x6918('0x53')]['findAll'](_0x1e7903);})[_0x6918('0x25')](function(_0x128d83){_0x1abd86['rows']=_0x128d83;return _0x1abd86;})[_0x6918('0x25')](respondWithFilteredResult(_0xe853da,_0x1e7903))[_0x6918('0x2f')](handleError(_0xe853da,null));};exports[_0x6918('0x55')]=function(_0x51cbc7,_0x19b6c2){var _0x45983a={'raw':!![],'where':{'id':_0x51cbc7['params']['id']}},_0x852f80={};_0x852f80[_0x6918('0x40')]=_['keys'](db[_0x6918('0x53')][_0x6918('0x3f')]);_0x852f80[_0x6918('0x42')]=_[_0x6918('0x41')](_0x51cbc7[_0x6918('0x42')]);_0x852f80['filters']=_['intersection'](_0x852f80['model'],_0x852f80[_0x6918('0x42')]);_0x45983a['attributes']=_[_0x6918('0x43')](_0x852f80[_0x6918('0x40')],qs['fields'](_0x51cbc7[_0x6918('0x42')][_0x6918('0x45')]));_0x45983a['attributes']=_0x45983a['attributes'][_0x6918('0x46')]?_0x45983a['attributes']:_0x852f80['model'];if(_0x51cbc7[_0x6918('0x42')]['includeAll']){_0x45983a['include']=[{'all':!![]}];}_0x45983a=_[_0x6918('0x4b')]({},_0x45983a,_0x51cbc7[_0x6918('0x52')]);return db[_0x6918('0x53')][_0x6918('0x56')](_0x45983a)[_0x6918('0x25')](handleEntityNotFound(_0x19b6c2,null))[_0x6918('0x25')](respondWithResult(_0x19b6c2,null))[_0x6918('0x2f')](handleError(_0x19b6c2,null));};exports[_0x6918('0x57')]=function(_0x17ecb1,_0x9b3c71){return db[_0x6918('0x53')][_0x6918('0x57')](_0x17ecb1['body'],{})[_0x6918('0x25')](respondWithResult(_0x9b3c71,0xc9))[_0x6918('0x2f')](handleError(_0x9b3c71,null));};exports['update']=function(_0x564858,_0x4b9f7a){if(_0x564858[_0x6918('0x58')]['id']){delete _0x564858['body']['id'];}return db[_0x6918('0x53')][_0x6918('0x56')]({'where':{'id':_0x564858[_0x6918('0x59')]['id']}})[_0x6918('0x25')](handleEntityNotFound(_0x4b9f7a,null))[_0x6918('0x25')](saveUpdates(_0x564858[_0x6918('0x58')],null))[_0x6918('0x25')](respondWithResult(_0x4b9f7a,null))['catch'](handleError(_0x4b9f7a,null));};exports['destroy']=function(_0x834e78,_0x1e4073){return db[_0x6918('0x53')][_0x6918('0x56')]({'where':{'id':_0x834e78[_0x6918('0x59')]['id']}})[_0x6918('0x25')](handleEntityNotFound(_0x1e4073,null))[_0x6918('0x25')](removeEntity(_0x1e4073,null))[_0x6918('0x2f')](handleError(_0x1e4073,null));};exports[_0x6918('0x5a')]=function(_0x241975,_0x3d10c2){return db[_0x6918('0x53')][_0x6918('0x5a')]()[_0x6918('0x25')](respondWithResult(_0x3d10c2,null))[_0x6918('0x2f')](handleError(_0x3d10c2,null));};var interaction_log=require(_0x6918('0x16'))(_0x6918('0x5b'));exports[_0x6918('0x5c')]=function(_0x42aad0,_0x5e4c97,_0x3d48ee){var _0x19bd55={'channel':_0x6918('0x5d')};if(_0x42aad0[_0x6918('0x58')]['id']){delete _0x42aad0[_0x6918('0x58')]['id'];}_0x42aad0['body'][_0x6918('0x5e')]=!![];_0x42aad0[_0x6918('0x58')][_0x6918('0x5f')]=moment()[_0x6918('0x60')]('YYYY-MM-DD\x20HH:mm:ss');_0x42aad0[_0x6918('0x58')][_0x6918('0x61')]=_0x42aad0[_0x6918('0x58')][_0x6918('0x61')]||_0x42aad0[_0x6918('0x62')]['id'];return db[_0x6918('0x53')][_0x6918('0x56')]({'where':{'id':_0x42aad0[_0x6918('0x59')]['id'],'UserId':null},'include':[{'model':db[_0x6918('0x63')],'as':_0x6918('0x64')}]})['then'](handleEntityNotFound(_0x5e4c97,null))[_0x6918('0x25')](saveUpdates(_0x42aad0[_0x6918('0x58')],null))[_0x6918('0x25')](function(_0x2e27a1){if(_0x2e27a1){_0x19bd55[_0x6918('0x2d')]=_0x2e27a1[_0x6918('0x65')]({'plain':!![]});return db[_0x6918('0x66')][_0x6918('0x56')]({'where':{'id':_0x2e27a1[_0x6918('0x67')]}});}return null;})[_0x6918('0x25')](handleEntityNotFound(_0x5e4c97,null))[_0x6918('0x25')](function(_0xd5b90a){if(_0xd5b90a){return _0xd5b90a[_0x6918('0x68')]({'UserId':_0x42aad0['body'][_0x6918('0x61')],'read1stAt':_[_0x6918('0x69')](_0xd5b90a[_0x6918('0x6a')])?moment()[_0x6918('0x60')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x6918('0x25')](function(_0x470814){if(_0x470814){_0x19bd55[_0x6918('0x6b')]=_0x470814[_0x6918('0x65')]({'plain':!![]});interaction_log[_0x6918('0x26')](_0x6918('0x6c'),_0x42aad0[_0x6918('0x62')]['id'],_0x42aad0['user'][_0x6918('0x3c')],_0x42aad0[_0x6918('0x62')][_0x6918('0x6d')],_0x19bd55[_0x6918('0x6b')]['id'],_0x42aad0['body']?JSON[_0x6918('0x2b')](_0x42aad0[_0x6918('0x58')]):_0x6918('0x6e'));return respondWithRpcPromise(_0x6918('0x6f'),_0x6918('0x70'),_0x19bd55);}return null;})[_0x6918('0x25')](function(_0xdf7eb8){if(_0xdf7eb8){if(_0x42aad0[_0x6918('0x58')][_0x6918('0x71')]){_0x19bd55[_0x6918('0x2d')][_0x6918('0x72')]=util['format'](_0x6918('0x73'),_0x42aad0[_0x6918('0x62')][_0x6918('0x3c')]);_0x19bd55[_0x6918('0x2d')][_0x6918('0x74')]=_0x19bd55[_0x6918('0x74')];_0x19bd55[_0x6918('0x2d')][_0x6918('0x75')]=_0x6918('0x5c');return respondWithRpcPromise(_0x6918('0x76'),_0x6918('0x76'),{'event':_0x6918('0x77'),'message':_0x19bd55[_0x6918('0x2d')]},client9002)[_0x6918('0x25')](function(){return _0x19bd55;});}return _0x19bd55;}return null;})['then'](respondWithResult(_0x5e4c97,null))['catch'](handleError(_0x5e4c97,null));};var interaction_log=require(_0x6918('0x16'))(_0x6918('0x5b'));exports['reject']=function(_0x2ac680,_0x27b457,_0x20f7a3){var _0x4f9d25={'agent':{},'channel':'openchannel'};if(_0x2ac680[_0x6918('0x58')]['id']){delete _0x2ac680[_0x6918('0x58')]['id'];}_0x2ac680['body'][_0x6918('0x61')]=_0x2ac680['body'][_0x6918('0x61')]||_0x2ac680[_0x6918('0x62')]['id'];_0x4f9d25['agent']['id']=_0x2ac680['body'][_0x6918('0x61')];return db[_0x6918('0x53')]['find']({'where':{'id':_0x2ac680[_0x6918('0x59')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x27b457,null))[_0x6918('0x25')](function(_0x49778e){if(_0x49778e){_0x4f9d25[_0x6918('0x2d')]=_0x49778e['get']({'plain':!![]});return db['OpenchannelInteraction']['find']({'where':{'id':_0x49778e[_0x6918('0x67')]}});}return null;})[_0x6918('0x25')](handleEntityNotFound(_0x27b457,null))[_0x6918('0x25')](function(_0x5bb979){if(_0x5bb979){_0x4f9d25[_0x6918('0x6b')]=_0x5bb979[_0x6918('0x65')]({'plain':!![]});interaction_log[_0x6918('0x26')]('[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x2ac680[_0x6918('0x62')]['id'],_0x2ac680[_0x6918('0x62')][_0x6918('0x3c')],_0x2ac680[_0x6918('0x62')][_0x6918('0x6d')],_0x4f9d25[_0x6918('0x6b')]['id'],_0x2ac680[_0x6918('0x58')]?JSON[_0x6918('0x2b')](_0x2ac680[_0x6918('0x58')]):_0x6918('0x6e'));return respondWithRpcPromise(_0x6918('0x78'),_0x6918('0x79'),_0x4f9d25);}return null;})[_0x6918('0x25')](function(_0x3242f0){if(_0x3242f0){_0x3242f0['message'][_0x6918('0x72')]=util['format'](_0x6918('0x73'),_0x2ac680[_0x6918('0x62')]['name']);_0x3242f0['message'][_0x6918('0x74')]=_0x4f9d25['channel'];_0x3242f0[_0x6918('0x2d')][_0x6918('0x75')]=_0x6918('0x38');respondWithRpcPromise('EventManager','EventManager',{'event':_0x6918('0x7a'),'message':_0x3242f0[_0x6918('0x2d')]},client9002);return _0x4f9d25;}return null;})[_0x6918('0x25')](respondWithResult(_0x27b457,null))[_0x6918('0x2f')](handleError(_0x27b457,null));};