0984595f5290cad342b1eb3907538ae316745a82
[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 _0xa0a3=['catch','GetFaxAccount','findAll','options','raw','where','limit','include','map','model','attributes','debug','NotifyFaxAccount','body','CmContact','describe','then','Sequelize','no\x20available\x20attributes','keys','createdAt','updatedAt','CompanyId','ListId','isNil','from','ValidationError','from\x20is\x20mandatory','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','FaxAccount','CmList','List','Contacts','DESC','FaxApplication','Applications','get','account','applications','list','orderBy','asc','length','create','contact','fax','find','FaxInteraction','spread','push','close','unmanaged','created','interaction','ContactId','AttachmentId','User','UserId','name','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','defaults','redis','localhost','socket.io-emitter','info','FaxAccount,\x20%s,\x20%s','request\x20sent','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','message'];(function(_0x509eb1,_0x204ba3){var _0x306cfe=function(_0x50e6d8){while(--_0x50e6d8){_0x509eb1['push'](_0x509eb1['shift']());}};_0x306cfe(++_0x204ba3);}(_0xa0a3,0x9a));var _0x3a0a=function(_0x4ee5aa,_0x4f2d01){_0x4ee5aa=_0x4ee5aa-0x0;var _0x171eb1=_0xa0a3[_0x4ee5aa];return _0x171eb1;};'use strict';var _=require(_0x3a0a('0x0'));var util=require('util');var moment=require(_0x3a0a('0x1'));var BPromise=require(_0x3a0a('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x3a0a('0x3'));var db=require(_0x3a0a('0x4'))['db'];var utils=require(_0x3a0a('0x5'));var logger=require(_0x3a0a('0x6'))(_0x3a0a('0x7'));var config=require(_0x3a0a('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x3a0a('0x9')][_0x3a0a('0xa')]({'port':0x232c});config['redis']=_[_0x3a0a('0xb')](config[_0x3a0a('0xc')],{'host':_0x3a0a('0xd'),'port':0x18eb});var socket=require(_0x3a0a('0xe'))(new Redis(config[_0x3a0a('0xc')]));require('./faxAccount.socket')['register'](socket);function respondWithRpcPromise(_0x2680bd,_0x340405,_0x1362ae){return new BPromise(function(_0x4e8caa,_0x54b042){return client['request'](_0x2680bd,_0x1362ae)['then'](function(_0x171582){logger[_0x3a0a('0xf')](_0x3a0a('0x10'),_0x340405,_0x3a0a('0x11'));logger['debug'](_0x3a0a('0x12'),_0x340405,_0x3a0a('0x11'),JSON[_0x3a0a('0x13')](_0x171582));if(_0x171582[_0x3a0a('0x14')]){if(_0x171582[_0x3a0a('0x14')]['code']===0x1f4){logger['error']('FaxAccount,\x20%s,\x20%s',_0x340405,_0x171582['error'][_0x3a0a('0x15')]);return _0x54b042(_0x171582[_0x3a0a('0x14')][_0x3a0a('0x15')]);}logger[_0x3a0a('0x14')](_0x3a0a('0x10'),_0x340405,_0x171582[_0x3a0a('0x14')][_0x3a0a('0x15')]);return _0x4e8caa(_0x171582[_0x3a0a('0x14')][_0x3a0a('0x15')]);}else{logger[_0x3a0a('0xf')]('FaxAccount,\x20%s,\x20%s',_0x340405,_0x3a0a('0x11'));_0x4e8caa(_0x171582['result'][_0x3a0a('0x15')]);}})[_0x3a0a('0x16')](function(_0x132d5c){logger[_0x3a0a('0x14')](_0x3a0a('0x10'),_0x340405,_0x132d5c);_0x54b042(_0x132d5c);});});}exports[_0x3a0a('0x17')]=function(_0x580760){var _0xec169=this;return new Promise(function(_0x4ff1b4,_0x30e0eb){return db['FaxAccount'][_0x3a0a('0x18')]({'raw':_0x580760[_0x3a0a('0x19')]?_0x580760['options'][_0x3a0a('0x1a')]===undefined?!![]:![]:!![],'where':_0x580760[_0x3a0a('0x19')]?_0x580760[_0x3a0a('0x19')][_0x3a0a('0x1b')]||null:null,'attributes':_0x580760[_0x3a0a('0x19')]?_0x580760['options']['attributes']||null:null,'limit':_0x580760['options']?_0x580760['options'][_0x3a0a('0x1c')]||null:null,'include':_0x580760[_0x3a0a('0x19')]?_0x580760[_0x3a0a('0x19')][_0x3a0a('0x1d')]?_[_0x3a0a('0x1e')](_0x580760[_0x3a0a('0x19')]['include'],function(_0x52236a){return{'model':db[_0x52236a[_0x3a0a('0x1f')]],'as':_0x52236a['as'],'attributes':_0x52236a[_0x3a0a('0x20')],'include':_0x52236a[_0x3a0a('0x1d')]?_[_0x3a0a('0x1e')](_0x52236a[_0x3a0a('0x1d')],function(_0x146754){return{'model':db[_0x146754['model']],'as':_0x146754['as'],'attributes':_0x146754['attributes'],'include':_0x146754['include']?_['map'](_0x146754['include'],function(_0x4bdd4e){return{'model':db[_0x4bdd4e[_0x3a0a('0x1f')]],'as':_0x4bdd4e['as'],'attributes':_0x4bdd4e[_0x3a0a('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x43f366){logger[_0x3a0a('0xf')](_0x3a0a('0x17'),_0x580760);logger[_0x3a0a('0x21')]('GetFaxAccount',_0x580760,JSON[_0x3a0a('0x13')](_0x43f366));_0x4ff1b4(_0x43f366);})[_0x3a0a('0x16')](function(_0x183438){logger['error']('GetFaxAccount',_0x183438['message'],_0x580760);_0x30e0eb(_0xec169[_0x3a0a('0x14')](0x1f4,_0x183438[_0x3a0a('0x15')]));});});};exports[_0x3a0a('0x22')]=function(_0x579744,_0x4bb739,_0xaa4e76){var _0x4d07c1=this;return new Promise(function(_0x1448db,_0x21d374){var _0x846d4={'body':_0x579744[_0x3a0a('0x23')],'channel':'fax'};var _0x2bdcd7=[];var _0x10ce06=[];var _0x293d8d={};return db[_0x3a0a('0x24')][_0x3a0a('0x25')]()[_0x3a0a('0x26')](function(_0x322773){if(!_0x322773){throw new db[(_0x3a0a('0x27'))]['ValidationError'](_0x3a0a('0x28'));}_0x2bdcd7=_['difference'](_[_0x3a0a('0x29')](_0x322773),[_0x3a0a('0x2a'),_0x3a0a('0x2b')]);_0x10ce06=_['difference'](_['keys'](_0x322773),[_0x3a0a('0x2a'),_0x3a0a('0x2b'),_0x3a0a('0x2c'),_0x3a0a('0x2d')]);if(_0x579744['body']['id']){delete _0x579744[_0x3a0a('0x23')]['id'];}if(_[_0x3a0a('0x2e')](_0x579744[_0x3a0a('0x23')][_0x3a0a('0x2f')])){throw new db[(_0x3a0a('0x27'))][(_0x3a0a('0x30'))](_0x3a0a('0x31'));}if(_[_0x3a0a('0x2e')](_0x579744['body'][_0x3a0a('0x23')])||_0x579744[_0x3a0a('0x23')][_0x3a0a('0x23')]===''){throw new db[(_0x3a0a('0x27'))]['ValidationError']('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0x3a0a('0x2e')](_0x579744[_0x3a0a('0x23')][_0x3a0a('0x32')])){throw new db[(_0x3a0a('0x27'))]['ValidationError'](_0x3a0a('0x33')+_0x10ce06);}if(!_[_0x3a0a('0x34')](_0x10ce06,_0x579744[_0x3a0a('0x23')][_0x3a0a('0x32')])){throw new db[(_0x3a0a('0x27'))][(_0x3a0a('0x30'))](_0x3a0a('0x35')+_0x10ce06);}_0x293d8d[_0x579744['body'][_0x3a0a('0x32')]]=_0x579744[_0x3a0a('0x23')]['from'];})[_0x3a0a('0x26')](function(){return db[_0x3a0a('0x36')]['find']({'where':{'id':_0x579744['account']['id']},'include':[{'model':db[_0x3a0a('0x37')],'as':_0x3a0a('0x38'),'include':[{'model':db['CmContact'],'as':_0x3a0a('0x39'),'where':_0x293d8d,'limit':0x1,'order':[[_0x3a0a('0x2b'),_0x3a0a('0x3a')]]}]},{'model':db[_0x3a0a('0x3b')],'as':_0x3a0a('0x3c')}]});})[_0x3a0a('0x26')](function(_0x2c22e5){if(_0x2c22e5&&_0x2c22e5[_0x3a0a('0x38')]){var _0x459e2b=_0x2c22e5[_0x3a0a('0x3d')]({'plain':!![]});_0x846d4[_0x3a0a('0x3e')]=_0x459e2b;_0x846d4[_0x3a0a('0x3f')]=_0x459e2b[_0x3a0a('0x3c')];_0x846d4[_0x3a0a('0x40')]=_0x459e2b[_0x3a0a('0x38')];_0x846d4[_0x3a0a('0x3f')]=_[_0x3a0a('0x41')](_0x846d4[_0x3a0a('0x3f')],['priority'],[_0x3a0a('0x42')]);if(_0x846d4[_0x3a0a('0x3e')][_0x3a0a('0x3c')]){delete _0x846d4[_0x3a0a('0x3e')][_0x3a0a('0x3c')];}if(_0x846d4[_0x3a0a('0x3e')]['List']&&_0x846d4[_0x3a0a('0x3e')][_0x3a0a('0x38')][_0x3a0a('0x39')][_0x3a0a('0x43')]){return _0x846d4['account'][_0x3a0a('0x38')][_0x3a0a('0x39')][0x0];}var _0x3369f0=_['defaults'](_0x579744[_0x3a0a('0x23')],{'firstName':_0x579744[_0x3a0a('0x23')][_0x3a0a('0x2f')],'ListId':_0x459e2b['ListId']});_0x3369f0[_0x579744['body'][_0x3a0a('0x32')]]=_0x579744[_0x3a0a('0x23')]['from'];return db['CmContact'][_0x3a0a('0x44')](_0x3369f0,{'fields':_0x2bdcd7,'raw':!![]});}})[_0x3a0a('0x26')](function(_0x48da6b){_0x846d4[_0x3a0a('0x45')]=_0x48da6b;if(_0x48da6b){var _0xad1788={'ContactId':_0x48da6b['id'],'FaxAccountId':_0x579744['account']['id'],'fax':_0x48da6b[_0x3a0a('0x46')]};return db['FaxInteraction'][_0x3a0a('0x47')]({'where':{'ContactId':_0x48da6b['id'],'closed':![],'FaxAccountId':_0x579744[_0x3a0a('0x3e')]['id']}})[_0x3a0a('0x26')](function(_0x499b50){if(_0x499b50){return[_0x499b50,![]];}return db[_0x3a0a('0x48')][_0x3a0a('0x44')](_0xad1788)[_0x3a0a('0x26')](function(_0x3237c5){return[_0x3237c5,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x3a0a('0x49')](function(_0xf2d36d,_0x883c05){var _0x26e9dd=_0xf2d36d[_0x3a0a('0x3d')]({'plain':!![]});if(_0x883c05){if(_0x846d4[_0x3a0a('0x3e')]['autoclose']){_0x846d4[_0x3a0a('0x3f')][_0x3a0a('0x4a')]({'id':0x0,'priority':_0x846d4[_0x3a0a('0x3f')][_0x3a0a('0x43')]+0x1,'app':_0x3a0a('0x4b'),'appdata':_0x3a0a('0x4c'),'interval':'*,*,*,*'});}_0x26e9dd[_0x3a0a('0x4d')]=!![];}else{_0x26e9dd[_0x3a0a('0x4d')]=![];}_0x846d4[_0x3a0a('0x4e')]=_0x26e9dd;return db['FaxMessage']['create']({'body':_0x579744['body']['body'],'FaxAccountId':_0x579744[_0x3a0a('0x3e')]['id'],'FaxInteractionId':_0xf2d36d['id'],'direction':'in','ContactId':_0xf2d36d[_0x3a0a('0x4f')],'AttachmentId':_0x579744[_0x3a0a('0x23')][_0x3a0a('0x50')]});})[_0x3a0a('0x26')](function(_0xff1714){_0x846d4[_0x3a0a('0x15')]=_0xff1714;if(_0x846d4[_0x3a0a('0x4e')]['UserId']){return db[_0x3a0a('0x51')]['find']({'attributes':['id','name'],'where':{'id':_0x846d4['interaction'][_0x3a0a('0x52')]}})[_0x3a0a('0x26')](function(_0x14adf5){if(_0x14adf5){_0x846d4['applications']['unshift']({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x14adf5[_0x3a0a('0x53')]+','+(_0x846d4[_0x3a0a('0x3e')][_0x3a0a('0x54')]||0xa),'interval':_0x3a0a('0x55')});}return respondWithRpcPromise(_0x3a0a('0x56'),_0x3a0a('0x57'),_0x846d4);});}return respondWithRpcPromise(_0x3a0a('0x56'),_0x3a0a('0x57'),_0x846d4);})['then'](function(_0x4f3307){_0x1448db(_0x4f3307);})[_0x3a0a('0x16')](function(_0x5ead27){_0x21d374(_0x4d07c1[_0x3a0a('0x14')](0x1f4,_0x5ead27[_0x3a0a('0x15')]));});});};