88842a70faae608e095a26cdc75949d009e57647
[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 _0xec72=['NotifyFaxAccount','body','describe','Sequelize','ValidationError','no\x20available\x20attributes','keys','createdAt','updatedAt','difference','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','FaxAccount','find','account','CmList','CmContact','DESC','FaxApplication','Applications','List','applications','list','orderBy','priority','Contacts','length','ListId','create','contact','fax','FaxInteraction','Contact\x20not\x20found','push','unmanaged','created','interaction','FaxMessage','ContactId','AttachmentId','User','name','UserId','unshift','*,*,*,*','Start','startRouting','lodash','util','moment','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','then','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','GetFaxAccount','options','raw','where','attributes','include','map','model','info','catch'];(function(_0x3be31f,_0x181fb8){var _0x10a4c3=function(_0x43e326){while(--_0x43e326){_0x3be31f['push'](_0x3be31f['shift']());}};_0x10a4c3(++_0x181fb8);}(_0xec72,0x133));var _0x2ec7=function(_0xf629bf,_0x62693b){_0xf629bf=_0xf629bf-0x0;var _0x50523c=_0xec72[_0xf629bf];return _0x50523c;};'use strict';var _=require(_0x2ec7('0x0'));var util=require(_0x2ec7('0x1'));var moment=require(_0x2ec7('0x2'));var BPromise=require('bluebird');var rs=require(_0x2ec7('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x2ec7('0x4'));var logger=require(_0x2ec7('0x5'))(_0x2ec7('0x6'));var config=require(_0x2ec7('0x7'));var jayson=require(_0x2ec7('0x8'));var client=jayson[_0x2ec7('0x9')][_0x2ec7('0xa')]({'port':0x232c});config[_0x2ec7('0xb')]=_[_0x2ec7('0xc')](config[_0x2ec7('0xb')],{'host':_0x2ec7('0xd'),'port':0x18eb});var socket=require(_0x2ec7('0xe'))(new Redis(config[_0x2ec7('0xb')]));require('./faxAccount.socket')['register'](socket);function respondWithRpcPromise(_0x25a222,_0x5707ac,_0x309e7f){return new BPromise(function(_0x4f9ac9,_0x394a8a){return client['request'](_0x25a222,_0x309e7f)[_0x2ec7('0xf')](function(_0x1aba0a){logger['info'](_0x2ec7('0x10'),_0x5707ac,_0x2ec7('0x11'));logger[_0x2ec7('0x12')](_0x2ec7('0x13'),_0x5707ac,_0x2ec7('0x11'),JSON[_0x2ec7('0x14')](_0x1aba0a));if(_0x1aba0a[_0x2ec7('0x15')]){if(_0x1aba0a[_0x2ec7('0x15')]['code']===0x1f4){logger[_0x2ec7('0x15')](_0x2ec7('0x10'),_0x5707ac,_0x1aba0a[_0x2ec7('0x15')][_0x2ec7('0x16')]);return _0x394a8a(_0x1aba0a[_0x2ec7('0x15')]['message']);}logger['error'](_0x2ec7('0x10'),_0x5707ac,_0x1aba0a['error'][_0x2ec7('0x16')]);return _0x4f9ac9(_0x1aba0a['error'][_0x2ec7('0x16')]);}else{logger['info']('FaxAccount,\x20%s,\x20%s',_0x5707ac,_0x2ec7('0x11'));_0x4f9ac9(_0x1aba0a['result'][_0x2ec7('0x16')]);}})['catch'](function(_0x285ec8){logger[_0x2ec7('0x15')](_0x2ec7('0x10'),_0x5707ac,_0x285ec8);_0x394a8a(_0x285ec8);});});}exports[_0x2ec7('0x17')]=function(_0x10f65d){var _0x1231d8=this;return new Promise(function(_0x1d5711,_0x5431d4){return db['FaxAccount']['findAll']({'raw':_0x10f65d[_0x2ec7('0x18')]?_0x10f65d[_0x2ec7('0x18')][_0x2ec7('0x19')]===undefined?!![]:![]:!![],'where':_0x10f65d[_0x2ec7('0x18')]?_0x10f65d[_0x2ec7('0x18')][_0x2ec7('0x1a')]||null:null,'attributes':_0x10f65d[_0x2ec7('0x18')]?_0x10f65d[_0x2ec7('0x18')][_0x2ec7('0x1b')]||null:null,'limit':_0x10f65d[_0x2ec7('0x18')]?_0x10f65d['options']['limit']||null:null,'include':_0x10f65d[_0x2ec7('0x18')]?_0x10f65d[_0x2ec7('0x18')][_0x2ec7('0x1c')]?_[_0x2ec7('0x1d')](_0x10f65d[_0x2ec7('0x18')][_0x2ec7('0x1c')],function(_0x5c823f){return{'model':db[_0x5c823f[_0x2ec7('0x1e')]],'as':_0x5c823f['as'],'attributes':_0x5c823f[_0x2ec7('0x1b')],'include':_0x5c823f[_0x2ec7('0x1c')]?_[_0x2ec7('0x1d')](_0x5c823f['include'],function(_0x16c43f){return{'model':db[_0x16c43f[_0x2ec7('0x1e')]],'as':_0x16c43f['as'],'attributes':_0x16c43f['attributes'],'include':_0x16c43f[_0x2ec7('0x1c')]?_[_0x2ec7('0x1d')](_0x16c43f[_0x2ec7('0x1c')],function(_0x87ccaf){return{'model':db[_0x87ccaf[_0x2ec7('0x1e')]],'as':_0x87ccaf['as'],'attributes':_0x87ccaf[_0x2ec7('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x2ec7('0xf')](function(_0x3c23f0){logger[_0x2ec7('0x1f')](_0x2ec7('0x17'),_0x10f65d);logger[_0x2ec7('0x12')](_0x2ec7('0x17'),_0x10f65d,JSON[_0x2ec7('0x14')](_0x3c23f0));_0x1d5711(_0x3c23f0);})[_0x2ec7('0x20')](function(_0x1740d0){logger[_0x2ec7('0x15')](_0x2ec7('0x17'),_0x1740d0[_0x2ec7('0x16')],_0x10f65d);_0x5431d4(_0x1231d8[_0x2ec7('0x15')](0x1f4,_0x1740d0[_0x2ec7('0x16')]));});});};exports[_0x2ec7('0x21')]=function(_0x4e1be0,_0x27f05d,_0x14e395){var _0xf05a65=this;return new Promise(function(_0x26c9d0,_0x283277){var _0x1ec81a={'body':_0x4e1be0[_0x2ec7('0x22')],'channel':'fax'};var _0x1a1bd5=[];var _0x4ba57f=[];var _0x23a087={};return db['CmContact'][_0x2ec7('0x23')]()[_0x2ec7('0xf')](function(_0x159691){if(!_0x159691){throw new db[(_0x2ec7('0x24'))][(_0x2ec7('0x25'))](_0x2ec7('0x26'));}_0x1a1bd5=_['difference'](_[_0x2ec7('0x27')](_0x159691),[_0x2ec7('0x28'),_0x2ec7('0x29')]);_0x4ba57f=_[_0x2ec7('0x2a')](_[_0x2ec7('0x27')](_0x159691),['createdAt',_0x2ec7('0x29'),'CompanyId','ListId']);if(_0x4e1be0[_0x2ec7('0x22')]['id']){delete _0x4e1be0[_0x2ec7('0x22')]['id'];}if(_[_0x2ec7('0x2b')](_0x4e1be0['body'][_0x2ec7('0x2c')])){throw new db[(_0x2ec7('0x24'))][(_0x2ec7('0x25'))](_0x2ec7('0x2d'));}if(_['isNil'](_0x4e1be0[_0x2ec7('0x22')][_0x2ec7('0x22')])||_0x4e1be0[_0x2ec7('0x22')][_0x2ec7('0x22')]===''){throw new db['Sequelize'][(_0x2ec7('0x25'))](_0x2ec7('0x2e'));}if(_[_0x2ec7('0x2b')](_0x4e1be0['body'][_0x2ec7('0x2f')])){throw new db[(_0x2ec7('0x24'))][(_0x2ec7('0x25'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x4ba57f);}if(!_[_0x2ec7('0x30')](_0x4ba57f,_0x4e1be0[_0x2ec7('0x22')][_0x2ec7('0x2f')])){throw new db[(_0x2ec7('0x24'))][(_0x2ec7('0x25'))](_0x2ec7('0x31')+_0x4ba57f);}_0x23a087[_0x4e1be0[_0x2ec7('0x22')][_0x2ec7('0x2f')]]=_0x4e1be0['body'][_0x2ec7('0x2c')];})[_0x2ec7('0xf')](function(){return db[_0x2ec7('0x32')][_0x2ec7('0x33')]({'where':{'id':_0x4e1be0[_0x2ec7('0x34')]['id']},'include':[{'model':db[_0x2ec7('0x35')],'as':'List','include':[{'model':db[_0x2ec7('0x36')],'as':'Contacts','where':_0x23a087,'limit':0x1,'order':[[_0x2ec7('0x29'),_0x2ec7('0x37')]]}]},{'model':db[_0x2ec7('0x38')],'as':_0x2ec7('0x39')}]});})['then'](function(_0x2f35e2){if(_0x2f35e2&&_0x2f35e2[_0x2ec7('0x3a')]){var _0x36d1b5=_0x2f35e2['get']({'plain':!![]});_0x1ec81a[_0x2ec7('0x34')]=_0x36d1b5;_0x1ec81a[_0x2ec7('0x3b')]=_0x36d1b5[_0x2ec7('0x39')];_0x1ec81a[_0x2ec7('0x3c')]=_0x36d1b5[_0x2ec7('0x3a')];_0x1ec81a['applications']=_[_0x2ec7('0x3d')](_0x1ec81a[_0x2ec7('0x3b')],[_0x2ec7('0x3e')],['asc']);if(_0x1ec81a['account'][_0x2ec7('0x39')]){delete _0x1ec81a[_0x2ec7('0x34')][_0x2ec7('0x39')];}if(_0x1ec81a['account']['List']&&_0x1ec81a[_0x2ec7('0x34')][_0x2ec7('0x3a')][_0x2ec7('0x3f')][_0x2ec7('0x40')]){return _0x1ec81a[_0x2ec7('0x34')][_0x2ec7('0x3a')][_0x2ec7('0x3f')][0x0];}var _0x50750f=_[_0x2ec7('0xc')](_0x4e1be0[_0x2ec7('0x22')],{'firstName':_0x4e1be0['body']['from'],'ListId':_0x36d1b5[_0x2ec7('0x41')]});_0x50750f[_0x4e1be0[_0x2ec7('0x22')][_0x2ec7('0x2f')]]=_0x4e1be0[_0x2ec7('0x22')][_0x2ec7('0x2c')];return db['CmContact'][_0x2ec7('0x42')](_0x50750f,{'fields':_0x1a1bd5,'raw':!![]});}})[_0x2ec7('0xf')](function(_0x344c3d){_0x1ec81a[_0x2ec7('0x43')]=_0x344c3d;if(_0x344c3d){var _0x275bd8={'ContactId':_0x344c3d['id'],'FaxAccountId':_0x4e1be0[_0x2ec7('0x34')]['id'],'fax':_0x344c3d[_0x2ec7('0x44')]};return db[_0x2ec7('0x45')][_0x2ec7('0x33')]({'where':{'ContactId':_0x344c3d['id'],'closed':![],'FaxAccountId':_0x4e1be0['account']['id']}})['then'](function(_0xe40fa3){if(_0xe40fa3){return[_0xe40fa3,![]];}return db[_0x2ec7('0x45')][_0x2ec7('0x42')](_0x275bd8)[_0x2ec7('0xf')](function(_0x354261){return[_0x354261,!![]];});});}else{throw new Error(_0x2ec7('0x46'));}})['spread'](function(_0x148e85,_0x3cf47e){var _0xcf0f7a=_0x148e85['get']({'plain':!![]});if(_0x3cf47e){if(_0x1ec81a[_0x2ec7('0x34')]['autoclose']){_0x1ec81a[_0x2ec7('0x3b')][_0x2ec7('0x47')]({'id':0x0,'priority':_0x1ec81a[_0x2ec7('0x3b')][_0x2ec7('0x40')]+0x1,'app':'close','appdata':_0x2ec7('0x48'),'interval':'*,*,*,*'});}_0xcf0f7a[_0x2ec7('0x49')]=!![];}else{_0xcf0f7a[_0x2ec7('0x49')]=![];}_0x1ec81a[_0x2ec7('0x4a')]=_0xcf0f7a;return db[_0x2ec7('0x4b')][_0x2ec7('0x42')]({'body':_0x4e1be0[_0x2ec7('0x22')]['body'],'FaxAccountId':_0x4e1be0[_0x2ec7('0x34')]['id'],'FaxInteractionId':_0x148e85['id'],'direction':'in','ContactId':_0x148e85[_0x2ec7('0x4c')],'AttachmentId':_0x4e1be0[_0x2ec7('0x22')][_0x2ec7('0x4d')]});})[_0x2ec7('0xf')](function(_0x3bbedc){_0x1ec81a['message']=_0x3bbedc;if(_0x1ec81a['interaction']['UserId']){return db[_0x2ec7('0x4e')][_0x2ec7('0x33')]({'attributes':['id',_0x2ec7('0x4f')],'where':{'id':_0x1ec81a['interaction'][_0x2ec7('0x50')]}})[_0x2ec7('0xf')](function(_0x26aa5b){if(_0x26aa5b){_0x1ec81a[_0x2ec7('0x3b')][_0x2ec7('0x51')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x26aa5b[_0x2ec7('0x4f')]+','+(_0x1ec81a[_0x2ec7('0x34')]['waitForTheAssignedAgent']||0xa),'interval':_0x2ec7('0x52')});}return respondWithRpcPromise(_0x2ec7('0x53'),_0x2ec7('0x54'),_0x1ec81a);});}return respondWithRpcPromise('Start',_0x2ec7('0x54'),_0x1ec81a);})['then'](function(_0xb75c7c){_0x26c9d0(_0xb75c7c);})[_0x2ec7('0x20')](function(_0x58e46a){_0x283277(_0xf05a65[_0x2ec7('0x15')](0x1f4,_0x58e46a[_0x2ec7('0x16')]));});});};