e1129d9e996395e5128f36b34f26b0ead99f0fbc
[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 _0x18c7=['CompanyId','isNil','ValidationError','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','from','find','account','CmList','CmContact','Contacts','updatedAt','FaxApplication','Applications','List','get','applications','list','orderBy','priority','asc','length','create','contact','FaxInteraction','Contact\x20not\x20found','autoclose','close','*,*,*,*','interaction','ContactId','AttachmentId','UserId','User','name','unshift','agent','waitForTheAssignedAgent','startRouting','Start','lodash','moment','bluebird','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','then','request\x20sent','stringify','error','code','FaxAccount,\x20%s,\x20%s','message','info','result','catch','FaxAccount','findAll','options','raw','where','limit','include','model','attributes','map','GetFaxAccount','NotifyFaxAccount','body','fax','describe','Sequelize','no\x20available\x20attributes','difference','keys','createdAt'];(function(_0x1d9aa0,_0x272488){var _0x226868=function(_0x17127c){while(--_0x17127c){_0x1d9aa0['push'](_0x1d9aa0['shift']());}};_0x226868(++_0x272488);}(_0x18c7,0x83));var _0x718c=function(_0x309279,_0x134a93){_0x309279=_0x309279-0x0;var _0x2ec8e8=_0x18c7[_0x309279];return _0x2ec8e8;};'use strict';var _=require(_0x718c('0x0'));var util=require('util');var moment=require(_0x718c('0x1'));var BPromise=require(_0x718c('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x718c('0x3'))['db'];var utils=require(_0x718c('0x4'));var logger=require('../../config/logger')(_0x718c('0x5'));var config=require('../../config/environment');var jayson=require(_0x718c('0x6'));var client=jayson[_0x718c('0x7')][_0x718c('0x8')]({'port':0x232c});config[_0x718c('0x9')]=_[_0x718c('0xa')](config[_0x718c('0x9')],{'host':_0x718c('0xb'),'port':0x18eb});var socket=require(_0x718c('0xc'))(new Redis(config[_0x718c('0x9')]));require(_0x718c('0xd'))[_0x718c('0xe')](socket);function respondWithRpcPromise(_0x5920ed,_0x5a0e86,_0xc09454){return new BPromise(function(_0x3f9f77,_0x365c3e){return client['request'](_0x5920ed,_0xc09454)[_0x718c('0xf')](function(_0xc3338c){logger['info']('FaxAccount,\x20%s,\x20%s',_0x5a0e86,_0x718c('0x10'));logger['debug']('FaxAccount,\x20%s,\x20%s,\x20%s',_0x5a0e86,_0x718c('0x10'),JSON[_0x718c('0x11')](_0xc3338c));if(_0xc3338c[_0x718c('0x12')]){if(_0xc3338c[_0x718c('0x12')][_0x718c('0x13')]===0x1f4){logger[_0x718c('0x12')](_0x718c('0x14'),_0x5a0e86,_0xc3338c['error'][_0x718c('0x15')]);return _0x365c3e(_0xc3338c[_0x718c('0x12')][_0x718c('0x15')]);}logger[_0x718c('0x12')](_0x718c('0x14'),_0x5a0e86,_0xc3338c[_0x718c('0x12')][_0x718c('0x15')]);return _0x3f9f77(_0xc3338c[_0x718c('0x12')][_0x718c('0x15')]);}else{logger[_0x718c('0x16')](_0x718c('0x14'),_0x5a0e86,'request\x20sent');_0x3f9f77(_0xc3338c[_0x718c('0x17')][_0x718c('0x15')]);}})[_0x718c('0x18')](function(_0x21769d){logger[_0x718c('0x12')](_0x718c('0x14'),_0x5a0e86,_0x21769d);_0x365c3e(_0x21769d);});});}exports['GetFaxAccount']=function(_0x5efb72){var _0x3f8fff=this;return new Promise(function(_0x399d5f,_0x1a67ac){return db[_0x718c('0x19')][_0x718c('0x1a')]({'raw':_0x5efb72[_0x718c('0x1b')]?_0x5efb72['options'][_0x718c('0x1c')]===undefined?!![]:![]:!![],'where':_0x5efb72['options']?_0x5efb72[_0x718c('0x1b')][_0x718c('0x1d')]||null:null,'attributes':_0x5efb72[_0x718c('0x1b')]?_0x5efb72[_0x718c('0x1b')]['attributes']||null:null,'limit':_0x5efb72[_0x718c('0x1b')]?_0x5efb72[_0x718c('0x1b')][_0x718c('0x1e')]||null:null,'include':_0x5efb72[_0x718c('0x1b')]?_0x5efb72[_0x718c('0x1b')][_0x718c('0x1f')]?_['map'](_0x5efb72['options']['include'],function(_0x1b8289){return{'model':db[_0x1b8289[_0x718c('0x20')]],'as':_0x1b8289['as'],'attributes':_0x1b8289[_0x718c('0x21')],'include':_0x1b8289[_0x718c('0x1f')]?_['map'](_0x1b8289[_0x718c('0x1f')],function(_0x56cd70){return{'model':db[_0x56cd70['model']],'as':_0x56cd70['as'],'attributes':_0x56cd70[_0x718c('0x21')],'include':_0x56cd70[_0x718c('0x1f')]?_[_0x718c('0x22')](_0x56cd70['include'],function(_0x4f5c5d){return{'model':db[_0x4f5c5d[_0x718c('0x20')]],'as':_0x4f5c5d['as'],'attributes':_0x4f5c5d[_0x718c('0x21')]};}):[]};}):[]};}):[]:[]})[_0x718c('0xf')](function(_0xfb0f12){logger[_0x718c('0x16')](_0x718c('0x23'),_0x5efb72);logger['debug']('GetFaxAccount',_0x5efb72,JSON[_0x718c('0x11')](_0xfb0f12));_0x399d5f(_0xfb0f12);})[_0x718c('0x18')](function(_0x363c5d){logger[_0x718c('0x12')](_0x718c('0x23'),_0x363c5d[_0x718c('0x15')],_0x5efb72);_0x1a67ac(_0x3f8fff[_0x718c('0x12')](0x1f4,_0x363c5d[_0x718c('0x15')]));});});};exports[_0x718c('0x24')]=function(_0x34af4b,_0x28ee38,_0x3ee328){var _0x592389=this;return new Promise(function(_0x1f6b9e,_0x18d56b){var _0x450276={'body':_0x34af4b[_0x718c('0x25')],'channel':_0x718c('0x26')};var _0x1197c0=[];var _0x359c9b=[];var _0x344dff={};return db['CmContact'][_0x718c('0x27')]()[_0x718c('0xf')](function(_0x24338b){if(!_0x24338b){throw new db[(_0x718c('0x28'))]['ValidationError'](_0x718c('0x29'));}_0x1197c0=_[_0x718c('0x2a')](_[_0x718c('0x2b')](_0x24338b),[_0x718c('0x2c'),'updatedAt']);_0x359c9b=_[_0x718c('0x2a')](_['keys'](_0x24338b),['createdAt','updatedAt',_0x718c('0x2d'),'ListId']);if(_0x34af4b[_0x718c('0x25')]['id']){delete _0x34af4b[_0x718c('0x25')]['id'];}if(_[_0x718c('0x2e')](_0x34af4b['body']['from'])){throw new db['Sequelize'][(_0x718c('0x2f'))](_0x718c('0x30'));}if(_[_0x718c('0x2e')](_0x34af4b[_0x718c('0x25')][_0x718c('0x25')])||_0x34af4b['body']['body']===''){throw new db[(_0x718c('0x28'))]['ValidationError'](_0x718c('0x31'));}if(_['isNil'](_0x34af4b[_0x718c('0x25')][_0x718c('0x32')])){throw new db[(_0x718c('0x28'))]['ValidationError'](_0x718c('0x33')+_0x359c9b);}if(!_['includes'](_0x359c9b,_0x34af4b[_0x718c('0x25')][_0x718c('0x32')])){throw new db[(_0x718c('0x28'))]['ValidationError'](_0x718c('0x34')+_0x359c9b);}_0x344dff[_0x34af4b[_0x718c('0x25')][_0x718c('0x32')]]=_0x34af4b[_0x718c('0x25')][_0x718c('0x35')];})[_0x718c('0xf')](function(){return db[_0x718c('0x19')][_0x718c('0x36')]({'where':{'id':_0x34af4b[_0x718c('0x37')]['id']},'include':[{'model':db[_0x718c('0x38')],'as':'List','include':[{'model':db[_0x718c('0x39')],'as':_0x718c('0x3a'),'where':_0x344dff,'limit':0x1,'order':[[_0x718c('0x3b'),'DESC']]}]},{'model':db[_0x718c('0x3c')],'as':_0x718c('0x3d')}]});})['then'](function(_0x4b2fab){if(_0x4b2fab&&_0x4b2fab[_0x718c('0x3e')]){var _0x48ca58=_0x4b2fab[_0x718c('0x3f')]({'plain':!![]});_0x450276[_0x718c('0x37')]=_0x48ca58;_0x450276[_0x718c('0x40')]=_0x48ca58[_0x718c('0x3d')];_0x450276[_0x718c('0x41')]=_0x48ca58[_0x718c('0x3e')];_0x450276[_0x718c('0x40')]=_[_0x718c('0x42')](_0x450276[_0x718c('0x40')],[_0x718c('0x43')],[_0x718c('0x44')]);if(_0x450276['account'][_0x718c('0x3d')]){delete _0x450276[_0x718c('0x37')][_0x718c('0x3d')];}if(_0x450276[_0x718c('0x37')][_0x718c('0x3e')]&&_0x450276[_0x718c('0x37')][_0x718c('0x3e')][_0x718c('0x3a')][_0x718c('0x45')]){return _0x450276['account'][_0x718c('0x3e')][_0x718c('0x3a')][0x0];}var _0x1cefc5=_['defaults'](_0x34af4b[_0x718c('0x25')],{'firstName':_0x34af4b[_0x718c('0x25')]['from'],'ListId':_0x48ca58['ListId']});_0x1cefc5[_0x34af4b['body'][_0x718c('0x32')]]=_0x34af4b[_0x718c('0x25')][_0x718c('0x35')];return db['CmContact'][_0x718c('0x46')](_0x1cefc5,{'fields':_0x1197c0,'raw':!![]});}})[_0x718c('0xf')](function(_0x2e63e4){_0x450276[_0x718c('0x47')]=_0x2e63e4;if(_0x2e63e4){var _0x12ac3c={'ContactId':_0x2e63e4['id'],'FaxAccountId':_0x34af4b[_0x718c('0x37')]['id'],'fax':_0x2e63e4[_0x718c('0x26')]};return db[_0x718c('0x48')]['find']({'where':{'ContactId':_0x2e63e4['id'],'closed':![],'FaxAccountId':_0x34af4b[_0x718c('0x37')]['id']}})[_0x718c('0xf')](function(_0x4c7c54){if(_0x4c7c54){return[_0x4c7c54,![]];}return db['FaxInteraction'][_0x718c('0x46')](_0x12ac3c)[_0x718c('0xf')](function(_0x7d3ac2){return[_0x7d3ac2,!![]];});});}else{throw new Error(_0x718c('0x49'));}})['spread'](function(_0x3bdfa7,_0x3af7d2){var _0x46dfea=_0x3bdfa7['get']({'plain':!![]});if(_0x3af7d2){if(_0x450276[_0x718c('0x37')][_0x718c('0x4a')]){_0x450276[_0x718c('0x40')]['push']({'id':0x0,'priority':_0x450276[_0x718c('0x40')][_0x718c('0x45')]+0x1,'app':_0x718c('0x4b'),'appdata':'unmanaged','interval':_0x718c('0x4c')});}_0x46dfea['created']=!![];}else{_0x46dfea['created']=![];}_0x450276[_0x718c('0x4d')]=_0x46dfea;return db['FaxMessage'][_0x718c('0x46')]({'body':_0x34af4b[_0x718c('0x25')]['body'],'FaxAccountId':_0x34af4b[_0x718c('0x37')]['id'],'FaxInteractionId':_0x3bdfa7['id'],'direction':'in','ContactId':_0x3bdfa7[_0x718c('0x4e')],'AttachmentId':_0x34af4b['body'][_0x718c('0x4f')]});})[_0x718c('0xf')](function(_0x1b4951){_0x450276[_0x718c('0x15')]=_0x1b4951;if(_0x450276['interaction'][_0x718c('0x50')]){return db[_0x718c('0x51')]['find']({'attributes':['id',_0x718c('0x52')],'where':{'id':_0x450276[_0x718c('0x4d')][_0x718c('0x50')]}})['then'](function(_0x549b98){if(_0x549b98){_0x450276[_0x718c('0x40')][_0x718c('0x53')]({'id':0x0,'priority':0x0,'app':_0x718c('0x54'),'appdata':_0x549b98[_0x718c('0x52')]+','+(_0x450276['account'][_0x718c('0x55')]||0xa),'interval':_0x718c('0x4c')});}return respondWithRpcPromise('Start',_0x718c('0x56'),_0x450276);});}return respondWithRpcPromise(_0x718c('0x57'),_0x718c('0x56'),_0x450276);})['then'](function(_0x3692dc){_0x1f6b9e(_0x3692dc);})[_0x718c('0x18')](function(_0x12d25a){_0x18d56b(_0x592389['error'](0x1f4,_0x12d25a[_0x718c('0x15')]));});});};