3a9dd089e133136d328f01c599a04cf8e7bebf9d
[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 _0x18d7=['create','contact','fax','FaxInteraction','Contact\x20not\x20found','autoclose','push','close','unmanaged','*,*,*,*','created','interaction','ContactId','UserId','User','name','startRouting','Start','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','http','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','request','info','FaxAccount,\x20%s,\x20%s','debug','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','GetFaxAccount','options','attributes','limit','include','model','map','then','NotifyFaxAccount','body','CmContact','describe','Sequelize','ValidationError','no\x20available\x20attributes','createdAt','updatedAt','difference','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','FaxAccount','find','account','CmList','List','Contacts','DESC','FaxApplication','Applications','get','applications','orderBy','length'];(function(_0x118daf,_0x58d193){var _0x25aa14=function(_0x327f8a){while(--_0x327f8a){_0x118daf['push'](_0x118daf['shift']());}};_0x25aa14(++_0x58d193);}(_0x18d7,0x111));var _0x718d=function(_0x168c60,_0x539d96){_0x168c60=_0x168c60-0x0;var _0x29bea4=_0x18d7[_0x168c60];return _0x29bea4;};'use strict';var _=require(_0x718d('0x0'));var util=require(_0x718d('0x1'));var moment=require(_0x718d('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x718d('0x3'));var db=require(_0x718d('0x4'))['db'];var utils=require(_0x718d('0x5'));var logger=require(_0x718d('0x6'))(_0x718d('0x7'));var config=require(_0x718d('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0x718d('0x9')]({'port':0x232c});config[_0x718d('0xa')]=_[_0x718d('0xb')](config[_0x718d('0xa')],{'host':_0x718d('0xc'),'port':0x18eb});var socket=require(_0x718d('0xd'))(new Redis(config['redis']));require(_0x718d('0xe'))[_0x718d('0xf')](socket);function respondWithRpcPromise(_0x231027,_0x1a7e5b,_0x3ea0e1){return new BPromise(function(_0x26f52d,_0x1cd4a4){return client[_0x718d('0x10')](_0x231027,_0x3ea0e1)['then'](function(_0x580ab3){logger[_0x718d('0x11')](_0x718d('0x12'),_0x1a7e5b,'request\x20sent');logger[_0x718d('0x13')](_0x718d('0x14'),_0x1a7e5b,_0x718d('0x15'),JSON[_0x718d('0x16')](_0x580ab3));if(_0x580ab3[_0x718d('0x17')]){if(_0x580ab3[_0x718d('0x17')]['code']===0x1f4){logger[_0x718d('0x17')](_0x718d('0x12'),_0x1a7e5b,_0x580ab3['error']['message']);return _0x1cd4a4(_0x580ab3['error'][_0x718d('0x18')]);}logger[_0x718d('0x17')](_0x718d('0x12'),_0x1a7e5b,_0x580ab3['error'][_0x718d('0x18')]);return _0x26f52d(_0x580ab3['error'][_0x718d('0x18')]);}else{logger[_0x718d('0x11')](_0x718d('0x12'),_0x1a7e5b,_0x718d('0x15'));_0x26f52d(_0x580ab3[_0x718d('0x19')][_0x718d('0x18')]);}})[_0x718d('0x1a')](function(_0x1cd787){logger['error'](_0x718d('0x12'),_0x1a7e5b,_0x1cd787);_0x1cd4a4(_0x1cd787);});});}exports[_0x718d('0x1b')]=function(_0x5c79dd){var _0x28a0a8=this;return new Promise(function(_0x8a6981,_0xcf1a5c){return db['FaxAccount']['findAll']({'raw':_0x5c79dd[_0x718d('0x1c')]?_0x5c79dd[_0x718d('0x1c')]['raw']===undefined?!![]:![]:!![],'where':_0x5c79dd[_0x718d('0x1c')]?_0x5c79dd[_0x718d('0x1c')]['where']||null:null,'attributes':_0x5c79dd[_0x718d('0x1c')]?_0x5c79dd['options'][_0x718d('0x1d')]||null:null,'limit':_0x5c79dd[_0x718d('0x1c')]?_0x5c79dd[_0x718d('0x1c')][_0x718d('0x1e')]||null:null,'include':_0x5c79dd['options']?_0x5c79dd[_0x718d('0x1c')][_0x718d('0x1f')]?_['map'](_0x5c79dd[_0x718d('0x1c')]['include'],function(_0x1ff842){return{'model':db[_0x1ff842[_0x718d('0x20')]],'as':_0x1ff842['as'],'attributes':_0x1ff842[_0x718d('0x1d')],'include':_0x1ff842[_0x718d('0x1f')]?_['map'](_0x1ff842['include'],function(_0x422e68){return{'model':db[_0x422e68['model']],'as':_0x422e68['as'],'attributes':_0x422e68['attributes'],'include':_0x422e68[_0x718d('0x1f')]?_[_0x718d('0x21')](_0x422e68['include'],function(_0x438142){return{'model':db[_0x438142[_0x718d('0x20')]],'as':_0x438142['as'],'attributes':_0x438142['attributes']};}):[]};}):[]};}):[]:[]})[_0x718d('0x22')](function(_0x3aeac4){logger[_0x718d('0x11')](_0x718d('0x1b'),_0x5c79dd);logger['debug'](_0x718d('0x1b'),_0x5c79dd,JSON[_0x718d('0x16')](_0x3aeac4));_0x8a6981(_0x3aeac4);})[_0x718d('0x1a')](function(_0x5c8e01){logger[_0x718d('0x17')](_0x718d('0x1b'),_0x5c8e01[_0x718d('0x18')],_0x5c79dd);_0xcf1a5c(_0x28a0a8['error'](0x1f4,_0x5c8e01['message']));});});};exports[_0x718d('0x23')]=function(_0x3b3834,_0x40e26a,_0x1f18c6){var _0x3d9cfb=this;return new Promise(function(_0x106a7e,_0x2237cd){var _0x4a07af={'body':_0x3b3834[_0x718d('0x24')],'channel':'fax'};var _0x23158d=[];var _0x38e190=[];var _0x4ea2a0={};return db[_0x718d('0x25')][_0x718d('0x26')]()[_0x718d('0x22')](function(_0x5f4d0d){if(!_0x5f4d0d){throw new db[(_0x718d('0x27'))][(_0x718d('0x28'))](_0x718d('0x29'));}_0x23158d=_['difference'](_['keys'](_0x5f4d0d),[_0x718d('0x2a'),_0x718d('0x2b')]);_0x38e190=_[_0x718d('0x2c')](_['keys'](_0x5f4d0d),[_0x718d('0x2a'),_0x718d('0x2b'),'CompanyId',_0x718d('0x2d')]);if(_0x3b3834['body']['id']){delete _0x3b3834['body']['id'];}if(_[_0x718d('0x2e')](_0x3b3834[_0x718d('0x24')][_0x718d('0x2f')])){throw new db[(_0x718d('0x27'))][(_0x718d('0x28'))](_0x718d('0x30'));}if(_[_0x718d('0x2e')](_0x3b3834['body'][_0x718d('0x24')])||_0x3b3834['body']['body']===''){throw new db[(_0x718d('0x27'))][(_0x718d('0x28'))](_0x718d('0x31'));}if(_[_0x718d('0x2e')](_0x3b3834[_0x718d('0x24')][_0x718d('0x32')])){throw new db['Sequelize']['ValidationError'](_0x718d('0x33')+_0x38e190);}if(!_[_0x718d('0x34')](_0x38e190,_0x3b3834[_0x718d('0x24')][_0x718d('0x32')])){throw new db[(_0x718d('0x27'))][(_0x718d('0x28'))](_0x718d('0x35')+_0x38e190);}_0x4ea2a0[_0x3b3834[_0x718d('0x24')][_0x718d('0x32')]]=_0x3b3834[_0x718d('0x24')]['from'];})[_0x718d('0x22')](function(){return db[_0x718d('0x36')][_0x718d('0x37')]({'where':{'id':_0x3b3834[_0x718d('0x38')]['id']},'include':[{'model':db[_0x718d('0x39')],'as':_0x718d('0x3a'),'include':[{'model':db[_0x718d('0x25')],'as':_0x718d('0x3b'),'where':_0x4ea2a0,'limit':0x1,'order':[[_0x718d('0x2b'),_0x718d('0x3c')]]}]},{'model':db[_0x718d('0x3d')],'as':_0x718d('0x3e')}]});})['then'](function(_0x10a064){if(_0x10a064&&_0x10a064[_0x718d('0x3a')]){var _0x44be86=_0x10a064[_0x718d('0x3f')]({'plain':!![]});_0x4a07af[_0x718d('0x38')]=_0x44be86;_0x4a07af[_0x718d('0x40')]=_0x44be86[_0x718d('0x3e')];_0x4a07af['list']=_0x44be86[_0x718d('0x3a')];_0x4a07af[_0x718d('0x40')]=_[_0x718d('0x41')](_0x4a07af['applications'],['priority'],['asc']);if(_0x4a07af[_0x718d('0x38')][_0x718d('0x3e')]){delete _0x4a07af['account'][_0x718d('0x3e')];}if(_0x4a07af[_0x718d('0x38')][_0x718d('0x3a')]&&_0x4a07af['account']['List'][_0x718d('0x3b')][_0x718d('0x42')]){return _0x4a07af[_0x718d('0x38')][_0x718d('0x3a')][_0x718d('0x3b')][0x0];}var _0x5b6710=_[_0x718d('0xb')](_0x3b3834[_0x718d('0x24')],{'firstName':_0x3b3834['body']['from'],'ListId':_0x44be86[_0x718d('0x2d')]});_0x5b6710[_0x3b3834[_0x718d('0x24')][_0x718d('0x32')]]=_0x3b3834[_0x718d('0x24')][_0x718d('0x2f')];return db[_0x718d('0x25')][_0x718d('0x43')](_0x5b6710,{'fields':_0x23158d,'raw':!![]});}})[_0x718d('0x22')](function(_0x26f1c1){_0x4a07af[_0x718d('0x44')]=_0x26f1c1;if(_0x26f1c1){var _0x45c88e={'ContactId':_0x26f1c1['id'],'FaxAccountId':_0x3b3834[_0x718d('0x38')]['id'],'fax':_0x26f1c1[_0x718d('0x45')]};return db[_0x718d('0x46')]['find']({'where':{'ContactId':_0x26f1c1['id'],'closed':![],'FaxAccountId':_0x3b3834[_0x718d('0x38')]['id']}})[_0x718d('0x22')](function(_0x9528cd){if(_0x9528cd){return[_0x9528cd,![]];}return db[_0x718d('0x46')][_0x718d('0x43')](_0x45c88e)[_0x718d('0x22')](function(_0x24a061){return[_0x24a061,!![]];});});}else{throw new Error(_0x718d('0x47'));}})['spread'](function(_0x2483f7,_0x432c7e){var _0x536ac9=_0x2483f7[_0x718d('0x3f')]({'plain':!![]});if(_0x432c7e){if(_0x4a07af[_0x718d('0x38')][_0x718d('0x48')]){_0x4a07af[_0x718d('0x40')][_0x718d('0x49')]({'id':0x0,'priority':_0x4a07af[_0x718d('0x40')][_0x718d('0x42')]+0x1,'app':_0x718d('0x4a'),'appdata':_0x718d('0x4b'),'interval':_0x718d('0x4c')});}_0x536ac9[_0x718d('0x4d')]=!![];}else{_0x536ac9[_0x718d('0x4d')]=![];}_0x4a07af[_0x718d('0x4e')]=_0x536ac9;return db['FaxMessage']['create']({'body':_0x3b3834['body'][_0x718d('0x24')],'FaxAccountId':_0x3b3834[_0x718d('0x38')]['id'],'FaxInteractionId':_0x2483f7['id'],'direction':'in','ContactId':_0x2483f7[_0x718d('0x4f')],'AttachmentId':_0x3b3834[_0x718d('0x24')]['AttachmentId']});})[_0x718d('0x22')](function(_0x153b46){_0x4a07af[_0x718d('0x18')]=_0x153b46;if(_0x4a07af[_0x718d('0x4e')][_0x718d('0x50')]){return db[_0x718d('0x51')]['find']({'attributes':['id',_0x718d('0x52')],'where':{'id':_0x4a07af[_0x718d('0x4e')][_0x718d('0x50')]}})[_0x718d('0x22')](function(_0x20ce3b){if(_0x20ce3b){_0x4a07af['applications']['unshift']({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x20ce3b['name']+','+(_0x4a07af[_0x718d('0x38')]['waitForTheAssignedAgent']||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise('Start',_0x718d('0x53'),_0x4a07af);});}return respondWithRpcPromise(_0x718d('0x54'),_0x718d('0x53'),_0x4a07af);})['then'](function(_0x2f2bb0){_0x106a7e(_0x2f2bb0);})['catch'](function(_0x5acfa2){_0x2237cd(_0x3d9cfb['error'](0x1f4,_0x5acfa2[_0x718d('0x18')]));});});};