Built motion from commit (unavailable).|2.0.82
[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 _0x4e1c=['*,*,*,*','List\x20not\x20found','contact','messageId','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','Messages','inReplyTo','create','Contact\x20not\x20found','update','interaction','created','originTo','bcc','Attachment','UserId','User','name','agent','waitForTheAssignedAgent','Start','startRouting','util','moment','bluebird','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','socket.io-emitter','./mailAccount.socket','register','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','GetMailAccount','MailAccount','findAll','options','raw','where','attributes','limit','include','map','model','catch','ShowMailAccount','find','body','mail','difference','keys','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','ListId','isNil','from','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','account','CmList','List','Contacts','DESC','MailApplication','Applications','Smtp','omit','applications','priority','asc','autoclose','push','length'];(function(_0xe293eb,_0xe8bff7){var _0x14704e=function(_0x32e975){while(--_0x32e975){_0xe293eb['push'](_0xe293eb['shift']());}};_0x14704e(++_0xe8bff7);}(_0x4e1c,0x13b));var _0xc4e1=function(_0x2b948f,_0x398e62){_0x2b948f=_0x2b948f-0x0;var _0x1237bc=_0x4e1c[_0x2b948f];return _0x1237bc;};'use strict';var _=require('lodash');var util=require(_0xc4e1('0x0'));var moment=require(_0xc4e1('0x1'));var BPromise=require(_0xc4e1('0x2'));var rs=require('randomstring');var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0xc4e1('0x3'));var logger=require(_0xc4e1('0x4'))(_0xc4e1('0x5'));var config=require(_0xc4e1('0x6'));var jayson=require(_0xc4e1('0x7'));var client=jayson[_0xc4e1('0x8')][_0xc4e1('0x9')]({'port':0x232c});var socket=require(_0xc4e1('0xa'))({'host':'localhost','port':0x18eb});require(_0xc4e1('0xb'))[_0xc4e1('0xc')](socket);function respondWithRpcPromise(_0x38f28c,_0x2da47c,_0x26da82){return new BPromise(function(_0x48e8ac,_0x4f8195){return client[_0xc4e1('0xd')](_0x38f28c,_0x26da82)[_0xc4e1('0xe')](function(_0x15cd7d){logger[_0xc4e1('0xf')](_0xc4e1('0x10'),_0x2da47c,_0xc4e1('0x11'));logger[_0xc4e1('0x12')](_0xc4e1('0x13'),_0x2da47c,_0xc4e1('0x11'),JSON[_0xc4e1('0x14')](_0x15cd7d));if(_0x15cd7d['error']){if(_0x15cd7d[_0xc4e1('0x15')][_0xc4e1('0x16')]===0x1f4){logger['error'](_0xc4e1('0x10'),_0x2da47c,_0x15cd7d[_0xc4e1('0x15')][_0xc4e1('0x17')]);return _0x4f8195(_0x15cd7d[_0xc4e1('0x15')][_0xc4e1('0x17')]);}logger['error'](_0xc4e1('0x10'),_0x2da47c,_0x15cd7d[_0xc4e1('0x15')]['message']);return _0x48e8ac(_0x15cd7d[_0xc4e1('0x15')][_0xc4e1('0x17')]);}else{logger['info']('MailAccount,\x20%s,\x20%s',_0x2da47c,_0xc4e1('0x11'));_0x48e8ac(_0x15cd7d[_0xc4e1('0x18')][_0xc4e1('0x17')]);}})['catch'](function(_0xaf8461){logger[_0xc4e1('0x15')](_0xc4e1('0x10'),_0x2da47c,_0xaf8461);_0x4f8195(_0xaf8461);});});}exports[_0xc4e1('0x19')]=function(_0x4ab59d){var _0x302aad=this;return new Promise(function(_0x48ac28,_0x2cddb1){return db[_0xc4e1('0x1a')][_0xc4e1('0x1b')]({'raw':_0x4ab59d[_0xc4e1('0x1c')]?_0x4ab59d[_0xc4e1('0x1c')][_0xc4e1('0x1d')]===undefined?!![]:![]:!![],'where':_0x4ab59d[_0xc4e1('0x1c')]?_0x4ab59d[_0xc4e1('0x1c')][_0xc4e1('0x1e')]||null:null,'attributes':_0x4ab59d['options']?_0x4ab59d[_0xc4e1('0x1c')][_0xc4e1('0x1f')]||null:null,'limit':_0x4ab59d[_0xc4e1('0x1c')]?_0x4ab59d[_0xc4e1('0x1c')][_0xc4e1('0x20')]||null:null,'include':_0x4ab59d[_0xc4e1('0x1c')]?_0x4ab59d[_0xc4e1('0x1c')][_0xc4e1('0x21')]?_[_0xc4e1('0x22')](_0x4ab59d[_0xc4e1('0x1c')][_0xc4e1('0x21')],function(_0x456226){return{'model':db[_0x456226[_0xc4e1('0x23')]],'as':_0x456226['as'],'attributes':_0x456226[_0xc4e1('0x1f')],'include':_0x456226['include']?_[_0xc4e1('0x22')](_0x456226['include'],function(_0x34d8ca){return{'model':db[_0x34d8ca[_0xc4e1('0x23')]],'as':_0x34d8ca['as'],'attributes':_0x34d8ca['attributes'],'include':_0x34d8ca['include']?_[_0xc4e1('0x22')](_0x34d8ca[_0xc4e1('0x21')],function(_0x2b2bad){return{'model':db[_0x2b2bad[_0xc4e1('0x23')]],'as':_0x2b2bad['as'],'attributes':_0x2b2bad[_0xc4e1('0x1f')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x50d001){logger[_0xc4e1('0xf')](_0xc4e1('0x19'),_0x4ab59d);logger[_0xc4e1('0x12')](_0xc4e1('0x19'),_0x4ab59d,JSON[_0xc4e1('0x14')](_0x50d001));_0x48ac28(_0x50d001);})[_0xc4e1('0x24')](function(_0x2a77ac){logger[_0xc4e1('0x15')](_0xc4e1('0x19'),_0x2a77ac[_0xc4e1('0x17')],_0x4ab59d);_0x2cddb1(_0x302aad[_0xc4e1('0x15')](0x1f4,_0x2a77ac[_0xc4e1('0x17')]));});});};exports[_0xc4e1('0x25')]=function(_0x2e0b1e){var _0x2a86b1=this;return new Promise(function(_0x35a95e,_0x1ff3bb){return db['MailAccount'][_0xc4e1('0x26')]({'raw':_0x2e0b1e[_0xc4e1('0x1c')]?_0x2e0b1e[_0xc4e1('0x1c')]['raw']===undefined?!![]:![]:!![],'where':_0x2e0b1e[_0xc4e1('0x1c')]?_0x2e0b1e[_0xc4e1('0x1c')]['where']||null:null,'attributes':_0x2e0b1e[_0xc4e1('0x1c')]?_0x2e0b1e['options'][_0xc4e1('0x1f')]||null:null,'include':_0x2e0b1e[_0xc4e1('0x1c')]?_0x2e0b1e[_0xc4e1('0x1c')][_0xc4e1('0x21')]?_[_0xc4e1('0x22')](_0x2e0b1e[_0xc4e1('0x1c')][_0xc4e1('0x21')],function(_0x4abcd5){return{'model':db[_0x4abcd5[_0xc4e1('0x23')]],'as':_0x4abcd5['as'],'attributes':_0x4abcd5[_0xc4e1('0x1f')],'include':_0x4abcd5['include']?_['map'](_0x4abcd5['include'],function(_0x5c04e5){return{'model':db[_0x5c04e5[_0xc4e1('0x23')]],'as':_0x5c04e5['as'],'attributes':_0x5c04e5[_0xc4e1('0x1f')],'include':_0x5c04e5['include']?_[_0xc4e1('0x22')](_0x5c04e5[_0xc4e1('0x21')],function(_0x19190c){return{'model':db[_0x19190c['model']],'as':_0x19190c['as'],'attributes':_0x19190c[_0xc4e1('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xc4e1('0xe')](function(_0x48471e){logger[_0xc4e1('0xf')](_0xc4e1('0x25'),_0x2e0b1e);logger[_0xc4e1('0x12')](_0xc4e1('0x25'),_0x2e0b1e,JSON[_0xc4e1('0x14')](_0x48471e));_0x35a95e(_0x48471e);})[_0xc4e1('0x24')](function(_0x421282){logger[_0xc4e1('0x15')](_0xc4e1('0x25'),_0x421282['message'],_0x2e0b1e);_0x1ff3bb(_0x2a86b1[_0xc4e1('0x15')](0x1f4,_0x421282[_0xc4e1('0x17')]));});});};exports['NotifyMailAccount']=function(_0x3ce194){var _0x14da90=this;return new Promise(function(_0x203b86,_0x597590){var _0xa31c22={'body':_0x3ce194[_0xc4e1('0x27')],'channel':_0xc4e1('0x28')};var _0x11e888=_[_0xc4e1('0x29')](_[_0xc4e1('0x2a')](db[_0xc4e1('0x2b')][_0xc4e1('0x2c')]),[_0xc4e1('0x2d'),_0xc4e1('0x2e'),_0xc4e1('0x2f'),_0xc4e1('0x30')]);var _0x42245c=![];if(_0x3ce194['body']['id']){delete _0x3ce194[_0xc4e1('0x27')]['id'];}if(_[_0xc4e1('0x31')](_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x32')])){return _0x597590(_0x14da90[_0xc4e1('0x15')](0x1f4,'from\x20is\x20mandatory'));}if(_[_0xc4e1('0x31')](_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x27')])||_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x27')]===''){return _0x597590(_0x14da90[_0xc4e1('0x15')](0x1f4,_0xc4e1('0x33')));}if(_[_0xc4e1('0x31')](_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x34')])){return _0x597590(_0x14da90[_0xc4e1('0x15')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x11e888));}if(!_[_0xc4e1('0x35')](_0x11e888,_0x3ce194[_0xc4e1('0x27')]['mapKey'])){return _0x597590(_0x14da90[_0xc4e1('0x15')](0x1f4,'mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x11e888));}var _0x39957f={};_0x39957f[_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x34')]]=_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x32')];return db[_0xc4e1('0x1a')][_0xc4e1('0x26')]({'where':{'id':_0x3ce194[_0xc4e1('0x36')]['id']},'include':[{'model':db[_0xc4e1('0x37')],'as':_0xc4e1('0x38'),'include':[{'model':db['CmContact'],'as':_0xc4e1('0x39'),'where':_0x39957f,'limit':0x1,'order':[['updatedAt',_0xc4e1('0x3a')]]}]},{'model':db[_0xc4e1('0x3b')],'as':_0xc4e1('0x3c')},{'model':db['MailServerOut'],'as':_0xc4e1('0x3d')}]})[_0xc4e1('0xe')](function(_0x411284){if(_0x411284&&_0x411284['List']){var _0x72059=_0x411284['get']({'plain':!![]});_0xa31c22['account']=_[_0xc4e1('0x3e')](_0x72059,[_0xc4e1('0x3c'),_0xc4e1('0x38')]);_0xa31c22[_0xc4e1('0x3f')]=_0x72059[_0xc4e1('0x3c')];_0xa31c22['list']=_0x72059[_0xc4e1('0x38')];_0xa31c22[_0xc4e1('0x3f')]=_['orderBy'](_0xa31c22[_0xc4e1('0x3f')],[_0xc4e1('0x40')],[_0xc4e1('0x41')]);if(_0xa31c22[_0xc4e1('0x36')]&&_0xa31c22[_0xc4e1('0x36')][_0xc4e1('0x42')]){_0xa31c22[_0xc4e1('0x3f')][_0xc4e1('0x43')]({'id':0x0,'priority':_0xa31c22['applications'][_0xc4e1('0x44')]+0x1,'app':'close','appdata':'autoclose','interval':_0xc4e1('0x45')});}if(_0xa31c22[_0xc4e1('0x36')][_0xc4e1('0x3c')]){delete _0xa31c22[_0xc4e1('0x36')][_0xc4e1('0x3c')];}if(_0xa31c22['account'][_0xc4e1('0x38')]){delete _0xa31c22[_0xc4e1('0x36')][_0xc4e1('0x38')];}if(_0x72059['List'][_0xc4e1('0x39')][_0xc4e1('0x44')]){return _0x72059[_0xc4e1('0x38')][_0xc4e1('0x39')][0x0];}var _0x5972d3=_['defaults'](_0x3ce194[_0xc4e1('0x27')],{'firstName':_0x3ce194['body']['from'],'ListId':_0x72059[_0xc4e1('0x30')]});_0x5972d3[_0x3ce194[_0xc4e1('0x27')]['mapKey']]=_0x3ce194['body'][_0xc4e1('0x32')];return db[_0xc4e1('0x2b')]['create'](_0x5972d3);}else{throw new Error(_0xc4e1('0x46'));}})[_0xc4e1('0xe')](function(_0x308412){_0xa31c22[_0xc4e1('0x47')]=_0x308412;if(_0x308412){if(!_0x3ce194[_0xc4e1('0x27')]['message'][_0xc4e1('0x48')]){_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x17')][_0xc4e1('0x48')]=rs[_0xc4e1('0x49')]()+'\x20'+_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x17')][_0xc4e1('0x32')];}var _0x901eb9={'ContactId':_0x308412['id'],'MailAccountId':_0x3ce194[_0xc4e1('0x36')]['id'],'inReplyTo':_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x17')][_0xc4e1('0x48')],'to':_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x17')][_0xc4e1('0x32')],'cc':_0x3ce194['body']['message']['cc'],'subject':_0x3ce194['body']['message'][_0xc4e1('0x4a')],'attach':_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x17')][_0xc4e1('0x4b')],'lastMsgAt':moment()[_0xc4e1('0x4c')](_0xc4e1('0x4d')),'lastMsgDirection':'in','lastMsgBody':_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x27')]};return db[_0xc4e1('0x4e')][_0xc4e1('0x26')]({'where':{'closed':![],'MailAccountId':_0x3ce194[_0xc4e1('0x36')]['id']},'include':[{'model':db['MailMessage'],'as':_0xc4e1('0x4f'),'attributes':[_0xc4e1('0x48')],'where':{'messageId':_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x17')][_0xc4e1('0x50')]}}]})[_0xc4e1('0xe')](function(_0x21a10c){if(_0x21a10c){return[_0x21a10c,![]];}return db[_0xc4e1('0x4e')][_0xc4e1('0x51')](_0x901eb9)['then'](function(_0x2126f9){return[_0x2126f9,!![]];});});}else{throw new Error(_0xc4e1('0x52'));}})['spread'](function(_0x428b83,_0x12a360){if(_0x428b83){_0x42245c=_0x12a360;if(!_0x12a360){return _0x428b83[_0xc4e1('0x53')]({'inReplyTo':_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x17')][_0xc4e1('0x48')],'to':_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x17')][_0xc4e1('0x32')],'cc':_0x3ce194['body'][_0xc4e1('0x17')]['cc'],'subject':_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x17')]['subject'],'attach':_0x428b83[_0xc4e1('0x4b')]?_0x428b83['attach']:_0x3ce194['body']['message']['attach'],'substatus':null,'substatusAt':moment()[_0xc4e1('0x4c')](_0xc4e1('0x4d')),'lastMsgAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in','lastMsgBody':_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x27')]});}else{return _0x428b83;}}})[_0xc4e1('0xe')](function(_0x139a1d){_0xa31c22[_0xc4e1('0x54')]=_0x139a1d['get']({'plain':!![]});_0xa31c22[_0xc4e1('0x54')][_0xc4e1('0x55')]=_0x42245c;return db['MailMessage'][_0xc4e1('0x51')]({'body':_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x27')],'MailAccountId':_0x3ce194[_0xc4e1('0x36')]['id'],'MailInteractionId':_0x139a1d['id'],'direction':'in','ContactId':_0xa31c22['contact']['id'],'messageId':_0x3ce194['body']['message'][_0xc4e1('0x48')],'from':_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x17')][_0xc4e1('0x32')],'to':_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x17')]['to'],'cc':_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x17')]['cc'],'subject':_0x3ce194[_0xc4e1('0x27')]['message']['subject'],'attach':_0x3ce194['body'][_0xc4e1('0x17')][_0xc4e1('0x4b')],'Attachments':_0x3ce194[_0xc4e1('0x27')]['message']['attachments'],'originTo':_0x3ce194[_0xc4e1('0x27')]['message'][_0xc4e1('0x56')],'originCc':_0x3ce194['body'][_0xc4e1('0x17')]['originCc'],'bcc':_0x3ce194[_0xc4e1('0x27')][_0xc4e1('0x17')][_0xc4e1('0x57')]},{'include':[{'model':db[_0xc4e1('0x58')],'as':'Attachments'}]});})['then'](function(_0x44c383){_0xa31c22['message']=_0x44c383;if(_0xa31c22[_0xc4e1('0x54')][_0xc4e1('0x59')]){return db[_0xc4e1('0x5a')][_0xc4e1('0x26')]({'attributes':['id',_0xc4e1('0x5b')],'where':{'id':_0xa31c22[_0xc4e1('0x54')][_0xc4e1('0x59')]}})[_0xc4e1('0xe')](function(_0x4795bf){if(_0x4795bf){_0xa31c22['applications']['unshift']({'id':0x0,'priority':0x0,'app':_0xc4e1('0x5c'),'appdata':_0x4795bf[_0xc4e1('0x5b')]+','+(_0xa31c22['account'][_0xc4e1('0x5d')]||0xa),'interval':_0xc4e1('0x45')});}return respondWithRpcPromise(_0xc4e1('0x5e'),_0xc4e1('0x5f'),_0xa31c22);});}return respondWithRpcPromise(_0xc4e1('0x5e'),_0xc4e1('0x5f'),_0xa31c22);})[_0xc4e1('0xe')](function(_0x13aa6d){_0x203b86(_0x13aa6d);})[_0xc4e1('0x24')](function(_0x268d3a){_0x597590(_0x14da90[_0xc4e1('0x15')](0x1f4,_0x268d3a[_0xc4e1('0x17')]));});});};