Built motion from commit 4d4d9a88.|2.6.26
[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 _0x95a6=['find','CmList','List','Contacts','DESC','FaxApplication','get','account','applications','Applications','list','orderBy','priority','asc','length','defaults','ListId','create','contact','FaxInteraction','Contact\x20not\x20found','autoclose','push','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','User','name','unshift','agent','queueId','FaxQueue','queue','startRouting','lodash','util','bluebird','randomstring','ioredis','../../config/logger','rpc','jayson/promise','http','socket.io-emitter','redis','./faxAccount.socket','register','request','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','GetFaxAccount','FaxAccount','findAll','options','raw','limit','map','include','model','attributes','CmContact','Sequelize','ValidationError','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','CompanyId','body','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey'];(function(_0x27b2b1,_0x23466d){var _0x44640e=function(_0x4e9adc){while(--_0x4e9adc){_0x27b2b1['push'](_0x27b2b1['shift']());}};_0x44640e(++_0x23466d);}(_0x95a6,0x13c));var _0x695a=function(_0x5d0a9a,_0x23792e){_0x5d0a9a=_0x5d0a9a-0x0;var _0x340ada=_0x95a6[_0x5d0a9a];return _0x340ada;};'use strict';var _=require(_0x695a('0x0'));var util=require(_0x695a('0x1'));var moment=require('moment');var BPromise=require(_0x695a('0x2'));var rs=require(_0x695a('0x3'));var fs=require('fs');var Redis=require(_0x695a('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x695a('0x5'))(_0x695a('0x6'));var config=require('../../config/environment');var jayson=require(_0x695a('0x7'));var client=jayson['client'][_0x695a('0x8')]({'port':0x232c});config['redis']=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x695a('0x9'))(new Redis(config[_0x695a('0xa')]));require(_0x695a('0xb'))[_0x695a('0xc')](socket);function respondWithRpcPromise(_0xbb81a5,_0x2e47a5,_0x5e09d1){return new BPromise(function(_0x4fca11,_0x15c113){return client[_0x695a('0xd')](_0xbb81a5,_0x5e09d1)[_0x695a('0xe')](function(_0x2b9f3f){logger[_0x695a('0xf')](_0x695a('0x10'),_0x2e47a5,_0x695a('0x11'));logger[_0x695a('0x12')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0x2e47a5,'request\x20sent',JSON[_0x695a('0x13')](_0x2b9f3f));if(_0x2b9f3f[_0x695a('0x14')]){if(_0x2b9f3f[_0x695a('0x14')][_0x695a('0x15')]===0x1f4){logger[_0x695a('0x14')](_0x695a('0x10'),_0x2e47a5,_0x2b9f3f[_0x695a('0x14')][_0x695a('0x16')]);return _0x15c113(_0x2b9f3f[_0x695a('0x14')]['message']);}logger['error'](_0x695a('0x10'),_0x2e47a5,_0x2b9f3f[_0x695a('0x14')][_0x695a('0x16')]);return _0x4fca11(_0x2b9f3f[_0x695a('0x14')]['message']);}else{logger[_0x695a('0xf')]('FaxAccount,\x20%s,\x20%s',_0x2e47a5,_0x695a('0x11'));_0x4fca11(_0x2b9f3f[_0x695a('0x17')]['message']);}})[_0x695a('0x18')](function(_0x2af595){logger[_0x695a('0x14')]('FaxAccount,\x20%s,\x20%s',_0x2e47a5,_0x2af595);_0x15c113(_0x2af595);});});}exports[_0x695a('0x19')]=function(_0x346828){var _0xd26442=this;return new Promise(function(_0x1b6435,_0x1d0efc){return db[_0x695a('0x1a')][_0x695a('0x1b')]({'raw':_0x346828[_0x695a('0x1c')]?_0x346828[_0x695a('0x1c')][_0x695a('0x1d')]===undefined?!![]:![]:!![],'where':_0x346828[_0x695a('0x1c')]?_0x346828[_0x695a('0x1c')]['where']||null:null,'attributes':_0x346828[_0x695a('0x1c')]?_0x346828[_0x695a('0x1c')]['attributes']||null:null,'limit':_0x346828[_0x695a('0x1c')]?_0x346828[_0x695a('0x1c')][_0x695a('0x1e')]||null:null,'include':_0x346828[_0x695a('0x1c')]?_0x346828[_0x695a('0x1c')]['include']?_[_0x695a('0x1f')](_0x346828[_0x695a('0x1c')][_0x695a('0x20')],function(_0x2ce238){return{'model':db[_0x2ce238[_0x695a('0x21')]],'as':_0x2ce238['as'],'attributes':_0x2ce238[_0x695a('0x22')],'include':_0x2ce238[_0x695a('0x20')]?_[_0x695a('0x1f')](_0x2ce238['include'],function(_0x3508dc){return{'model':db[_0x3508dc[_0x695a('0x21')]],'as':_0x3508dc['as'],'attributes':_0x3508dc['attributes'],'include':_0x3508dc[_0x695a('0x20')]?_[_0x695a('0x1f')](_0x3508dc[_0x695a('0x20')],function(_0x587261){return{'model':db[_0x587261[_0x695a('0x21')]],'as':_0x587261['as'],'attributes':_0x587261[_0x695a('0x22')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3e0c83){logger[_0x695a('0xf')](_0x695a('0x19'),_0x346828);logger[_0x695a('0x12')](_0x695a('0x19'),_0x346828,JSON[_0x695a('0x13')](_0x3e0c83));_0x1b6435(_0x3e0c83);})[_0x695a('0x18')](function(_0x43d3a1){logger[_0x695a('0x14')](_0x695a('0x19'),_0x43d3a1[_0x695a('0x16')],_0x346828);_0x1d0efc(_0xd26442[_0x695a('0x14')](0x1f4,_0x43d3a1['message']));});});};exports['NotifyFaxAccount']=function(_0xf67f0,_0xd6ed0f,_0x5cafcb){var _0x3d1e11=this;return new Promise(function(_0x55df3f,_0xce6ed4){var _0xd60d30={'body':_0xf67f0['body'],'channel':'fax'};var _0x2d0a09=[];var _0x39d4d9=[];var _0x40c29d={};return db[_0x695a('0x23')]['describe']()[_0x695a('0xe')](function(_0xadfd2e){if(!_0xadfd2e){throw new db[(_0x695a('0x24'))][(_0x695a('0x25'))](_0x695a('0x26'));}_0x2d0a09=_[_0x695a('0x27')](_[_0x695a('0x28')](_0xadfd2e),[_0x695a('0x29'),_0x695a('0x2a')]);_0x39d4d9=_[_0x695a('0x27')](_[_0x695a('0x28')](_0xadfd2e),['createdAt',_0x695a('0x2a'),_0x695a('0x2b'),'ListId']);if(_0xf67f0[_0x695a('0x2c')]['id']){delete _0xf67f0['body']['id'];}if(_[_0x695a('0x2d')](_0xf67f0[_0x695a('0x2c')][_0x695a('0x2e')])){throw new db[(_0x695a('0x24'))][(_0x695a('0x25'))](_0x695a('0x2f'));}if(_[_0x695a('0x2d')](_0xf67f0[_0x695a('0x2c')]['body'])||_0xf67f0['body'][_0x695a('0x2c')]===''){throw new db[(_0x695a('0x24'))]['ValidationError'](_0x695a('0x30'));}if(_[_0x695a('0x2d')](_0xf67f0[_0x695a('0x2c')]['mapKey'])){throw new db[(_0x695a('0x24'))][(_0x695a('0x25'))](_0x695a('0x31')+_0x39d4d9);}if(!_[_0x695a('0x32')](_0x39d4d9,_0xf67f0['body'][_0x695a('0x33')])){throw new db['Sequelize'][(_0x695a('0x25'))]('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x39d4d9);}_0x40c29d[_0xf67f0[_0x695a('0x2c')]['mapKey']]=_0xf67f0[_0x695a('0x2c')][_0x695a('0x2e')];})[_0x695a('0xe')](function(){return db[_0x695a('0x1a')][_0x695a('0x34')]({'where':{'id':_0xf67f0['account']['id']},'include':[{'model':db[_0x695a('0x35')],'as':_0x695a('0x36'),'include':[{'model':db[_0x695a('0x23')],'as':_0x695a('0x37'),'where':_0x40c29d,'limit':0x1,'order':[[_0x695a('0x2a'),_0x695a('0x38')]]}]},{'model':db[_0x695a('0x39')],'as':'Applications'}]});})['then'](function(_0x21f778){if(_0x21f778&&_0x21f778['List']){var _0x1cebe1=_0x21f778[_0x695a('0x3a')]({'plain':!![]});_0xd60d30[_0x695a('0x3b')]=_0x1cebe1;_0xd60d30[_0x695a('0x3c')]=_0x1cebe1[_0x695a('0x3d')];_0xd60d30[_0x695a('0x3e')]=_0x1cebe1[_0x695a('0x36')];_0xd60d30[_0x695a('0x3c')]=_[_0x695a('0x3f')](_0xd60d30['applications'],[_0x695a('0x40')],[_0x695a('0x41')]);if(_0xd60d30[_0x695a('0x3b')]['Applications']){delete _0xd60d30['account'][_0x695a('0x3d')];}if(_0xd60d30[_0x695a('0x3b')][_0x695a('0x36')]&&_0xd60d30[_0x695a('0x3b')][_0x695a('0x36')][_0x695a('0x37')][_0x695a('0x42')]){return _0xd60d30[_0x695a('0x3b')]['List'][_0x695a('0x37')][0x0];}var _0x4a7996=_[_0x695a('0x43')](_0xf67f0[_0x695a('0x2c')],{'firstName':_0xf67f0[_0x695a('0x2c')][_0x695a('0x2e')],'ListId':_0x1cebe1[_0x695a('0x44')]});_0x4a7996[_0xf67f0['body'][_0x695a('0x33')]]=_0xf67f0[_0x695a('0x2c')][_0x695a('0x2e')];return db[_0x695a('0x23')][_0x695a('0x45')](_0x4a7996,{'fields':_0x2d0a09,'raw':!![]});}})[_0x695a('0xe')](function(_0x4ed560){_0xd60d30[_0x695a('0x46')]=_0x4ed560;if(_0x4ed560){var _0x502b13={'ContactId':_0x4ed560['id'],'FaxAccountId':_0xf67f0['account']['id'],'fax':_0x4ed560['fax']};return db['FaxInteraction'][_0x695a('0x34')]({'where':{'ContactId':_0x4ed560['id'],'closed':![],'FaxAccountId':_0xf67f0[_0x695a('0x3b')]['id']}})[_0x695a('0xe')](function(_0x3fb68a){if(_0x3fb68a){return[_0x3fb68a,![]];}return db[_0x695a('0x47')][_0x695a('0x45')](_0x502b13)[_0x695a('0xe')](function(_0x73acd6){return[_0x73acd6,!![]];});});}else{throw new Error(_0x695a('0x48'));}})['spread'](function(_0x3f904f,_0x4e078a){var _0x34a598=_0x3f904f[_0x695a('0x3a')]({'plain':!![]});if(_0x4e078a){if(_0xd60d30[_0x695a('0x3b')][_0x695a('0x49')]){_0xd60d30[_0x695a('0x3c')][_0x695a('0x4a')]({'id':0x0,'priority':_0xd60d30['applications'][_0x695a('0x42')]+0x1,'app':_0x695a('0x4b'),'appdata':_0x695a('0x4c'),'interval':_0x695a('0x4d')});}_0x34a598[_0x695a('0x4e')]=!![];}else{_0x34a598[_0x695a('0x4e')]=![];}_0xd60d30[_0x695a('0x4f')]=_0x34a598;return db[_0x695a('0x50')][_0x695a('0x45')]({'body':_0xf67f0['body'][_0x695a('0x2c')],'FaxAccountId':_0xf67f0[_0x695a('0x3b')]['id'],'FaxInteractionId':_0x3f904f['id'],'direction':'in','ContactId':_0x3f904f[_0x695a('0x51')],'AttachmentId':_0xf67f0[_0x695a('0x2c')][_0x695a('0x52')]});})['then'](function(_0x2bb2b5){_0xd60d30[_0x695a('0x16')]=_0x2bb2b5;if(!_0xd60d30[_0x695a('0x4f')][_0x695a('0x53')])return;return db[_0x695a('0x54')]['find']({'attributes':['id',_0x695a('0x55')],'where':{'id':_0xd60d30[_0x695a('0x4f')][_0x695a('0x53')]}});})[_0x695a('0xe')](function(_0x5bc0a7){if(_0x5bc0a7){_0xd60d30[_0x695a('0x3c')][_0x695a('0x56')]({'id':0x0,'priority':0x0,'app':_0x695a('0x57'),'appdata':_0x5bc0a7[_0x695a('0x55')]+','+(_0xd60d30[_0x695a('0x3b')]['waitForTheAssignedAgent']||0xa),'interval':'*,*,*,*'});}if(!_0xd60d30[_0x695a('0x4f')][_0x695a('0x58')])return;return db[_0x695a('0x59')]['find']({'attributes':['id','name'],'where':{'id':_0xd60d30[_0x695a('0x4f')]['queueId']}});})[_0x695a('0xe')](function(_0x395fd4){if(_0x395fd4){_0xd60d30[_0x695a('0x3c')][_0x695a('0x56')]({'id':0x0,'priority':0x1,'app':_0x695a('0x5a'),'appdata':_0x395fd4[_0x695a('0x55')]+','+(_0xd60d30[_0x695a('0x3b')]['waitForTheAssignedQueue']||0x12c),'interval':'*,*,*,*'});}return respondWithRpcPromise('Start',_0x695a('0x5b'),_0xd60d30);})['then'](function(_0x584192){_0x55df3f(_0x584192);})[_0x695a('0x18')](function(_0x1dee8b){_0xce6ed4(_0x3d1e11[_0x695a('0x14')](0x1f4,_0x1dee8b[_0x695a('0x16')]));});});};