Built motion from commit (unavailable).|2.5.31
[motion2.git] / server / api / mailAccount / mailAccount.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 _0x2b8a=['DESC','Applications','List','get','omit','applications','orderBy','priority','asc','autoclose','push','length','close','*,*,*,*','Contacts','create','messageId','generate','attach','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','inReplyTo','Contact\x20not\x20found','spread','update','format','interaction','created','contact','subject','originTo','originCc','ChatWebsiteId','originChannel','Email','ChatOfflineMessageId','UserId','User','name','agent','waitForTheAssignedAgent','startRouting','Start','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','http','redis','defaults','./mailAccount.socket','register','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','MailAccount','options','include','map','model','attributes','GetMailAccount','ShowMailAccount','find','raw','where','NotifyMailAccount','body','mail','difference','keys','rawAttributes','createdAt','updatedAt','CompanyId','ListId','isNil','from','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','account','CmList','CmContact'];(function(_0x23fbf0,_0x505f60){var _0x443648=function(_0x310c10){while(--_0x310c10){_0x23fbf0['push'](_0x23fbf0['shift']());}};_0x443648(++_0x505f60);}(_0x2b8a,0xf9));var _0xa2b8=function(_0x14b735,_0x40d235){_0x14b735=_0x14b735-0x0;var _0x1f95d2=_0x2b8a[_0x14b735];return _0x1f95d2;};'use strict';var _=require(_0xa2b8('0x0'));var util=require(_0xa2b8('0x1'));var moment=require('moment');var BPromise=require(_0xa2b8('0x2'));var rs=require(_0xa2b8('0x3'));var fs=require('fs');var Redis=require(_0xa2b8('0x4'));var db=require(_0xa2b8('0x5'))['db'];var utils=require(_0xa2b8('0x6'));var logger=require(_0xa2b8('0x7'))(_0xa2b8('0x8'));var config=require('../../config/environment');var jayson=require(_0xa2b8('0x9'));var client=jayson['client'][_0xa2b8('0xa')]({'port':0x232c});config[_0xa2b8('0xb')]=_[_0xa2b8('0xc')](config[_0xa2b8('0xb')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xa2b8('0xb')]));require(_0xa2b8('0xd'))[_0xa2b8('0xe')](socket);function respondWithRpcPromise(_0x13743e,_0x18b00b,_0x10be04){return new BPromise(function(_0x3f6ea9,_0x287114){return client[_0xa2b8('0xf')](_0x13743e,_0x10be04)[_0xa2b8('0x10')](function(_0x5a38b4){logger[_0xa2b8('0x11')](_0xa2b8('0x12'),_0x18b00b,_0xa2b8('0x13'));logger[_0xa2b8('0x14')]('MailAccount,\x20%s,\x20%s,\x20%s',_0x18b00b,_0xa2b8('0x13'),JSON[_0xa2b8('0x15')](_0x5a38b4));if(_0x5a38b4['error']){if(_0x5a38b4[_0xa2b8('0x16')][_0xa2b8('0x17')]===0x1f4){logger[_0xa2b8('0x16')](_0xa2b8('0x12'),_0x18b00b,_0x5a38b4['error'][_0xa2b8('0x18')]);return _0x287114(_0x5a38b4[_0xa2b8('0x16')]['message']);}logger[_0xa2b8('0x16')]('MailAccount,\x20%s,\x20%s',_0x18b00b,_0x5a38b4['error'][_0xa2b8('0x18')]);return _0x3f6ea9(_0x5a38b4[_0xa2b8('0x16')][_0xa2b8('0x18')]);}else{logger[_0xa2b8('0x11')]('MailAccount,\x20%s,\x20%s',_0x18b00b,_0xa2b8('0x13'));_0x3f6ea9(_0x5a38b4[_0xa2b8('0x19')][_0xa2b8('0x18')]);}})[_0xa2b8('0x1a')](function(_0x4a6f6b){logger['error'](_0xa2b8('0x12'),_0x18b00b,_0x4a6f6b);_0x287114(_0x4a6f6b);});});}exports['GetMailAccount']=function(_0x2b74fb){var _0x3844c1=this;return new Promise(function(_0x11d1b9,_0x70ba2e){return db[_0xa2b8('0x1b')]['findAll']({'raw':_0x2b74fb['options']?_0x2b74fb[_0xa2b8('0x1c')]['raw']===undefined?!![]:![]:!![],'where':_0x2b74fb['options']?_0x2b74fb[_0xa2b8('0x1c')]['where']||null:null,'attributes':_0x2b74fb[_0xa2b8('0x1c')]?_0x2b74fb[_0xa2b8('0x1c')]['attributes']||null:null,'limit':_0x2b74fb[_0xa2b8('0x1c')]?_0x2b74fb[_0xa2b8('0x1c')]['limit']||null:null,'include':_0x2b74fb[_0xa2b8('0x1c')]?_0x2b74fb['options'][_0xa2b8('0x1d')]?_[_0xa2b8('0x1e')](_0x2b74fb[_0xa2b8('0x1c')][_0xa2b8('0x1d')],function(_0x5e9645){return{'model':db[_0x5e9645[_0xa2b8('0x1f')]],'as':_0x5e9645['as'],'attributes':_0x5e9645['attributes'],'include':_0x5e9645[_0xa2b8('0x1d')]?_[_0xa2b8('0x1e')](_0x5e9645[_0xa2b8('0x1d')],function(_0x534b37){return{'model':db[_0x534b37[_0xa2b8('0x1f')]],'as':_0x534b37['as'],'attributes':_0x534b37[_0xa2b8('0x20')],'include':_0x534b37[_0xa2b8('0x1d')]?_[_0xa2b8('0x1e')](_0x534b37[_0xa2b8('0x1d')],function(_0x679d5c){return{'model':db[_0x679d5c['model']],'as':_0x679d5c['as'],'attributes':_0x679d5c[_0xa2b8('0x20')]};}):[]};}):[]};}):[]:[]})[_0xa2b8('0x10')](function(_0x23db3f){logger[_0xa2b8('0x11')](_0xa2b8('0x21'),_0x2b74fb);logger[_0xa2b8('0x14')](_0xa2b8('0x21'),_0x2b74fb,JSON[_0xa2b8('0x15')](_0x23db3f));_0x11d1b9(_0x23db3f);})[_0xa2b8('0x1a')](function(_0x568fc5){logger[_0xa2b8('0x16')]('GetMailAccount',_0x568fc5[_0xa2b8('0x18')],_0x2b74fb);_0x70ba2e(_0x3844c1['error'](0x1f4,_0x568fc5[_0xa2b8('0x18')]));});});};exports[_0xa2b8('0x22')]=function(_0x3ae2bb){var _0x17a583=this;return new Promise(function(_0x35394d,_0x400515){return db[_0xa2b8('0x1b')][_0xa2b8('0x23')]({'raw':_0x3ae2bb[_0xa2b8('0x1c')]?_0x3ae2bb[_0xa2b8('0x1c')][_0xa2b8('0x24')]===undefined?!![]:![]:!![],'where':_0x3ae2bb[_0xa2b8('0x1c')]?_0x3ae2bb[_0xa2b8('0x1c')][_0xa2b8('0x25')]||null:null,'attributes':_0x3ae2bb['options']?_0x3ae2bb[_0xa2b8('0x1c')]['attributes']||null:null,'include':_0x3ae2bb[_0xa2b8('0x1c')]?_0x3ae2bb[_0xa2b8('0x1c')][_0xa2b8('0x1d')]?_['map'](_0x3ae2bb[_0xa2b8('0x1c')][_0xa2b8('0x1d')],function(_0x324926){return{'model':db[_0x324926['model']],'as':_0x324926['as'],'attributes':_0x324926[_0xa2b8('0x20')],'include':_0x324926['include']?_[_0xa2b8('0x1e')](_0x324926['include'],function(_0x1e5272){return{'model':db[_0x1e5272['model']],'as':_0x1e5272['as'],'attributes':_0x1e5272[_0xa2b8('0x20')],'include':_0x1e5272[_0xa2b8('0x1d')]?_[_0xa2b8('0x1e')](_0x1e5272[_0xa2b8('0x1d')],function(_0x4ac437){return{'model':db[_0x4ac437[_0xa2b8('0x1f')]],'as':_0x4ac437['as'],'attributes':_0x4ac437[_0xa2b8('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2b3d27){logger[_0xa2b8('0x11')](_0xa2b8('0x22'),_0x3ae2bb);logger[_0xa2b8('0x14')]('ShowMailAccount',_0x3ae2bb,JSON['stringify'](_0x2b3d27));_0x35394d(_0x2b3d27);})[_0xa2b8('0x1a')](function(_0x5f1eb3){logger['error'](_0xa2b8('0x22'),_0x5f1eb3['message'],_0x3ae2bb);_0x400515(_0x17a583[_0xa2b8('0x16')](0x1f4,_0x5f1eb3[_0xa2b8('0x18')]));});});};exports[_0xa2b8('0x26')]=function(_0xa67e37){var _0x30a68f=this;return new Promise(function(_0x7d154d,_0x1b6b73){var _0x3d19a0={'body':_0xa67e37[_0xa2b8('0x27')],'channel':_0xa2b8('0x28')};var _0x381913=_[_0xa2b8('0x29')](_[_0xa2b8('0x2a')](db['CmContact'][_0xa2b8('0x2b')]),[_0xa2b8('0x2c'),_0xa2b8('0x2d'),_0xa2b8('0x2e'),_0xa2b8('0x2f')]);var _0x5350a7=![];if(_0xa67e37[_0xa2b8('0x27')]['id']){delete _0xa67e37[_0xa2b8('0x27')]['id'];}if(_[_0xa2b8('0x30')](_0xa67e37['body'][_0xa2b8('0x31')])){return _0x1b6b73(_0x30a68f[_0xa2b8('0x16')](0x1f4,'from\x20is\x20mandatory'));}if(_[_0xa2b8('0x30')](_0xa67e37[_0xa2b8('0x27')][_0xa2b8('0x27')])||_0xa67e37['body'][_0xa2b8('0x27')]===''){return _0x1b6b73(_0x30a68f[_0xa2b8('0x16')](0x1f4,_0xa2b8('0x32')));}if(_['isNil'](_0xa67e37[_0xa2b8('0x27')]['mapKey'])){return _0x1b6b73(_0x30a68f[_0xa2b8('0x16')](0x1f4,_0xa2b8('0x33')+_0x381913));}if(!_[_0xa2b8('0x34')](_0x381913,_0xa67e37[_0xa2b8('0x27')][_0xa2b8('0x35')])){return _0x1b6b73(_0x30a68f[_0xa2b8('0x16')](0x1f4,'mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x381913));}var _0x2ce9f1={};_0x2ce9f1[_0xa67e37[_0xa2b8('0x27')]['mapKey']]=_0xa67e37[_0xa2b8('0x27')]['from'];return db['MailAccount']['find']({'where':{'id':_0xa67e37[_0xa2b8('0x36')]['id']},'include':[{'model':db[_0xa2b8('0x37')],'as':'List','include':[{'model':db[_0xa2b8('0x38')],'as':'Contacts','where':_0x2ce9f1,'limit':0x1,'order':[[_0xa2b8('0x2d'),_0xa2b8('0x39')]]}]},{'model':db['MailApplication'],'as':_0xa2b8('0x3a')},{'model':db['MailServerOut'],'as':'Smtp'}]})[_0xa2b8('0x10')](function(_0x47244c){if(_0x47244c&&_0x47244c[_0xa2b8('0x3b')]){var _0x3f96cb=_0x47244c[_0xa2b8('0x3c')]({'plain':!![]});_0x3d19a0[_0xa2b8('0x36')]=_[_0xa2b8('0x3d')](_0x3f96cb,[_0xa2b8('0x3a'),_0xa2b8('0x3b')]);_0x3d19a0['applications']=_0x3f96cb[_0xa2b8('0x3a')];_0x3d19a0['list']=_0x3f96cb['List'];_0x3d19a0[_0xa2b8('0x3e')]=_[_0xa2b8('0x3f')](_0x3d19a0[_0xa2b8('0x3e')],[_0xa2b8('0x40')],[_0xa2b8('0x41')]);if(_0x3d19a0['account']&&_0x3d19a0[_0xa2b8('0x36')][_0xa2b8('0x42')]){_0x3d19a0[_0xa2b8('0x3e')][_0xa2b8('0x43')]({'id':0x0,'priority':_0x3d19a0[_0xa2b8('0x3e')][_0xa2b8('0x44')]+0x1,'app':_0xa2b8('0x45'),'appdata':_0xa2b8('0x42'),'interval':_0xa2b8('0x46')});}if(_0x3d19a0[_0xa2b8('0x36')][_0xa2b8('0x3a')]){delete _0x3d19a0[_0xa2b8('0x36')][_0xa2b8('0x3a')];}if(_0x3d19a0[_0xa2b8('0x36')][_0xa2b8('0x3b')]){delete _0x3d19a0[_0xa2b8('0x36')][_0xa2b8('0x3b')];}if(_0x3f96cb['List']['Contacts'][_0xa2b8('0x44')]){return _0x3f96cb['List'][_0xa2b8('0x47')][0x0];}var _0x586d3f=_[_0xa2b8('0xc')](_0xa67e37[_0xa2b8('0x27')],{'firstName':_0xa67e37[_0xa2b8('0x27')]['from'],'ListId':_0x3f96cb[_0xa2b8('0x2f')]});_0x586d3f[_0xa67e37[_0xa2b8('0x27')][_0xa2b8('0x35')]]=_0xa67e37[_0xa2b8('0x27')][_0xa2b8('0x31')];return db[_0xa2b8('0x38')][_0xa2b8('0x48')](_0x586d3f);}else{throw new Error('List\x20not\x20found');}})[_0xa2b8('0x10')](function(_0x763631){_0x3d19a0['contact']=_0x763631;if(_0x763631){if(!_0xa67e37[_0xa2b8('0x27')]['message'][_0xa2b8('0x49')]){_0xa67e37[_0xa2b8('0x27')][_0xa2b8('0x18')][_0xa2b8('0x49')]=rs[_0xa2b8('0x4a')]()+'\x20'+_0xa67e37['body'][_0xa2b8('0x18')][_0xa2b8('0x31')];}var _0x500342={'ContactId':_0x763631['id'],'MailAccountId':_0xa67e37[_0xa2b8('0x36')]['id'],'inReplyTo':_0xa67e37[_0xa2b8('0x27')][_0xa2b8('0x18')][_0xa2b8('0x49')],'to':_0xa67e37[_0xa2b8('0x27')]['message'][_0xa2b8('0x31')],'cc':_0xa67e37['body'][_0xa2b8('0x18')]['cc'],'subject':_0xa67e37[_0xa2b8('0x27')][_0xa2b8('0x18')]['subject'],'attach':_0xa67e37[_0xa2b8('0x27')][_0xa2b8('0x18')][_0xa2b8('0x4b')],'lastMsgAt':moment()['format'](_0xa2b8('0x4c')),'lastMsgDirection':'in'};return db[_0xa2b8('0x4d')][_0xa2b8('0x23')]({'where':{'closed':![],'MailAccountId':_0xa67e37[_0xa2b8('0x36')]['id']},'include':[{'model':db[_0xa2b8('0x4e')],'as':_0xa2b8('0x4f'),'attributes':['messageId'],'where':{'messageId':_0xa67e37['body']['message'][_0xa2b8('0x50')]}}]})['then'](function(_0x505de3){if(_0x505de3){return[_0x505de3,![]];}return db[_0xa2b8('0x4d')][_0xa2b8('0x48')](_0x500342)[_0xa2b8('0x10')](function(_0x3919db){return[_0x3919db,!![]];});});}else{throw new Error(_0xa2b8('0x51'));}})[_0xa2b8('0x52')](function(_0x34ae77,_0x2660c1){if(_0x34ae77){_0x5350a7=_0x2660c1;if(!_0x2660c1){return _0x34ae77[_0xa2b8('0x53')]({'inReplyTo':_0xa67e37[_0xa2b8('0x27')][_0xa2b8('0x18')]['messageId'],'to':_0xa67e37[_0xa2b8('0x27')][_0xa2b8('0x18')][_0xa2b8('0x31')],'cc':_0xa67e37[_0xa2b8('0x27')]['message']['cc'],'subject':_0xa67e37[_0xa2b8('0x27')][_0xa2b8('0x18')]['subject'],'attach':_0x34ae77[_0xa2b8('0x4b')]?_0x34ae77[_0xa2b8('0x4b')]:_0xa67e37['body'][_0xa2b8('0x18')][_0xa2b8('0x4b')],'substatus':null,'substatusAt':moment()[_0xa2b8('0x54')](_0xa2b8('0x4c')),'lastMsgAt':moment()[_0xa2b8('0x54')](_0xa2b8('0x4c')),'lastMsgDirection':'in'});}else{return _0x34ae77;}}})['then'](function(_0x40c0e5){_0x3d19a0['interaction']=_0x40c0e5[_0xa2b8('0x3c')]({'plain':!![]});_0x3d19a0[_0xa2b8('0x55')][_0xa2b8('0x56')]=_0x5350a7;return db[_0xa2b8('0x4e')]['create']({'body':_0xa67e37[_0xa2b8('0x27')][_0xa2b8('0x27')],'MailAccountId':_0xa67e37[_0xa2b8('0x36')]['id'],'MailInteractionId':_0x40c0e5['id'],'direction':'in','ContactId':_0x3d19a0[_0xa2b8('0x57')]['id'],'messageId':_0xa67e37['body'][_0xa2b8('0x18')][_0xa2b8('0x49')],'from':_0xa67e37[_0xa2b8('0x27')]['message']['from'],'to':_0xa67e37['body'][_0xa2b8('0x18')]['to'],'cc':_0xa67e37[_0xa2b8('0x27')][_0xa2b8('0x18')]['cc'],'subject':_0xa67e37[_0xa2b8('0x27')][_0xa2b8('0x18')][_0xa2b8('0x58')],'attach':_0xa67e37[_0xa2b8('0x27')]['message']['attach'],'Attachments':_0xa67e37[_0xa2b8('0x27')]['message']['attachments'],'originTo':_0xa67e37[_0xa2b8('0x27')][_0xa2b8('0x18')][_0xa2b8('0x59')],'originCc':_0xa67e37[_0xa2b8('0x27')]['message'][_0xa2b8('0x5a')],'bcc':_0xa67e37[_0xa2b8('0x27')][_0xa2b8('0x18')]['bcc'],'ChatWebsiteId':_0xa67e37[_0xa2b8('0x27')][_0xa2b8('0x18')][_0xa2b8('0x5b')]||null,'originChannel':_0xa67e37[_0xa2b8('0x27')][_0xa2b8('0x18')][_0xa2b8('0x5c')]||_0xa2b8('0x5d'),'ChatOfflineMessageId':_0xa67e37[_0xa2b8('0x27')][_0xa2b8('0x18')][_0xa2b8('0x5e')]||null},{'include':[{'model':db['Attachment'],'as':'Attachments'}]});})[_0xa2b8('0x10')](function(_0x316250){_0x3d19a0[_0xa2b8('0x18')]=_0x316250;if(_0x3d19a0[_0xa2b8('0x55')][_0xa2b8('0x5f')]){return db[_0xa2b8('0x60')][_0xa2b8('0x23')]({'attributes':['id',_0xa2b8('0x61')],'where':{'id':_0x3d19a0[_0xa2b8('0x55')][_0xa2b8('0x5f')]}})[_0xa2b8('0x10')](function(_0x4b66cb){if(_0x4b66cb){_0x3d19a0[_0xa2b8('0x3e')]['unshift']({'id':0x0,'priority':0x0,'app':_0xa2b8('0x62'),'appdata':_0x4b66cb[_0xa2b8('0x61')]+','+(_0x3d19a0[_0xa2b8('0x36')][_0xa2b8('0x63')]||0xa),'interval':_0xa2b8('0x46')});}return respondWithRpcPromise('Start',_0xa2b8('0x64'),_0x3d19a0);});}return respondWithRpcPromise(_0xa2b8('0x65'),_0xa2b8('0x64'),_0x3d19a0);})[_0xa2b8('0x10')](function(_0x31e8dc){_0x7d154d(_0x31e8dc);})[_0xa2b8('0x1a')](function(_0xc76ab5){_0x1b6b73(_0x30a68f[_0xa2b8('0x16')](0x1f4,_0xc76ab5[_0xa2b8('0x18')]));});});};