Built motion from commit ddca4d0d.|2.5.47
[motion2.git] / server / api / faxAccount / faxAccount.rpc.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 _0x78a8=['account','CmList','List','Contacts','DESC','Applications','get','applications','list','orderBy','asc','create','contact','FaxInteraction','Contact\x20not\x20found','spread','autoclose','length','close','unmanaged','*,*,*,*','created','ContactId','AttachmentId','UserId','name','interaction','unshift','agent','waitForTheAssignedAgent','Start','startRouting','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','then','info','request\x20sent','debug','stringify','error','message','FaxAccount,\x20%s,\x20%s','result','catch','GetFaxAccount','FaxAccount','options','raw','where','attributes','limit','include','map','model','NotifyFaxAccount','body','fax','CmContact','describe','ValidationError','no\x20available\x20attributes','updatedAt','difference','keys','createdAt','CompanyId','ListId','isNil','from','Sequelize','body\x20is\x20mandatory\x20and\x20not\x20empty','includes','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x78a8,0x1e2));var _0x878a=function(_0x15cf52,_0x2f2dc5){_0x15cf52=_0x15cf52-0x0;var _0x38c484=_0x78a8[_0x15cf52];return _0x38c484;};'use strict';var _=require(_0x878a('0x0'));var util=require('util');var moment=require(_0x878a('0x1'));var BPromise=require(_0x878a('0x2'));var rs=require(_0x878a('0x3'));var fs=require('fs');var Redis=require(_0x878a('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x878a('0x5'));var logger=require(_0x878a('0x6'))(_0x878a('0x7'));var config=require(_0x878a('0x8'));var jayson=require(_0x878a('0x9'));var client=jayson['client'][_0x878a('0xa')]({'port':0x232c});config[_0x878a('0xb')]=_[_0x878a('0xc')](config[_0x878a('0xb')],{'host':_0x878a('0xd'),'port':0x18eb});var socket=require(_0x878a('0xe'))(new Redis(config[_0x878a('0xb')]));require(_0x878a('0xf'))[_0x878a('0x10')](socket);function respondWithRpcPromise(_0x4909db,_0x39b003,_0x4e9fb5){return new BPromise(function(_0x2e0275,_0x1731b2){return client['request'](_0x4909db,_0x4e9fb5)[_0x878a('0x11')](function(_0x2c9f68){logger[_0x878a('0x12')]('FaxAccount,\x20%s,\x20%s',_0x39b003,_0x878a('0x13'));logger[_0x878a('0x14')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0x39b003,_0x878a('0x13'),JSON[_0x878a('0x15')](_0x2c9f68));if(_0x2c9f68[_0x878a('0x16')]){if(_0x2c9f68['error']['code']===0x1f4){logger['error']('FaxAccount,\x20%s,\x20%s',_0x39b003,_0x2c9f68[_0x878a('0x16')][_0x878a('0x17')]);return _0x1731b2(_0x2c9f68['error'][_0x878a('0x17')]);}logger['error'](_0x878a('0x18'),_0x39b003,_0x2c9f68[_0x878a('0x16')][_0x878a('0x17')]);return _0x2e0275(_0x2c9f68[_0x878a('0x16')][_0x878a('0x17')]);}else{logger[_0x878a('0x12')](_0x878a('0x18'),_0x39b003,_0x878a('0x13'));_0x2e0275(_0x2c9f68[_0x878a('0x19')][_0x878a('0x17')]);}})[_0x878a('0x1a')](function(_0x402a87){logger[_0x878a('0x16')](_0x878a('0x18'),_0x39b003,_0x402a87);_0x1731b2(_0x402a87);});});}exports[_0x878a('0x1b')]=function(_0x32b88b){var _0x5e2058=this;return new Promise(function(_0x5ea3ab,_0x582531){return db[_0x878a('0x1c')]['findAll']({'raw':_0x32b88b[_0x878a('0x1d')]?_0x32b88b[_0x878a('0x1d')][_0x878a('0x1e')]===undefined?!![]:![]:!![],'where':_0x32b88b[_0x878a('0x1d')]?_0x32b88b[_0x878a('0x1d')][_0x878a('0x1f')]||null:null,'attributes':_0x32b88b[_0x878a('0x1d')]?_0x32b88b[_0x878a('0x1d')][_0x878a('0x20')]||null:null,'limit':_0x32b88b[_0x878a('0x1d')]?_0x32b88b[_0x878a('0x1d')][_0x878a('0x21')]||null:null,'include':_0x32b88b[_0x878a('0x1d')]?_0x32b88b[_0x878a('0x1d')][_0x878a('0x22')]?_[_0x878a('0x23')](_0x32b88b[_0x878a('0x1d')][_0x878a('0x22')],function(_0x5b0a6d){return{'model':db[_0x5b0a6d[_0x878a('0x24')]],'as':_0x5b0a6d['as'],'attributes':_0x5b0a6d[_0x878a('0x20')],'include':_0x5b0a6d['include']?_[_0x878a('0x23')](_0x5b0a6d['include'],function(_0x4ad372){return{'model':db[_0x4ad372[_0x878a('0x24')]],'as':_0x4ad372['as'],'attributes':_0x4ad372[_0x878a('0x20')],'include':_0x4ad372[_0x878a('0x22')]?_[_0x878a('0x23')](_0x4ad372[_0x878a('0x22')],function(_0x1afc2a){return{'model':db[_0x1afc2a[_0x878a('0x24')]],'as':_0x1afc2a['as'],'attributes':_0x1afc2a[_0x878a('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x183c4b){logger[_0x878a('0x12')](_0x878a('0x1b'),_0x32b88b);logger[_0x878a('0x14')](_0x878a('0x1b'),_0x32b88b,JSON[_0x878a('0x15')](_0x183c4b));_0x5ea3ab(_0x183c4b);})['catch'](function(_0xe59bf9){logger[_0x878a('0x16')](_0x878a('0x1b'),_0xe59bf9[_0x878a('0x17')],_0x32b88b);_0x582531(_0x5e2058[_0x878a('0x16')](0x1f4,_0xe59bf9['message']));});});};exports[_0x878a('0x25')]=function(_0x5b571,_0x183207,_0x1e8893){var _0x19dfd2=this;return new Promise(function(_0x178eb7,_0x2bbff){var _0x215dbb={'body':_0x5b571[_0x878a('0x26')],'channel':_0x878a('0x27')};var _0x47e831=[];var _0x52790d=[];var _0x3a261e={};return db[_0x878a('0x28')][_0x878a('0x29')]()[_0x878a('0x11')](function(_0x5ab41f){if(!_0x5ab41f){throw new db['Sequelize'][(_0x878a('0x2a'))](_0x878a('0x2b'));}_0x47e831=_['difference'](_['keys'](_0x5ab41f),['createdAt',_0x878a('0x2c')]);_0x52790d=_[_0x878a('0x2d')](_[_0x878a('0x2e')](_0x5ab41f),[_0x878a('0x2f'),_0x878a('0x2c'),_0x878a('0x30'),_0x878a('0x31')]);if(_0x5b571[_0x878a('0x26')]['id']){delete _0x5b571[_0x878a('0x26')]['id'];}if(_[_0x878a('0x32')](_0x5b571[_0x878a('0x26')][_0x878a('0x33')])){throw new db[(_0x878a('0x34'))][(_0x878a('0x2a'))]('from\x20is\x20mandatory');}if(_[_0x878a('0x32')](_0x5b571[_0x878a('0x26')]['body'])||_0x5b571['body'][_0x878a('0x26')]===''){throw new db[(_0x878a('0x34'))][(_0x878a('0x2a'))](_0x878a('0x35'));}if(_[_0x878a('0x32')](_0x5b571[_0x878a('0x26')]['mapKey'])){throw new db[(_0x878a('0x34'))]['ValidationError']('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x52790d);}if(!_[_0x878a('0x36')](_0x52790d,_0x5b571[_0x878a('0x26')][_0x878a('0x37')])){throw new db[(_0x878a('0x34'))][(_0x878a('0x2a'))](_0x878a('0x38')+_0x52790d);}_0x3a261e[_0x5b571[_0x878a('0x26')]['mapKey']]=_0x5b571[_0x878a('0x26')][_0x878a('0x33')];})['then'](function(){return db[_0x878a('0x1c')][_0x878a('0x39')]({'where':{'id':_0x5b571[_0x878a('0x3a')]['id']},'include':[{'model':db[_0x878a('0x3b')],'as':_0x878a('0x3c'),'include':[{'model':db['CmContact'],'as':_0x878a('0x3d'),'where':_0x3a261e,'limit':0x1,'order':[[_0x878a('0x2c'),_0x878a('0x3e')]]}]},{'model':db['FaxApplication'],'as':_0x878a('0x3f')}]});})[_0x878a('0x11')](function(_0x24f235){if(_0x24f235&&_0x24f235[_0x878a('0x3c')]){var _0x4058bf=_0x24f235[_0x878a('0x40')]({'plain':!![]});_0x215dbb[_0x878a('0x3a')]=_0x4058bf;_0x215dbb[_0x878a('0x41')]=_0x4058bf[_0x878a('0x3f')];_0x215dbb[_0x878a('0x42')]=_0x4058bf[_0x878a('0x3c')];_0x215dbb[_0x878a('0x41')]=_[_0x878a('0x43')](_0x215dbb['applications'],['priority'],[_0x878a('0x44')]);if(_0x215dbb['account']['Applications']){delete _0x215dbb['account']['Applications'];}if(_0x215dbb['account']['List']&&_0x215dbb[_0x878a('0x3a')][_0x878a('0x3c')][_0x878a('0x3d')]['length']){return _0x215dbb['account']['List'][_0x878a('0x3d')][0x0];}var _0x11cfce=_['defaults'](_0x5b571[_0x878a('0x26')],{'firstName':_0x5b571['body'][_0x878a('0x33')],'ListId':_0x4058bf[_0x878a('0x31')]});_0x11cfce[_0x5b571[_0x878a('0x26')][_0x878a('0x37')]]=_0x5b571[_0x878a('0x26')][_0x878a('0x33')];return db[_0x878a('0x28')][_0x878a('0x45')](_0x11cfce,{'fields':_0x47e831,'raw':!![]});}})[_0x878a('0x11')](function(_0x4adf74){_0x215dbb[_0x878a('0x46')]=_0x4adf74;if(_0x4adf74){var _0x3037f9={'ContactId':_0x4adf74['id'],'FaxAccountId':_0x5b571[_0x878a('0x3a')]['id'],'fax':_0x4adf74[_0x878a('0x27')]};return db[_0x878a('0x47')]['find']({'where':{'ContactId':_0x4adf74['id'],'closed':![],'FaxAccountId':_0x5b571[_0x878a('0x3a')]['id']}})[_0x878a('0x11')](function(_0x1ac96b){if(_0x1ac96b){return[_0x1ac96b,![]];}return db['FaxInteraction'][_0x878a('0x45')](_0x3037f9)[_0x878a('0x11')](function(_0x1f7497){return[_0x1f7497,!![]];});});}else{throw new Error(_0x878a('0x48'));}})[_0x878a('0x49')](function(_0x23bf5,_0x3b8771){var _0x9b88db=_0x23bf5[_0x878a('0x40')]({'plain':!![]});if(_0x3b8771){if(_0x215dbb[_0x878a('0x3a')][_0x878a('0x4a')]){_0x215dbb[_0x878a('0x41')]['push']({'id':0x0,'priority':_0x215dbb[_0x878a('0x41')][_0x878a('0x4b')]+0x1,'app':_0x878a('0x4c'),'appdata':_0x878a('0x4d'),'interval':_0x878a('0x4e')});}_0x9b88db[_0x878a('0x4f')]=!![];}else{_0x9b88db['created']=![];}_0x215dbb['interaction']=_0x9b88db;return db['FaxMessage'][_0x878a('0x45')]({'body':_0x5b571['body']['body'],'FaxAccountId':_0x5b571[_0x878a('0x3a')]['id'],'FaxInteractionId':_0x23bf5['id'],'direction':'in','ContactId':_0x23bf5[_0x878a('0x50')],'AttachmentId':_0x5b571[_0x878a('0x26')][_0x878a('0x51')]});})[_0x878a('0x11')](function(_0x1d0d5f){_0x215dbb[_0x878a('0x17')]=_0x1d0d5f;if(_0x215dbb['interaction'][_0x878a('0x52')]){return db['User']['find']({'attributes':['id',_0x878a('0x53')],'where':{'id':_0x215dbb[_0x878a('0x54')][_0x878a('0x52')]}})[_0x878a('0x11')](function(_0x3db6c4){if(_0x3db6c4){_0x215dbb[_0x878a('0x41')][_0x878a('0x55')]({'id':0x0,'priority':0x0,'app':_0x878a('0x56'),'appdata':_0x3db6c4[_0x878a('0x53')]+','+(_0x215dbb[_0x878a('0x3a')][_0x878a('0x57')]||0xa),'interval':_0x878a('0x4e')});}return respondWithRpcPromise(_0x878a('0x58'),_0x878a('0x59'),_0x215dbb);});}return respondWithRpcPromise('Start',_0x878a('0x59'),_0x215dbb);})[_0x878a('0x11')](function(_0xa5e49a){_0x178eb7(_0xa5e49a);})['catch'](function(_0x2e95fd){_0x2bbff(_0x19dfd2['error'](0x1f4,_0x2e95fd[_0x878a('0x17')]));});});};