Built motion from commit b0a9a629.|2.6.33
[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 _0xafc4=['lodash','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','http','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','then','info','MailAccount,\x20%s,\x20%s','debug','MailAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','findAll','options','raw','where','attributes','include','map','model','GetMailAccount','ShowMailAccount','MailAccount','find','smtp','setDataValue','smtpOptions','getSmtpOptions','NotifyMailAccount','body','keys','CmContact','createdAt','updatedAt','CompanyId','ListId','isNil','from','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','List','Contacts','DESC','Smtp','CloudProvider','get','account','omit','Applications','list','applications','asc','autoclose','push','length','close','*,*,*,*','create','List\x20not\x20found','contact','messageId','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','spread','attachments','originTo','originCc','bcc','ChatWebsiteId','originChannel','Email','Attachments','UserId','User','name','interaction','unshift','agent','waitForTheAssignedAgent','MailQueue','queueId','waitForTheAssignedQueue','startRouting'];(function(_0x3de7e0,_0x28cbff){var _0x11d0b3=function(_0xd95412){while(--_0xd95412){_0x3de7e0['push'](_0x3de7e0['shift']());}};_0x11d0b3(++_0x28cbff);}(_0xafc4,0x69));var _0x4afc=function(_0xdd156e,_0xb43250){_0xdd156e=_0xdd156e-0x0;var _0x3426b6=_0xafc4[_0xdd156e];return _0x3426b6;};'use strict';var _=require(_0x4afc('0x0'));var moment=require('moment');var BPromise=require(_0x4afc('0x1'));var rs=require('randomstring');var Redis=require(_0x4afc('0x2'));var db=require(_0x4afc('0x3'))['db'];var logger=require(_0x4afc('0x4'))(_0x4afc('0x5'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x4afc('0x6')]({'port':0x232c});config[_0x4afc('0x7')]=_[_0x4afc('0x8')](config[_0x4afc('0x7')],{'host':_0x4afc('0x9'),'port':0x18eb});var socket=require(_0x4afc('0xa'))(new Redis(config['redis']));require(_0x4afc('0xb'))[_0x4afc('0xc')](socket);function respondWithRpcPromise(_0x134aad,_0x1e6bf5,_0x1b8981){return new BPromise(function(_0x458fde,_0x5542ec){return client['request'](_0x134aad,_0x1b8981)[_0x4afc('0xd')](function(_0x49222e){logger[_0x4afc('0xe')](_0x4afc('0xf'),_0x1e6bf5,'request\x20sent');logger[_0x4afc('0x10')](_0x4afc('0x11'),_0x1e6bf5,_0x4afc('0x12'),JSON[_0x4afc('0x13')](_0x49222e));if(_0x49222e[_0x4afc('0x14')]){if(_0x49222e[_0x4afc('0x14')][_0x4afc('0x15')]===0x1f4){logger[_0x4afc('0x14')]('MailAccount,\x20%s,\x20%s',_0x1e6bf5,_0x49222e[_0x4afc('0x14')][_0x4afc('0x16')]);return _0x5542ec(_0x49222e[_0x4afc('0x14')][_0x4afc('0x16')]);}logger['error']('MailAccount,\x20%s,\x20%s',_0x1e6bf5,_0x49222e[_0x4afc('0x14')]['message']);return _0x458fde(_0x49222e[_0x4afc('0x14')][_0x4afc('0x16')]);}else{logger[_0x4afc('0xe')](_0x4afc('0xf'),_0x1e6bf5,_0x4afc('0x12'));_0x458fde(_0x49222e[_0x4afc('0x17')][_0x4afc('0x16')]);}})[_0x4afc('0x18')](function(_0x16365f){logger[_0x4afc('0x14')](_0x4afc('0xf'),_0x1e6bf5,_0x16365f);_0x5542ec(_0x16365f);});});}exports['GetMailAccount']=function(_0x1a8f49){var _0x25603b=this;return new Promise(function(_0x32865e,_0x14558a){return db['MailAccount'][_0x4afc('0x19')]({'raw':_0x1a8f49[_0x4afc('0x1a')]?_0x1a8f49[_0x4afc('0x1a')][_0x4afc('0x1b')]===undefined?!![]:![]:!![],'where':_0x1a8f49[_0x4afc('0x1a')]?_0x1a8f49[_0x4afc('0x1a')][_0x4afc('0x1c')]||null:null,'attributes':_0x1a8f49['options']?_0x1a8f49[_0x4afc('0x1a')][_0x4afc('0x1d')]||null:null,'limit':_0x1a8f49['options']?_0x1a8f49[_0x4afc('0x1a')]['limit']||null:null,'include':_0x1a8f49[_0x4afc('0x1a')]?_0x1a8f49[_0x4afc('0x1a')][_0x4afc('0x1e')]?_[_0x4afc('0x1f')](_0x1a8f49[_0x4afc('0x1a')][_0x4afc('0x1e')],function(_0x40a0db){return{'model':db[_0x40a0db[_0x4afc('0x20')]],'as':_0x40a0db['as'],'attributes':_0x40a0db[_0x4afc('0x1d')],'include':_0x40a0db[_0x4afc('0x1e')]?_[_0x4afc('0x1f')](_0x40a0db[_0x4afc('0x1e')],function(_0x35f5b3){return{'model':db[_0x35f5b3['model']],'as':_0x35f5b3['as'],'attributes':_0x35f5b3[_0x4afc('0x1d')],'include':_0x35f5b3[_0x4afc('0x1e')]?_[_0x4afc('0x1f')](_0x35f5b3['include'],function(_0x52212d){return{'model':db[_0x52212d['model']],'as':_0x52212d['as'],'attributes':_0x52212d[_0x4afc('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x4afc('0xd')](function(_0x5e4747){logger[_0x4afc('0xe')](_0x4afc('0x21'),_0x1a8f49);logger['debug']('GetMailAccount',_0x1a8f49,JSON['stringify'](_0x5e4747));_0x32865e(_0x5e4747);})[_0x4afc('0x18')](function(_0x34434a){logger[_0x4afc('0x14')](_0x4afc('0x21'),_0x34434a[_0x4afc('0x16')],_0x1a8f49);_0x14558a(_0x25603b[_0x4afc('0x14')](0x1f4,_0x34434a['message']));});});};exports[_0x4afc('0x22')]=function(_0x3d1693){var _0x1ba6b5=this;return new Promise(function(_0x2f178c,_0x2b115d){return db[_0x4afc('0x23')][_0x4afc('0x24')]({'raw':_0x3d1693[_0x4afc('0x1a')]?_0x3d1693['options'][_0x4afc('0x1b')]===undefined?!![]:![]:!![],'where':_0x3d1693['options']?_0x3d1693['options'][_0x4afc('0x1c')]||null:null,'attributes':_0x3d1693[_0x4afc('0x1a')]?_0x3d1693[_0x4afc('0x1a')][_0x4afc('0x1d')]||null:null,'include':_0x3d1693[_0x4afc('0x1a')]?_0x3d1693[_0x4afc('0x1a')]['include']?_[_0x4afc('0x1f')](_0x3d1693[_0x4afc('0x1a')][_0x4afc('0x1e')],function(_0x127ac8){return{'model':db[_0x127ac8[_0x4afc('0x20')]],'as':_0x127ac8['as'],'attributes':_0x127ac8[_0x4afc('0x1d')],'include':_0x127ac8['include']?_[_0x4afc('0x1f')](_0x127ac8[_0x4afc('0x1e')],function(_0x91565d){return{'model':db[_0x91565d[_0x4afc('0x20')]],'as':_0x91565d['as'],'attributes':_0x91565d['attributes'],'include':_0x91565d['include']?_[_0x4afc('0x1f')](_0x91565d[_0x4afc('0x1e')],function(_0x17ea03){return{'model':db[_0x17ea03['model']],'as':_0x17ea03['as'],'attributes':_0x17ea03['attributes']};}):[]};}):[]};}):[]:[]})[_0x4afc('0xd')](function(_0x4a06cf){if(_0x3d1693['options'][_0x4afc('0x25')]===!![])_0x4a06cf[_0x4afc('0x26')](_0x4afc('0x27'),_0x4a06cf[_0x4afc('0x28')]());logger[_0x4afc('0xe')](_0x4afc('0x22'),_0x3d1693);logger[_0x4afc('0x10')](_0x4afc('0x22'),_0x3d1693,JSON[_0x4afc('0x13')](_0x4a06cf));_0x2f178c(_0x4a06cf);})[_0x4afc('0x18')](function(_0x26e59f){logger[_0x4afc('0x14')](_0x4afc('0x22'),_0x26e59f[_0x4afc('0x16')],_0x3d1693);_0x2b115d(_0x1ba6b5[_0x4afc('0x14')](0x1f4,_0x26e59f['message']));});});};exports[_0x4afc('0x29')]=function(_0x6a8345){var _0x4357a6=this;return new Promise(function(_0xe6db12,_0x12db1d){var _0x260b06={'body':_0x6a8345[_0x4afc('0x2a')],'channel':'mail'};var _0x5e97f4=_['difference'](_[_0x4afc('0x2b')](db[_0x4afc('0x2c')]['rawAttributes']),[_0x4afc('0x2d'),_0x4afc('0x2e'),_0x4afc('0x2f'),_0x4afc('0x30')]);var _0x545109=![];if(_0x6a8345[_0x4afc('0x2a')]['id']){delete _0x6a8345[_0x4afc('0x2a')]['id'];}if(_[_0x4afc('0x31')](_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x32')])){return _0x12db1d(_0x4357a6[_0x4afc('0x14')](0x1f4,'from\x20is\x20mandatory'));}if(_[_0x4afc('0x31')](_0x6a8345['body'][_0x4afc('0x2a')])||_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x2a')]===''){return _0x12db1d(_0x4357a6['error'](0x1f4,'body\x20is\x20mandatory\x20and\x20not\x20empty'));}if(_[_0x4afc('0x31')](_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x33')])){return _0x12db1d(_0x4357a6[_0x4afc('0x14')](0x1f4,_0x4afc('0x34')+_0x5e97f4));}if(!_[_0x4afc('0x35')](_0x5e97f4,_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x33')])){return _0x12db1d(_0x4357a6['error'](0x1f4,_0x4afc('0x36')+_0x5e97f4));}var _0xb1e91e={};_0xb1e91e[_0x6a8345['body'][_0x4afc('0x33')]]=_0x6a8345['body'][_0x4afc('0x32')];return db[_0x4afc('0x23')][_0x4afc('0x24')]({'where':{'id':_0x6a8345['account']['id']},'include':[{'model':db[_0x4afc('0x37')],'as':_0x4afc('0x38'),'include':[{'model':db[_0x4afc('0x2c')],'as':_0x4afc('0x39'),'where':_0xb1e91e,'limit':0x1,'order':[[_0x4afc('0x2e'),_0x4afc('0x3a')]]}]},{'model':db['MailApplication'],'as':'Applications'},{'model':db['MailServerOut'],'as':_0x4afc('0x3b'),'include':[{'model':db[_0x4afc('0x3c')],'as':_0x4afc('0x3c')}]}]})[_0x4afc('0xd')](function(_0xb5cca9){if(_0xb5cca9&&_0xb5cca9[_0x4afc('0x38')]){var _0x22e8b0=_0xb5cca9[_0x4afc('0x3d')]({'plain':!![]});_0x260b06[_0x4afc('0x3e')]=_[_0x4afc('0x3f')](_0x22e8b0,['Applications',_0x4afc('0x38')]);_0x260b06['account']['smtpOptions']=_0xb5cca9[_0x4afc('0x28')]();_0x260b06['applications']=_0x22e8b0[_0x4afc('0x40')];_0x260b06[_0x4afc('0x41')]=_0x22e8b0[_0x4afc('0x38')];_0x260b06[_0x4afc('0x42')]=_['orderBy'](_0x260b06[_0x4afc('0x42')],['priority'],[_0x4afc('0x43')]);if(_0x260b06[_0x4afc('0x3e')]&&_0x260b06[_0x4afc('0x3e')][_0x4afc('0x44')]){_0x260b06[_0x4afc('0x42')][_0x4afc('0x45')]({'id':0x0,'priority':_0x260b06[_0x4afc('0x42')][_0x4afc('0x46')]+0x1,'app':_0x4afc('0x47'),'appdata':_0x4afc('0x44'),'interval':_0x4afc('0x48')});}if(_0x260b06[_0x4afc('0x3e')]['Applications']){delete _0x260b06[_0x4afc('0x3e')][_0x4afc('0x40')];}if(_0x260b06[_0x4afc('0x3e')][_0x4afc('0x38')]){delete _0x260b06[_0x4afc('0x3e')][_0x4afc('0x38')];}if(_0x22e8b0[_0x4afc('0x38')][_0x4afc('0x39')][_0x4afc('0x46')]){return _0x22e8b0[_0x4afc('0x38')][_0x4afc('0x39')][0x0];}var _0x2aa927=_[_0x4afc('0x8')](_0x6a8345['body'],{'firstName':_0x6a8345[_0x4afc('0x2a')]['from'],'ListId':_0x22e8b0[_0x4afc('0x30')]});_0x2aa927[_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x33')]]=_0x6a8345[_0x4afc('0x2a')]['from'];return db['CmContact'][_0x4afc('0x49')](_0x2aa927);}else{throw new Error(_0x4afc('0x4a'));}})['then'](function(_0x40021e){_0x260b06[_0x4afc('0x4b')]=_0x40021e;if(_0x40021e){if(!_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x16')][_0x4afc('0x4c')]){_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x16')][_0x4afc('0x4c')]=rs[_0x4afc('0x4d')]()+'\x20'+_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x16')][_0x4afc('0x32')];}var _0x22f586={'ContactId':_0x40021e['id'],'MailAccountId':_0x6a8345[_0x4afc('0x3e')]['id'],'inReplyTo':_0x6a8345['body'][_0x4afc('0x16')][_0x4afc('0x4c')],'to':_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x16')][_0x4afc('0x32')],'cc':_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x16')]['cc'],'subject':_0x6a8345['body'][_0x4afc('0x16')][_0x4afc('0x4e')],'attach':_0x6a8345['body']['message'][_0x4afc('0x4f')],'lastMsgAt':moment()[_0x4afc('0x50')](_0x4afc('0x51')),'lastMsgDirection':'in'};return db[_0x4afc('0x52')][_0x4afc('0x24')]({'where':{'closed':![],'MailAccountId':_0x6a8345[_0x4afc('0x3e')]['id']},'include':[{'model':db[_0x4afc('0x53')],'as':_0x4afc('0x54'),'attributes':[_0x4afc('0x4c')],'where':{'messageId':_0x6a8345[_0x4afc('0x2a')]['message']['inReplyTo']}}]})[_0x4afc('0xd')](function(_0x139786){if(_0x139786){return[_0x139786,![]];}return db['MailInteraction'][_0x4afc('0x49')](_0x22f586)[_0x4afc('0xd')](function(_0x5be1a7){return[_0x5be1a7,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x4afc('0x55')](function(_0x26f4ee,_0x576ea0){if(_0x26f4ee){_0x545109=_0x576ea0;if(!_0x576ea0){return _0x26f4ee['update']({'inReplyTo':_0x6a8345[_0x4afc('0x2a')]['message']['messageId'],'to':_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x16')][_0x4afc('0x32')],'cc':_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x16')]['cc'],'subject':_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x16')][_0x4afc('0x4e')],'attach':_0x26f4ee[_0x4afc('0x4f')]?_0x26f4ee['attach']:_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x16')][_0x4afc('0x4f')],'substatus':null,'substatusAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgAt':moment()['format'](_0x4afc('0x51')),'lastMsgDirection':'in'});}else{return _0x26f4ee;}}})[_0x4afc('0xd')](function(_0x195378){_0x260b06['interaction']=_0x195378[_0x4afc('0x3d')]({'plain':!![]});_0x260b06['interaction']['created']=_0x545109;return db['MailMessage'][_0x4afc('0x49')]({'body':_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x2a')],'MailAccountId':_0x6a8345['account']['id'],'MailInteractionId':_0x195378['id'],'direction':'in','ContactId':_0x260b06[_0x4afc('0x4b')]['id'],'messageId':_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x16')]['messageId'],'from':_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x16')][_0x4afc('0x32')],'to':_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x16')]['to'],'cc':_0x6a8345['body']['message']['cc'],'subject':_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x16')][_0x4afc('0x4e')],'attach':_0x6a8345['body'][_0x4afc('0x16')][_0x4afc('0x4f')],'Attachments':_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x16')][_0x4afc('0x56')],'originTo':_0x6a8345['body'][_0x4afc('0x16')][_0x4afc('0x57')],'originCc':_0x6a8345['body'][_0x4afc('0x16')][_0x4afc('0x58')],'bcc':_0x6a8345[_0x4afc('0x2a')]['message'][_0x4afc('0x59')],'ChatWebsiteId':_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x16')][_0x4afc('0x5a')]||null,'originChannel':_0x6a8345[_0x4afc('0x2a')][_0x4afc('0x16')][_0x4afc('0x5b')]||_0x4afc('0x5c'),'ChatOfflineMessageId':_0x6a8345['body'][_0x4afc('0x16')]['ChatOfflineMessageId']||null},{'include':[{'model':db['Attachment'],'as':_0x4afc('0x5d')}]});})[_0x4afc('0xd')](function(_0x1354f1){_0x260b06['message']=_0x1354f1;if(!_0x260b06['interaction'][_0x4afc('0x5e')]){return;}return db[_0x4afc('0x5f')][_0x4afc('0x24')]({'attributes':['id',_0x4afc('0x60')],'where':{'id':_0x260b06[_0x4afc('0x61')][_0x4afc('0x5e')]}});})[_0x4afc('0xd')](function(_0x198ec9){if(_0x198ec9){_0x260b06[_0x4afc('0x42')][_0x4afc('0x62')]({'id':0x0,'priority':0x0,'app':_0x4afc('0x63'),'appdata':_0x198ec9[_0x4afc('0x60')]+','+(_0x260b06[_0x4afc('0x3e')][_0x4afc('0x64')]||0xa),'interval':_0x4afc('0x48')});}if(!_0x260b06[_0x4afc('0x61')]['queueId']){return;}return db[_0x4afc('0x65')][_0x4afc('0x24')]({'attributes':['id',_0x4afc('0x60')],'where':{'id':_0x260b06[_0x4afc('0x61')][_0x4afc('0x66')]}});})[_0x4afc('0xd')](function(_0x3fddd1){if(_0x3fddd1){_0x260b06[_0x4afc('0x42')][_0x4afc('0x62')]({'id':0x0,'priority':0x1,'app':'queue','appdata':_0x3fddd1[_0x4afc('0x60')]+','+(_0x260b06[_0x4afc('0x3e')][_0x4afc('0x67')]||0x12c),'interval':_0x4afc('0x48')});}return respondWithRpcPromise('Start',_0x4afc('0x68'),_0x260b06);})[_0x4afc('0xd')](function(_0x4ce81a){_0xe6db12(_0x4ce81a);})[_0x4afc('0x18')](function(_0x46fe52){_0x12db1d(_0x4357a6[_0x4afc('0x14')](0x1f4,_0x46fe52[_0x4afc('0x16')]));});});};