a798b7d74c9db6884f0e59e81710c8ddf9251db2
[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 _0x42ed=['localhost','./faxAccount.socket','request','then','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','GetFaxAccount','FaxAccount','findAll','options','raw','where','limit','include','model','map','attributes','catch','NotifyFaxAccount','fax','Sequelize','ValidationError','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','CompanyId','ListId','body','isNil','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','find','account','CmContact','Contacts','DESC','FaxApplication','Applications','List','get','list','applications','orderBy','priority','asc','length','create','contact','FaxInteraction','Contact\x20not\x20found','spread','close','unmanaged','*,*,*,*','created','ContactId','AttachmentId','UserId','User','name','interaction','waitForTheAssignedAgent','startRouting','Start','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults'];(function(_0xc64699,_0x1b3076){var _0x40732e=function(_0x23d369){while(--_0x23d369){_0xc64699['push'](_0xc64699['shift']());}};_0x40732e(++_0x1b3076);}(_0x42ed,0x104));var _0xd42e=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x42ed[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0xd42e('0x0'));var moment=require(_0xd42e('0x1'));var BPromise=require(_0xd42e('0x2'));var rs=require(_0xd42e('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xd42e('0x4'))['db'];var utils=require(_0xd42e('0x5'));var logger=require(_0xd42e('0x6'))(_0xd42e('0x7'));var config=require(_0xd42e('0x8'));var jayson=require(_0xd42e('0x9'));var client=jayson[_0xd42e('0xa')]['http']({'port':0x232c});config[_0xd42e('0xb')]=_[_0xd42e('0xc')](config[_0xd42e('0xb')],{'host':_0xd42e('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xd42e('0xe'))['register'](socket);function respondWithRpcPromise(_0x33baa3,_0x3f4a5b,_0x21d78a){return new BPromise(function(_0x102688,_0x29872c){return client[_0xd42e('0xf')](_0x33baa3,_0x21d78a)[_0xd42e('0x10')](function(_0x104fae){logger['info'](_0xd42e('0x11'),_0x3f4a5b,_0xd42e('0x12'));logger[_0xd42e('0x13')](_0xd42e('0x14'),_0x3f4a5b,_0xd42e('0x12'),JSON[_0xd42e('0x15')](_0x104fae));if(_0x104fae['error']){if(_0x104fae[_0xd42e('0x16')][_0xd42e('0x17')]===0x1f4){logger[_0xd42e('0x16')]('FaxAccount,\x20%s,\x20%s',_0x3f4a5b,_0x104fae[_0xd42e('0x16')]['message']);return _0x29872c(_0x104fae['error'][_0xd42e('0x18')]);}logger[_0xd42e('0x16')]('FaxAccount,\x20%s,\x20%s',_0x3f4a5b,_0x104fae[_0xd42e('0x16')][_0xd42e('0x18')]);return _0x102688(_0x104fae['error'][_0xd42e('0x18')]);}else{logger[_0xd42e('0x19')](_0xd42e('0x11'),_0x3f4a5b,'request\x20sent');_0x102688(_0x104fae[_0xd42e('0x1a')][_0xd42e('0x18')]);}})['catch'](function(_0x566f34){logger[_0xd42e('0x16')](_0xd42e('0x11'),_0x3f4a5b,_0x566f34);_0x29872c(_0x566f34);});});}exports[_0xd42e('0x1b')]=function(_0xf12110){var _0x313c5f=this;return new Promise(function(_0x419876,_0x3128cd){return db[_0xd42e('0x1c')][_0xd42e('0x1d')]({'raw':_0xf12110[_0xd42e('0x1e')]?_0xf12110['options'][_0xd42e('0x1f')]===undefined?!![]:![]:!![],'where':_0xf12110[_0xd42e('0x1e')]?_0xf12110[_0xd42e('0x1e')][_0xd42e('0x20')]||null:null,'attributes':_0xf12110['options']?_0xf12110['options']['attributes']||null:null,'limit':_0xf12110[_0xd42e('0x1e')]?_0xf12110[_0xd42e('0x1e')][_0xd42e('0x21')]||null:null,'include':_0xf12110[_0xd42e('0x1e')]?_0xf12110[_0xd42e('0x1e')][_0xd42e('0x22')]?_['map'](_0xf12110['options'][_0xd42e('0x22')],function(_0x996681){return{'model':db[_0x996681[_0xd42e('0x23')]],'as':_0x996681['as'],'attributes':_0x996681['attributes'],'include':_0x996681[_0xd42e('0x22')]?_[_0xd42e('0x24')](_0x996681[_0xd42e('0x22')],function(_0x34985f){return{'model':db[_0x34985f[_0xd42e('0x23')]],'as':_0x34985f['as'],'attributes':_0x34985f[_0xd42e('0x25')],'include':_0x34985f[_0xd42e('0x22')]?_['map'](_0x34985f[_0xd42e('0x22')],function(_0xf13116){return{'model':db[_0xf13116['model']],'as':_0xf13116['as'],'attributes':_0xf13116[_0xd42e('0x25')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3530c8){logger[_0xd42e('0x19')](_0xd42e('0x1b'),_0xf12110);logger['debug'](_0xd42e('0x1b'),_0xf12110,JSON[_0xd42e('0x15')](_0x3530c8));_0x419876(_0x3530c8);})[_0xd42e('0x26')](function(_0x591548){logger[_0xd42e('0x16')](_0xd42e('0x1b'),_0x591548[_0xd42e('0x18')],_0xf12110);_0x3128cd(_0x313c5f[_0xd42e('0x16')](0x1f4,_0x591548[_0xd42e('0x18')]));});});};exports[_0xd42e('0x27')]=function(_0x5cfef6,_0x4a8452,_0x368de4){var _0x275629=this;return new Promise(function(_0x20e070,_0x213591){var _0x3d1342={'body':_0x5cfef6['body'],'channel':_0xd42e('0x28')};var _0xa96ac1=[];var _0xc95234=[];var _0x447b2d={};return db['CmContact']['describe']()['then'](function(_0xba021e){if(!_0xba021e){throw new db[(_0xd42e('0x29'))][(_0xd42e('0x2a'))](_0xd42e('0x2b'));}_0xa96ac1=_[_0xd42e('0x2c')](_[_0xd42e('0x2d')](_0xba021e),[_0xd42e('0x2e'),_0xd42e('0x2f')]);_0xc95234=_[_0xd42e('0x2c')](_['keys'](_0xba021e),[_0xd42e('0x2e'),_0xd42e('0x2f'),_0xd42e('0x30'),_0xd42e('0x31')]);if(_0x5cfef6['body']['id']){delete _0x5cfef6[_0xd42e('0x32')]['id'];}if(_[_0xd42e('0x33')](_0x5cfef6['body']['from'])){throw new db[(_0xd42e('0x29'))][(_0xd42e('0x2a'))](_0xd42e('0x34'));}if(_['isNil'](_0x5cfef6[_0xd42e('0x32')]['body'])||_0x5cfef6[_0xd42e('0x32')][_0xd42e('0x32')]===''){throw new db['Sequelize']['ValidationError'](_0xd42e('0x35'));}if(_[_0xd42e('0x33')](_0x5cfef6[_0xd42e('0x32')][_0xd42e('0x36')])){throw new db[(_0xd42e('0x29'))][(_0xd42e('0x2a'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0xc95234);}if(!_[_0xd42e('0x37')](_0xc95234,_0x5cfef6[_0xd42e('0x32')][_0xd42e('0x36')])){throw new db[(_0xd42e('0x29'))]['ValidationError'](_0xd42e('0x38')+_0xc95234);}_0x447b2d[_0x5cfef6[_0xd42e('0x32')][_0xd42e('0x36')]]=_0x5cfef6[_0xd42e('0x32')][_0xd42e('0x39')];})[_0xd42e('0x10')](function(){return db[_0xd42e('0x1c')][_0xd42e('0x3a')]({'where':{'id':_0x5cfef6[_0xd42e('0x3b')]['id']},'include':[{'model':db['CmList'],'as':'List','include':[{'model':db[_0xd42e('0x3c')],'as':_0xd42e('0x3d'),'where':_0x447b2d,'limit':0x1,'order':[[_0xd42e('0x2f'),_0xd42e('0x3e')]]}]},{'model':db[_0xd42e('0x3f')],'as':_0xd42e('0x40')}]});})[_0xd42e('0x10')](function(_0xacc648){if(_0xacc648&&_0xacc648[_0xd42e('0x41')]){var _0x35b7f6=_0xacc648[_0xd42e('0x42')]({'plain':!![]});_0x3d1342['account']=_0x35b7f6;_0x3d1342['applications']=_0x35b7f6[_0xd42e('0x40')];_0x3d1342[_0xd42e('0x43')]=_0x35b7f6[_0xd42e('0x41')];_0x3d1342[_0xd42e('0x44')]=_[_0xd42e('0x45')](_0x3d1342[_0xd42e('0x44')],[_0xd42e('0x46')],[_0xd42e('0x47')]);if(_0x3d1342[_0xd42e('0x3b')][_0xd42e('0x40')]){delete _0x3d1342['account'][_0xd42e('0x40')];}if(_0x3d1342[_0xd42e('0x3b')]['List']&&_0x3d1342[_0xd42e('0x3b')]['List'][_0xd42e('0x3d')][_0xd42e('0x48')]){return _0x3d1342['account'][_0xd42e('0x41')][_0xd42e('0x3d')][0x0];}var _0x222d5d=_[_0xd42e('0xc')](_0x5cfef6[_0xd42e('0x32')],{'firstName':_0x5cfef6[_0xd42e('0x32')][_0xd42e('0x39')],'ListId':_0x35b7f6[_0xd42e('0x31')]});_0x222d5d[_0x5cfef6[_0xd42e('0x32')][_0xd42e('0x36')]]=_0x5cfef6[_0xd42e('0x32')][_0xd42e('0x39')];return db[_0xd42e('0x3c')][_0xd42e('0x49')](_0x222d5d,{'fields':_0xa96ac1,'raw':!![]});}})['then'](function(_0x894f77){_0x3d1342[_0xd42e('0x4a')]=_0x894f77;if(_0x894f77){var _0x265fe9={'ContactId':_0x894f77['id'],'FaxAccountId':_0x5cfef6[_0xd42e('0x3b')]['id'],'fax':_0x894f77[_0xd42e('0x28')]};return db[_0xd42e('0x4b')][_0xd42e('0x3a')]({'where':{'ContactId':_0x894f77['id'],'closed':![],'FaxAccountId':_0x5cfef6[_0xd42e('0x3b')]['id']}})[_0xd42e('0x10')](function(_0x422ab0){if(_0x422ab0){return[_0x422ab0,![]];}return db['FaxInteraction'][_0xd42e('0x49')](_0x265fe9)['then'](function(_0x311691){return[_0x311691,!![]];});});}else{throw new Error(_0xd42e('0x4c'));}})[_0xd42e('0x4d')](function(_0x11775a,_0x31bc47){var _0x399b2f=_0x11775a['get']({'plain':!![]});if(_0x31bc47){if(_0x3d1342[_0xd42e('0x3b')]['autoclose']){_0x3d1342[_0xd42e('0x44')]['push']({'id':0x0,'priority':_0x3d1342['applications']['length']+0x1,'app':_0xd42e('0x4e'),'appdata':_0xd42e('0x4f'),'interval':_0xd42e('0x50')});}_0x399b2f[_0xd42e('0x51')]=!![];}else{_0x399b2f['created']=![];}_0x3d1342['interaction']=_0x399b2f;return db['FaxMessage'][_0xd42e('0x49')]({'body':_0x5cfef6[_0xd42e('0x32')][_0xd42e('0x32')],'FaxAccountId':_0x5cfef6[_0xd42e('0x3b')]['id'],'FaxInteractionId':_0x11775a['id'],'direction':'in','ContactId':_0x11775a[_0xd42e('0x52')],'AttachmentId':_0x5cfef6['body'][_0xd42e('0x53')]});})['then'](function(_0x34e3ad){_0x3d1342[_0xd42e('0x18')]=_0x34e3ad;if(_0x3d1342['interaction'][_0xd42e('0x54')]){return db[_0xd42e('0x55')]['find']({'attributes':['id',_0xd42e('0x56')],'where':{'id':_0x3d1342[_0xd42e('0x57')][_0xd42e('0x54')]}})[_0xd42e('0x10')](function(_0x462097){if(_0x462097){_0x3d1342[_0xd42e('0x44')]['unshift']({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x462097['name']+','+(_0x3d1342[_0xd42e('0x3b')][_0xd42e('0x58')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise('Start',_0xd42e('0x59'),_0x3d1342);});}return respondWithRpcPromise(_0xd42e('0x5a'),_0xd42e('0x59'),_0x3d1342);})[_0xd42e('0x10')](function(_0x539e6d){_0x20e070(_0x539e6d);})[_0xd42e('0x26')](function(_0x2cc30b){_0x213591(_0x275629[_0xd42e('0x16')](0x1f4,_0x2cc30b[_0xd42e('0x18')]));});});};