99126d6eb3f1a02030ad226b80fa8072458d9ab0
[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 _0x8962=['interaction','FaxMessage','AttachmentId','UserId','User','name','unshift','agent','waitForTheAssignedAgent','startRouting','Start','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','defaults','socket.io-emitter','register','request','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetFaxAccount','FaxAccount','findAll','raw','options','where','attributes','limit','include','model','map','debug','NotifyFaxAccount','describe','Sequelize','ValidationError','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','ListId','body','from','from\x20is\x20mandatory','isNil','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','find','account','CmContact','DESC','FaxApplication','Applications','List','get','applications','list','priority','Contacts','length','create','fax','FaxInteraction','Contact\x20not\x20found','push','close','unmanaged','*,*,*,*','created'];(function(_0x4fdddb,_0x4ba901){var _0xc863d=function(_0x231a16){while(--_0x231a16){_0x4fdddb['push'](_0x4fdddb['shift']());}};_0xc863d(++_0x4ba901);}(_0x8962,0xbf));var _0x2896=function(_0x1e0c09,_0xf65c8e){_0x1e0c09=_0x1e0c09-0x0;var _0x266bb2=_0x8962[_0x1e0c09];return _0x266bb2;};'use strict';var _=require('lodash');var util=require(_0x2896('0x0'));var moment=require('moment');var BPromise=require(_0x2896('0x1'));var rs=require(_0x2896('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x2896('0x3'))['db'];var utils=require(_0x2896('0x4'));var logger=require(_0x2896('0x5'))('rpc');var config=require(_0x2896('0x6'));var jayson=require(_0x2896('0x7'));var client=jayson[_0x2896('0x8')][_0x2896('0x9')]({'port':0x232c});config[_0x2896('0xa')]=_[_0x2896('0xb')](config[_0x2896('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x2896('0xc'))(new Redis(config['redis']));require('./faxAccount.socket')[_0x2896('0xd')](socket);function respondWithRpcPromise(_0x257ba9,_0x1affb4,_0x59a035){return new BPromise(function(_0x254950,_0x40cba9){return client[_0x2896('0xe')](_0x257ba9,_0x59a035)[_0x2896('0xf')](function(_0xd2eb90){logger[_0x2896('0x10')](_0x2896('0x11'),_0x1affb4,_0x2896('0x12'));logger['debug'](_0x2896('0x13'),_0x1affb4,_0x2896('0x12'),JSON[_0x2896('0x14')](_0xd2eb90));if(_0xd2eb90['error']){if(_0xd2eb90[_0x2896('0x15')][_0x2896('0x16')]===0x1f4){logger[_0x2896('0x15')](_0x2896('0x11'),_0x1affb4,_0xd2eb90[_0x2896('0x15')][_0x2896('0x17')]);return _0x40cba9(_0xd2eb90['error']['message']);}logger[_0x2896('0x15')](_0x2896('0x11'),_0x1affb4,_0xd2eb90[_0x2896('0x15')]['message']);return _0x254950(_0xd2eb90[_0x2896('0x15')][_0x2896('0x17')]);}else{logger[_0x2896('0x10')](_0x2896('0x11'),_0x1affb4,_0x2896('0x12'));_0x254950(_0xd2eb90[_0x2896('0x18')][_0x2896('0x17')]);}})[_0x2896('0x19')](function(_0x500d83){logger['error']('FaxAccount,\x20%s,\x20%s',_0x1affb4,_0x500d83);_0x40cba9(_0x500d83);});});}exports[_0x2896('0x1a')]=function(_0x3d6b1e){var _0x2f226b=this;return new Promise(function(_0x131d73,_0x29447d){return db[_0x2896('0x1b')][_0x2896('0x1c')]({'raw':_0x3d6b1e['options']?_0x3d6b1e['options'][_0x2896('0x1d')]===undefined?!![]:![]:!![],'where':_0x3d6b1e[_0x2896('0x1e')]?_0x3d6b1e[_0x2896('0x1e')][_0x2896('0x1f')]||null:null,'attributes':_0x3d6b1e[_0x2896('0x1e')]?_0x3d6b1e[_0x2896('0x1e')][_0x2896('0x20')]||null:null,'limit':_0x3d6b1e[_0x2896('0x1e')]?_0x3d6b1e[_0x2896('0x1e')][_0x2896('0x21')]||null:null,'include':_0x3d6b1e[_0x2896('0x1e')]?_0x3d6b1e['options']['include']?_['map'](_0x3d6b1e[_0x2896('0x1e')][_0x2896('0x22')],function(_0x5b68e8){return{'model':db[_0x5b68e8[_0x2896('0x23')]],'as':_0x5b68e8['as'],'attributes':_0x5b68e8[_0x2896('0x20')],'include':_0x5b68e8['include']?_[_0x2896('0x24')](_0x5b68e8['include'],function(_0x19994d){return{'model':db[_0x19994d['model']],'as':_0x19994d['as'],'attributes':_0x19994d[_0x2896('0x20')],'include':_0x19994d[_0x2896('0x22')]?_[_0x2896('0x24')](_0x19994d[_0x2896('0x22')],function(_0x19d3fd){return{'model':db[_0x19d3fd['model']],'as':_0x19d3fd['as'],'attributes':_0x19d3fd['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x1b7992){logger[_0x2896('0x10')](_0x2896('0x1a'),_0x3d6b1e);logger[_0x2896('0x25')](_0x2896('0x1a'),_0x3d6b1e,JSON['stringify'](_0x1b7992));_0x131d73(_0x1b7992);})[_0x2896('0x19')](function(_0xe71777){logger['error'](_0x2896('0x1a'),_0xe71777['message'],_0x3d6b1e);_0x29447d(_0x2f226b[_0x2896('0x15')](0x1f4,_0xe71777['message']));});});};exports[_0x2896('0x26')]=function(_0x553948,_0x1e9a3b,_0x5c9507){var _0x2b825e=this;return new Promise(function(_0xf64e76,_0x150925){var _0x1a9c61={'body':_0x553948['body'],'channel':'fax'};var _0x1f11f6=[];var _0x516f84=[];var _0x5a2ccd={};return db['CmContact'][_0x2896('0x27')]()[_0x2896('0xf')](function(_0x525b2c){if(!_0x525b2c){throw new db[(_0x2896('0x28'))][(_0x2896('0x29'))](_0x2896('0x2a'));}_0x1f11f6=_[_0x2896('0x2b')](_[_0x2896('0x2c')](_0x525b2c),[_0x2896('0x2d'),'updatedAt']);_0x516f84=_[_0x2896('0x2b')](_['keys'](_0x525b2c),['createdAt',_0x2896('0x2e'),'CompanyId',_0x2896('0x2f')]);if(_0x553948[_0x2896('0x30')]['id']){delete _0x553948[_0x2896('0x30')]['id'];}if(_['isNil'](_0x553948['body'][_0x2896('0x31')])){throw new db[(_0x2896('0x28'))][(_0x2896('0x29'))](_0x2896('0x32'));}if(_[_0x2896('0x33')](_0x553948[_0x2896('0x30')]['body'])||_0x553948['body'][_0x2896('0x30')]===''){throw new db['Sequelize'][(_0x2896('0x29'))](_0x2896('0x34'));}if(_[_0x2896('0x33')](_0x553948[_0x2896('0x30')][_0x2896('0x35')])){throw new db[(_0x2896('0x28'))][(_0x2896('0x29'))](_0x2896('0x36')+_0x516f84);}if(!_[_0x2896('0x37')](_0x516f84,_0x553948[_0x2896('0x30')][_0x2896('0x35')])){throw new db[(_0x2896('0x28'))]['ValidationError'](_0x2896('0x38')+_0x516f84);}_0x5a2ccd[_0x553948[_0x2896('0x30')][_0x2896('0x35')]]=_0x553948[_0x2896('0x30')][_0x2896('0x31')];})[_0x2896('0xf')](function(){return db['FaxAccount'][_0x2896('0x39')]({'where':{'id':_0x553948[_0x2896('0x3a')]['id']},'include':[{'model':db['CmList'],'as':'List','include':[{'model':db[_0x2896('0x3b')],'as':'Contacts','where':_0x5a2ccd,'limit':0x1,'order':[[_0x2896('0x2e'),_0x2896('0x3c')]]}]},{'model':db[_0x2896('0x3d')],'as':_0x2896('0x3e')}]});})[_0x2896('0xf')](function(_0x2e58f9){if(_0x2e58f9&&_0x2e58f9[_0x2896('0x3f')]){var _0x70b88e=_0x2e58f9[_0x2896('0x40')]({'plain':!![]});_0x1a9c61['account']=_0x70b88e;_0x1a9c61[_0x2896('0x41')]=_0x70b88e[_0x2896('0x3e')];_0x1a9c61[_0x2896('0x42')]=_0x70b88e[_0x2896('0x3f')];_0x1a9c61[_0x2896('0x41')]=_['orderBy'](_0x1a9c61[_0x2896('0x41')],[_0x2896('0x43')],['asc']);if(_0x1a9c61[_0x2896('0x3a')][_0x2896('0x3e')]){delete _0x1a9c61[_0x2896('0x3a')][_0x2896('0x3e')];}if(_0x1a9c61[_0x2896('0x3a')][_0x2896('0x3f')]&&_0x1a9c61['account'][_0x2896('0x3f')][_0x2896('0x44')][_0x2896('0x45')]){return _0x1a9c61['account'][_0x2896('0x3f')][_0x2896('0x44')][0x0];}var _0x4c5a99=_[_0x2896('0xb')](_0x553948[_0x2896('0x30')],{'firstName':_0x553948['body'][_0x2896('0x31')],'ListId':_0x70b88e[_0x2896('0x2f')]});_0x4c5a99[_0x553948[_0x2896('0x30')][_0x2896('0x35')]]=_0x553948['body'][_0x2896('0x31')];return db['CmContact'][_0x2896('0x46')](_0x4c5a99,{'fields':_0x1f11f6,'raw':!![]});}})[_0x2896('0xf')](function(_0x180f69){_0x1a9c61['contact']=_0x180f69;if(_0x180f69){var _0x1d7b59={'ContactId':_0x180f69['id'],'FaxAccountId':_0x553948['account']['id'],'fax':_0x180f69[_0x2896('0x47')]};return db['FaxInteraction'][_0x2896('0x39')]({'where':{'ContactId':_0x180f69['id'],'closed':![],'FaxAccountId':_0x553948[_0x2896('0x3a')]['id']}})['then'](function(_0x2815df){if(_0x2815df){return[_0x2815df,![]];}return db[_0x2896('0x48')]['create'](_0x1d7b59)[_0x2896('0xf')](function(_0x59d294){return[_0x59d294,!![]];});});}else{throw new Error(_0x2896('0x49'));}})['spread'](function(_0x93c56a,_0x156820){var _0x4d0025=_0x93c56a[_0x2896('0x40')]({'plain':!![]});if(_0x156820){if(_0x1a9c61[_0x2896('0x3a')]['autoclose']){_0x1a9c61[_0x2896('0x41')][_0x2896('0x4a')]({'id':0x0,'priority':_0x1a9c61[_0x2896('0x41')]['length']+0x1,'app':_0x2896('0x4b'),'appdata':_0x2896('0x4c'),'interval':_0x2896('0x4d')});}_0x4d0025[_0x2896('0x4e')]=!![];}else{_0x4d0025['created']=![];}_0x1a9c61[_0x2896('0x4f')]=_0x4d0025;return db[_0x2896('0x50')][_0x2896('0x46')]({'body':_0x553948['body'][_0x2896('0x30')],'FaxAccountId':_0x553948[_0x2896('0x3a')]['id'],'FaxInteractionId':_0x93c56a['id'],'direction':'in','ContactId':_0x93c56a['ContactId'],'AttachmentId':_0x553948[_0x2896('0x30')][_0x2896('0x51')]});})[_0x2896('0xf')](function(_0x3b97d8){_0x1a9c61[_0x2896('0x17')]=_0x3b97d8;if(_0x1a9c61[_0x2896('0x4f')][_0x2896('0x52')]){return db[_0x2896('0x53')]['find']({'attributes':['id',_0x2896('0x54')],'where':{'id':_0x1a9c61[_0x2896('0x4f')][_0x2896('0x52')]}})[_0x2896('0xf')](function(_0x5e773a){if(_0x5e773a){_0x1a9c61[_0x2896('0x41')][_0x2896('0x55')]({'id':0x0,'priority':0x0,'app':_0x2896('0x56'),'appdata':_0x5e773a[_0x2896('0x54')]+','+(_0x1a9c61[_0x2896('0x3a')][_0x2896('0x57')]||0xa),'interval':_0x2896('0x4d')});}return respondWithRpcPromise('Start',_0x2896('0x58'),_0x1a9c61);});}return respondWithRpcPromise(_0x2896('0x59'),_0x2896('0x58'),_0x1a9c61);})[_0x2896('0xf')](function(_0x930bcc){_0xf64e76(_0x930bcc);})[_0x2896('0x19')](function(_0x52a4b5){_0x150925(_0x2b825e[_0x2896('0x15')](0x1f4,_0x52a4b5[_0x2896('0x17')]));});});};