1a1af5d182b64fcbb6435a255c10d0e71745285c
[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 _0xc83c=['localhost','socket.io-emitter','register','request','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','GetFaxAccount','FaxAccount','findAll','options','raw','attributes','limit','include','map','model','NotifyFaxAccount','body','Sequelize','ValidationError','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','List','CmContact','Contacts','FaxApplication','Applications','get','list','applications','orderBy','asc','length','create','contact','fax','FaxInteraction','Contact\x20not\x20found','autoclose','push','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','User','name','unshift','agent','waitForTheAssignedAgent','startRouting','Start','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults'];(function(_0x101e7b,_0x4ef05b){var _0x4995c0=function(_0x1a6488){while(--_0x1a6488){_0x101e7b['push'](_0x101e7b['shift']());}};_0x4995c0(++_0x4ef05b);}(_0xc83c,0x106));var _0xcc83=function(_0x20cf8a,_0x44cd6b){_0x20cf8a=_0x20cf8a-0x0;var _0x54e165=_0xc83c[_0x20cf8a];return _0x54e165;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xcc83('0x0'));var fs=require('fs');var Redis=require(_0xcc83('0x1'));var db=require(_0xcc83('0x2'))['db'];var utils=require('../../config/utils');var logger=require(_0xcc83('0x3'))(_0xcc83('0x4'));var config=require(_0xcc83('0x5'));var jayson=require(_0xcc83('0x6'));var client=jayson[_0xcc83('0x7')][_0xcc83('0x8')]({'port':0x232c});config[_0xcc83('0x9')]=_[_0xcc83('0xa')](config[_0xcc83('0x9')],{'host':_0xcc83('0xb'),'port':0x18eb});var socket=require(_0xcc83('0xc'))(new Redis(config[_0xcc83('0x9')]));require('./faxAccount.socket')[_0xcc83('0xd')](socket);function respondWithRpcPromise(_0x5111f5,_0xfbb2b6,_0x4982a6){return new BPromise(function(_0x51d5ed,_0x152c9f){return client[_0xcc83('0xe')](_0x5111f5,_0x4982a6)[_0xcc83('0xf')](function(_0x307e66){logger[_0xcc83('0x10')](_0xcc83('0x11'),_0xfbb2b6,_0xcc83('0x12'));logger[_0xcc83('0x13')](_0xcc83('0x14'),_0xfbb2b6,'request\x20sent',JSON[_0xcc83('0x15')](_0x307e66));if(_0x307e66[_0xcc83('0x16')]){if(_0x307e66['error']['code']===0x1f4){logger[_0xcc83('0x16')](_0xcc83('0x11'),_0xfbb2b6,_0x307e66[_0xcc83('0x16')][_0xcc83('0x17')]);return _0x152c9f(_0x307e66[_0xcc83('0x16')][_0xcc83('0x17')]);}logger[_0xcc83('0x16')](_0xcc83('0x11'),_0xfbb2b6,_0x307e66[_0xcc83('0x16')]['message']);return _0x51d5ed(_0x307e66[_0xcc83('0x16')]['message']);}else{logger[_0xcc83('0x10')](_0xcc83('0x11'),_0xfbb2b6,_0xcc83('0x12'));_0x51d5ed(_0x307e66[_0xcc83('0x18')][_0xcc83('0x17')]);}})[_0xcc83('0x19')](function(_0x23e8ec){logger[_0xcc83('0x16')](_0xcc83('0x11'),_0xfbb2b6,_0x23e8ec);_0x152c9f(_0x23e8ec);});});}exports[_0xcc83('0x1a')]=function(_0x5c52f3){var _0x41e1d2=this;return new Promise(function(_0x207abe,_0x4d0e34){return db[_0xcc83('0x1b')][_0xcc83('0x1c')]({'raw':_0x5c52f3[_0xcc83('0x1d')]?_0x5c52f3[_0xcc83('0x1d')][_0xcc83('0x1e')]===undefined?!![]:![]:!![],'where':_0x5c52f3[_0xcc83('0x1d')]?_0x5c52f3[_0xcc83('0x1d')]['where']||null:null,'attributes':_0x5c52f3[_0xcc83('0x1d')]?_0x5c52f3[_0xcc83('0x1d')][_0xcc83('0x1f')]||null:null,'limit':_0x5c52f3[_0xcc83('0x1d')]?_0x5c52f3[_0xcc83('0x1d')][_0xcc83('0x20')]||null:null,'include':_0x5c52f3[_0xcc83('0x1d')]?_0x5c52f3[_0xcc83('0x1d')][_0xcc83('0x21')]?_[_0xcc83('0x22')](_0x5c52f3[_0xcc83('0x1d')][_0xcc83('0x21')],function(_0x44f20a){return{'model':db[_0x44f20a[_0xcc83('0x23')]],'as':_0x44f20a['as'],'attributes':_0x44f20a[_0xcc83('0x1f')],'include':_0x44f20a[_0xcc83('0x21')]?_[_0xcc83('0x22')](_0x44f20a[_0xcc83('0x21')],function(_0x27d81b){return{'model':db[_0x27d81b['model']],'as':_0x27d81b['as'],'attributes':_0x27d81b[_0xcc83('0x1f')],'include':_0x27d81b[_0xcc83('0x21')]?_[_0xcc83('0x22')](_0x27d81b[_0xcc83('0x21')],function(_0x5bc1f9){return{'model':db[_0x5bc1f9[_0xcc83('0x23')]],'as':_0x5bc1f9['as'],'attributes':_0x5bc1f9[_0xcc83('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xcc83('0xf')](function(_0x3bd54e){logger[_0xcc83('0x10')](_0xcc83('0x1a'),_0x5c52f3);logger[_0xcc83('0x13')](_0xcc83('0x1a'),_0x5c52f3,JSON['stringify'](_0x3bd54e));_0x207abe(_0x3bd54e);})[_0xcc83('0x19')](function(_0xfd0883){logger[_0xcc83('0x16')](_0xcc83('0x1a'),_0xfd0883[_0xcc83('0x17')],_0x5c52f3);_0x4d0e34(_0x41e1d2['error'](0x1f4,_0xfd0883['message']));});});};exports[_0xcc83('0x24')]=function(_0x4299e4,_0x32516c,_0x1473cb){var _0x48abec=this;return new Promise(function(_0x465a5a,_0x58e663){var _0x3a6fb3={'body':_0x4299e4[_0xcc83('0x25')],'channel':'fax'};var _0x4ff0bc=[];var _0x3d557c=[];var _0x32dbf0={};return db['CmContact']['describe']()[_0xcc83('0xf')](function(_0x2a54e2){if(!_0x2a54e2){throw new db[(_0xcc83('0x26'))][(_0xcc83('0x27'))](_0xcc83('0x28'));}_0x4ff0bc=_[_0xcc83('0x29')](_[_0xcc83('0x2a')](_0x2a54e2),[_0xcc83('0x2b'),_0xcc83('0x2c')]);_0x3d557c=_['difference'](_['keys'](_0x2a54e2),[_0xcc83('0x2b'),_0xcc83('0x2c'),_0xcc83('0x2d'),_0xcc83('0x2e')]);if(_0x4299e4[_0xcc83('0x25')]['id']){delete _0x4299e4[_0xcc83('0x25')]['id'];}if(_[_0xcc83('0x2f')](_0x4299e4['body'][_0xcc83('0x30')])){throw new db[(_0xcc83('0x26'))][(_0xcc83('0x27'))](_0xcc83('0x31'));}if(_[_0xcc83('0x2f')](_0x4299e4[_0xcc83('0x25')][_0xcc83('0x25')])||_0x4299e4['body'][_0xcc83('0x25')]===''){throw new db['Sequelize'][(_0xcc83('0x27'))](_0xcc83('0x32'));}if(_[_0xcc83('0x2f')](_0x4299e4['body'][_0xcc83('0x33')])){throw new db['Sequelize']['ValidationError'](_0xcc83('0x34')+_0x3d557c);}if(!_['includes'](_0x3d557c,_0x4299e4[_0xcc83('0x25')][_0xcc83('0x33')])){throw new db[(_0xcc83('0x26'))]['ValidationError'](_0xcc83('0x35')+_0x3d557c);}_0x32dbf0[_0x4299e4[_0xcc83('0x25')][_0xcc83('0x33')]]=_0x4299e4[_0xcc83('0x25')][_0xcc83('0x30')];})[_0xcc83('0xf')](function(){return db['FaxAccount'][_0xcc83('0x36')]({'where':{'id':_0x4299e4[_0xcc83('0x37')]['id']},'include':[{'model':db[_0xcc83('0x38')],'as':_0xcc83('0x39'),'include':[{'model':db[_0xcc83('0x3a')],'as':_0xcc83('0x3b'),'where':_0x32dbf0,'limit':0x1,'order':[['updatedAt','DESC']]}]},{'model':db[_0xcc83('0x3c')],'as':_0xcc83('0x3d')}]});})[_0xcc83('0xf')](function(_0x5a406e){if(_0x5a406e&&_0x5a406e['List']){var _0x4ba807=_0x5a406e[_0xcc83('0x3e')]({'plain':!![]});_0x3a6fb3[_0xcc83('0x37')]=_0x4ba807;_0x3a6fb3['applications']=_0x4ba807['Applications'];_0x3a6fb3[_0xcc83('0x3f')]=_0x4ba807[_0xcc83('0x39')];_0x3a6fb3[_0xcc83('0x40')]=_[_0xcc83('0x41')](_0x3a6fb3[_0xcc83('0x40')],['priority'],[_0xcc83('0x42')]);if(_0x3a6fb3['account'][_0xcc83('0x3d')]){delete _0x3a6fb3['account'][_0xcc83('0x3d')];}if(_0x3a6fb3[_0xcc83('0x37')][_0xcc83('0x39')]&&_0x3a6fb3[_0xcc83('0x37')][_0xcc83('0x39')][_0xcc83('0x3b')][_0xcc83('0x43')]){return _0x3a6fb3[_0xcc83('0x37')]['List'][_0xcc83('0x3b')][0x0];}var _0x5d4d94=_[_0xcc83('0xa')](_0x4299e4[_0xcc83('0x25')],{'firstName':_0x4299e4['body']['from'],'ListId':_0x4ba807[_0xcc83('0x2e')]});_0x5d4d94[_0x4299e4[_0xcc83('0x25')]['mapKey']]=_0x4299e4[_0xcc83('0x25')][_0xcc83('0x30')];return db[_0xcc83('0x3a')][_0xcc83('0x44')](_0x5d4d94,{'fields':_0x4ff0bc,'raw':!![]});}})['then'](function(_0xd9c407){_0x3a6fb3[_0xcc83('0x45')]=_0xd9c407;if(_0xd9c407){var _0x38ceb8={'ContactId':_0xd9c407['id'],'FaxAccountId':_0x4299e4['account']['id'],'fax':_0xd9c407[_0xcc83('0x46')]};return db[_0xcc83('0x47')][_0xcc83('0x36')]({'where':{'ContactId':_0xd9c407['id'],'closed':![],'FaxAccountId':_0x4299e4[_0xcc83('0x37')]['id']}})[_0xcc83('0xf')](function(_0x341f25){if(_0x341f25){return[_0x341f25,![]];}return db[_0xcc83('0x47')]['create'](_0x38ceb8)[_0xcc83('0xf')](function(_0x354f11){return[_0x354f11,!![]];});});}else{throw new Error(_0xcc83('0x48'));}})['spread'](function(_0x42b781,_0x4cb777){var _0x1f79f3=_0x42b781[_0xcc83('0x3e')]({'plain':!![]});if(_0x4cb777){if(_0x3a6fb3[_0xcc83('0x37')][_0xcc83('0x49')]){_0x3a6fb3[_0xcc83('0x40')][_0xcc83('0x4a')]({'id':0x0,'priority':_0x3a6fb3[_0xcc83('0x40')][_0xcc83('0x43')]+0x1,'app':_0xcc83('0x4b'),'appdata':_0xcc83('0x4c'),'interval':_0xcc83('0x4d')});}_0x1f79f3[_0xcc83('0x4e')]=!![];}else{_0x1f79f3[_0xcc83('0x4e')]=![];}_0x3a6fb3[_0xcc83('0x4f')]=_0x1f79f3;return db[_0xcc83('0x50')]['create']({'body':_0x4299e4[_0xcc83('0x25')][_0xcc83('0x25')],'FaxAccountId':_0x4299e4[_0xcc83('0x37')]['id'],'FaxInteractionId':_0x42b781['id'],'direction':'in','ContactId':_0x42b781[_0xcc83('0x51')],'AttachmentId':_0x4299e4[_0xcc83('0x25')][_0xcc83('0x52')]});})['then'](function(_0x23c940){_0x3a6fb3[_0xcc83('0x17')]=_0x23c940;if(_0x3a6fb3[_0xcc83('0x4f')][_0xcc83('0x53')]){return db[_0xcc83('0x54')][_0xcc83('0x36')]({'attributes':['id',_0xcc83('0x55')],'where':{'id':_0x3a6fb3['interaction'][_0xcc83('0x53')]}})[_0xcc83('0xf')](function(_0x318a16){if(_0x318a16){_0x3a6fb3[_0xcc83('0x40')][_0xcc83('0x56')]({'id':0x0,'priority':0x0,'app':_0xcc83('0x57'),'appdata':_0x318a16[_0xcc83('0x55')]+','+(_0x3a6fb3[_0xcc83('0x37')][_0xcc83('0x58')]||0xa),'interval':_0xcc83('0x4d')});}return respondWithRpcPromise('Start',_0xcc83('0x59'),_0x3a6fb3);});}return respondWithRpcPromise(_0xcc83('0x5a'),_0xcc83('0x59'),_0x3a6fb3);})[_0xcc83('0xf')](function(_0x18a629){_0x465a5a(_0x18a629);})[_0xcc83('0x19')](function(_0x1d4fa3){_0x58e663(_0x48abec[_0xcc83('0x16')](0x1f4,_0x1d4fa3[_0xcc83('0x17')]));});});};