Built motion from commit d1eab355.|2.6.28
[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 _0xc8de=['autoclose','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','ContactId','AttachmentId','User','name','UserId','agent','waitForTheAssignedAgent','queueId','unshift','queue','util','moment','randomstring','ioredis','../../config/logger','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','request','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','catch','FaxAccount','options','raw','where','attributes','limit','include','map','model','GetFaxAccount','NotifyFaxAccount','body','CmContact','describe','Sequelize','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey','find','account','CmList','Contacts','FaxApplication','Applications','List','get','applications','list','orderBy','asc','length','create','fax','FaxInteraction','Contact\x20not\x20found','spread'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xc8de,0x1d8));var _0xec8d=function(_0x211dd6,_0xbacc9a){_0x211dd6=_0x211dd6-0x0;var _0xeb02f=_0xc8de[_0x211dd6];return _0xeb02f;};'use strict';var _=require('lodash');var util=require(_0xec8d('0x0'));var moment=require(_0xec8d('0x1'));var BPromise=require('bluebird');var rs=require(_0xec8d('0x2'));var fs=require('fs');var Redis=require(_0xec8d('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xec8d('0x4'))('rpc');var config=require(_0xec8d('0x5'));var jayson=require(_0xec8d('0x6'));var client=jayson[_0xec8d('0x7')][_0xec8d('0x8')]({'port':0x232c});config[_0xec8d('0x9')]=_[_0xec8d('0xa')](config['redis'],{'host':_0xec8d('0xb'),'port':0x18eb});var socket=require(_0xec8d('0xc'))(new Redis(config[_0xec8d('0x9')]));require(_0xec8d('0xd'))[_0xec8d('0xe')](socket);function respondWithRpcPromise(_0x348717,_0x3e29bf,_0x5cc283){return new BPromise(function(_0x308b60,_0x2ed695){return client[_0xec8d('0xf')](_0x348717,_0x5cc283)[_0xec8d('0x10')](function(_0x2f00c3){logger[_0xec8d('0x11')](_0xec8d('0x12'),_0x3e29bf,_0xec8d('0x13'));logger[_0xec8d('0x14')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0x3e29bf,_0xec8d('0x13'),JSON[_0xec8d('0x15')](_0x2f00c3));if(_0x2f00c3['error']){if(_0x2f00c3[_0xec8d('0x16')]['code']===0x1f4){logger[_0xec8d('0x16')](_0xec8d('0x12'),_0x3e29bf,_0x2f00c3['error']['message']);return _0x2ed695(_0x2f00c3[_0xec8d('0x16')][_0xec8d('0x17')]);}logger[_0xec8d('0x16')](_0xec8d('0x12'),_0x3e29bf,_0x2f00c3[_0xec8d('0x16')][_0xec8d('0x17')]);return _0x308b60(_0x2f00c3['error'][_0xec8d('0x17')]);}else{logger['info'](_0xec8d('0x12'),_0x3e29bf,_0xec8d('0x13'));_0x308b60(_0x2f00c3[_0xec8d('0x18')][_0xec8d('0x17')]);}})[_0xec8d('0x19')](function(_0x342265){logger[_0xec8d('0x16')](_0xec8d('0x12'),_0x3e29bf,_0x342265);_0x2ed695(_0x342265);});});}exports['GetFaxAccount']=function(_0x163984){var _0x3552b4=this;return new Promise(function(_0x262d53,_0x2fec83){return db[_0xec8d('0x1a')]['findAll']({'raw':_0x163984[_0xec8d('0x1b')]?_0x163984['options'][_0xec8d('0x1c')]===undefined?!![]:![]:!![],'where':_0x163984[_0xec8d('0x1b')]?_0x163984[_0xec8d('0x1b')][_0xec8d('0x1d')]||null:null,'attributes':_0x163984['options']?_0x163984['options'][_0xec8d('0x1e')]||null:null,'limit':_0x163984['options']?_0x163984[_0xec8d('0x1b')][_0xec8d('0x1f')]||null:null,'include':_0x163984[_0xec8d('0x1b')]?_0x163984['options'][_0xec8d('0x20')]?_[_0xec8d('0x21')](_0x163984[_0xec8d('0x1b')][_0xec8d('0x20')],function(_0x232e7f){return{'model':db[_0x232e7f[_0xec8d('0x22')]],'as':_0x232e7f['as'],'attributes':_0x232e7f[_0xec8d('0x1e')],'include':_0x232e7f[_0xec8d('0x20')]?_['map'](_0x232e7f[_0xec8d('0x20')],function(_0x57618c){return{'model':db[_0x57618c['model']],'as':_0x57618c['as'],'attributes':_0x57618c['attributes'],'include':_0x57618c['include']?_[_0xec8d('0x21')](_0x57618c[_0xec8d('0x20')],function(_0x12ee80){return{'model':db[_0x12ee80[_0xec8d('0x22')]],'as':_0x12ee80['as'],'attributes':_0x12ee80[_0xec8d('0x1e')]};}):[]};}):[]};}):[]:[]})[_0xec8d('0x10')](function(_0x4a4b13){logger[_0xec8d('0x11')](_0xec8d('0x23'),_0x163984);logger[_0xec8d('0x14')](_0xec8d('0x23'),_0x163984,JSON['stringify'](_0x4a4b13));_0x262d53(_0x4a4b13);})['catch'](function(_0x426c63){logger[_0xec8d('0x16')](_0xec8d('0x23'),_0x426c63[_0xec8d('0x17')],_0x163984);_0x2fec83(_0x3552b4[_0xec8d('0x16')](0x1f4,_0x426c63[_0xec8d('0x17')]));});});};exports[_0xec8d('0x24')]=function(_0x46eade,_0x524e5f,_0x388488){var _0x1da5a0=this;return new Promise(function(_0x292ce9,_0x6a83a9){var _0x2b4944={'body':_0x46eade[_0xec8d('0x25')],'channel':'fax'};var _0x63de9c=[];var _0x41e93d=[];var _0x4fb273={};return db[_0xec8d('0x26')][_0xec8d('0x27')]()[_0xec8d('0x10')](function(_0x2b2c05){if(!_0x2b2c05){throw new db[(_0xec8d('0x28'))][(_0xec8d('0x29'))](_0xec8d('0x2a'));}_0x63de9c=_[_0xec8d('0x2b')](_['keys'](_0x2b2c05),[_0xec8d('0x2c'),_0xec8d('0x2d')]);_0x41e93d=_['difference'](_['keys'](_0x2b2c05),[_0xec8d('0x2c'),_0xec8d('0x2d'),_0xec8d('0x2e'),_0xec8d('0x2f')]);if(_0x46eade['body']['id']){delete _0x46eade['body']['id'];}if(_[_0xec8d('0x30')](_0x46eade[_0xec8d('0x25')][_0xec8d('0x31')])){throw new db[(_0xec8d('0x28'))][(_0xec8d('0x29'))](_0xec8d('0x32'));}if(_[_0xec8d('0x30')](_0x46eade[_0xec8d('0x25')][_0xec8d('0x25')])||_0x46eade['body'][_0xec8d('0x25')]===''){throw new db[(_0xec8d('0x28'))][(_0xec8d('0x29'))](_0xec8d('0x33'));}if(_[_0xec8d('0x30')](_0x46eade[_0xec8d('0x25')]['mapKey'])){throw new db[(_0xec8d('0x28'))]['ValidationError'](_0xec8d('0x34')+_0x41e93d);}if(!_[_0xec8d('0x35')](_0x41e93d,_0x46eade[_0xec8d('0x25')]['mapKey'])){throw new db[(_0xec8d('0x28'))][(_0xec8d('0x29'))](_0xec8d('0x36')+_0x41e93d);}_0x4fb273[_0x46eade['body'][_0xec8d('0x37')]]=_0x46eade[_0xec8d('0x25')][_0xec8d('0x31')];})[_0xec8d('0x10')](function(){return db['FaxAccount'][_0xec8d('0x38')]({'where':{'id':_0x46eade[_0xec8d('0x39')]['id']},'include':[{'model':db[_0xec8d('0x3a')],'as':'List','include':[{'model':db[_0xec8d('0x26')],'as':_0xec8d('0x3b'),'where':_0x4fb273,'limit':0x1,'order':[[_0xec8d('0x2d'),'DESC']]}]},{'model':db[_0xec8d('0x3c')],'as':_0xec8d('0x3d')}]});})[_0xec8d('0x10')](function(_0x320130){if(_0x320130&&_0x320130[_0xec8d('0x3e')]){var _0x45b706=_0x320130[_0xec8d('0x3f')]({'plain':!![]});_0x2b4944['account']=_0x45b706;_0x2b4944[_0xec8d('0x40')]=_0x45b706[_0xec8d('0x3d')];_0x2b4944[_0xec8d('0x41')]=_0x45b706[_0xec8d('0x3e')];_0x2b4944['applications']=_[_0xec8d('0x42')](_0x2b4944[_0xec8d('0x40')],['priority'],[_0xec8d('0x43')]);if(_0x2b4944['account'][_0xec8d('0x3d')]){delete _0x2b4944[_0xec8d('0x39')][_0xec8d('0x3d')];}if(_0x2b4944[_0xec8d('0x39')][_0xec8d('0x3e')]&&_0x2b4944[_0xec8d('0x39')][_0xec8d('0x3e')]['Contacts'][_0xec8d('0x44')]){return _0x2b4944['account'][_0xec8d('0x3e')][_0xec8d('0x3b')][0x0];}var _0x6b3517=_[_0xec8d('0xa')](_0x46eade[_0xec8d('0x25')],{'firstName':_0x46eade[_0xec8d('0x25')][_0xec8d('0x31')],'ListId':_0x45b706['ListId']});_0x6b3517[_0x46eade[_0xec8d('0x25')][_0xec8d('0x37')]]=_0x46eade['body'][_0xec8d('0x31')];return db[_0xec8d('0x26')][_0xec8d('0x45')](_0x6b3517,{'fields':_0x63de9c,'raw':!![]});}})[_0xec8d('0x10')](function(_0x10110e){_0x2b4944['contact']=_0x10110e;if(_0x10110e){var _0x3360a5={'ContactId':_0x10110e['id'],'FaxAccountId':_0x46eade['account']['id'],'fax':_0x10110e[_0xec8d('0x46')]};return db[_0xec8d('0x47')][_0xec8d('0x38')]({'where':{'ContactId':_0x10110e['id'],'closed':![],'FaxAccountId':_0x46eade[_0xec8d('0x39')]['id']}})[_0xec8d('0x10')](function(_0x2780c8){if(_0x2780c8){return[_0x2780c8,![]];}return db['FaxInteraction'][_0xec8d('0x45')](_0x3360a5)[_0xec8d('0x10')](function(_0x42deeb){return[_0x42deeb,!![]];});});}else{throw new Error(_0xec8d('0x48'));}})[_0xec8d('0x49')](function(_0x40a0b7,_0x6bc910){var _0x18ffd3=_0x40a0b7[_0xec8d('0x3f')]({'plain':!![]});if(_0x6bc910){if(_0x2b4944[_0xec8d('0x39')][_0xec8d('0x4a')]){_0x2b4944[_0xec8d('0x40')]['push']({'id':0x0,'priority':_0x2b4944[_0xec8d('0x40')][_0xec8d('0x44')]+0x1,'app':_0xec8d('0x4b'),'appdata':_0xec8d('0x4c'),'interval':_0xec8d('0x4d')});}_0x18ffd3[_0xec8d('0x4e')]=!![];}else{_0x18ffd3[_0xec8d('0x4e')]=![];}_0x2b4944[_0xec8d('0x4f')]=_0x18ffd3;return db[_0xec8d('0x50')][_0xec8d('0x45')]({'body':_0x46eade[_0xec8d('0x25')][_0xec8d('0x25')],'FaxAccountId':_0x46eade[_0xec8d('0x39')]['id'],'FaxInteractionId':_0x40a0b7['id'],'direction':'in','ContactId':_0x40a0b7[_0xec8d('0x51')],'AttachmentId':_0x46eade[_0xec8d('0x25')][_0xec8d('0x52')]});})['then'](function(_0x5c3fff){_0x2b4944[_0xec8d('0x17')]=_0x5c3fff;if(!_0x2b4944[_0xec8d('0x4f')]['UserId'])return;return db[_0xec8d('0x53')][_0xec8d('0x38')]({'attributes':['id',_0xec8d('0x54')],'where':{'id':_0x2b4944[_0xec8d('0x4f')][_0xec8d('0x55')]}});})['then'](function(_0x115bbc){if(_0x115bbc){_0x2b4944['applications']['unshift']({'id':0x0,'priority':0x0,'app':_0xec8d('0x56'),'appdata':_0x115bbc[_0xec8d('0x54')]+','+(_0x2b4944[_0xec8d('0x39')][_0xec8d('0x57')]||0xa),'interval':_0xec8d('0x4d')});}if(!_0x2b4944[_0xec8d('0x4f')][_0xec8d('0x58')])return;return db['FaxQueue'][_0xec8d('0x38')]({'attributes':['id','name'],'where':{'id':_0x2b4944[_0xec8d('0x4f')][_0xec8d('0x58')]}});})[_0xec8d('0x10')](function(_0x12b49d){if(_0x12b49d){_0x2b4944[_0xec8d('0x40')][_0xec8d('0x59')]({'id':0x0,'priority':0x1,'app':_0xec8d('0x5a'),'appdata':_0x12b49d[_0xec8d('0x54')]+','+(_0x2b4944[_0xec8d('0x39')]['waitForTheAssignedQueue']||0x12c),'interval':'*,*,*,*'});}return respondWithRpcPromise('Start','startRouting',_0x2b4944);})[_0xec8d('0x10')](function(_0x4b8928){_0x292ce9(_0x4b8928);})[_0xec8d('0x19')](function(_0x112a84){_0x6a83a9(_0x1da5a0['error'](0x1f4,_0x112a84['message']));});});};