Built motion from commit (unavailable).|2.4.18
[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 _0x750a=['inReplyTo','spread','update','subject','interaction','created','contact','attachments','originTo','bcc','Attachment','Attachments','User','UserId','unshift','agent','name','*,*,*,*','Start','startRouting','util','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','register','then','info','MailAccount,\x20%s,\x20%s','debug','MailAccount,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','MailAccount','options','where','limit','include','map','model','attributes','GetMailAccount','stringify','ShowMailAccount','find','NotifyMailAccount','body','mail','difference','keys','CmContact','rawAttributes','updatedAt','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','Contacts','DESC','MailApplication','Applications','MailServerOut','Smtp','get','omit','List','list','applications','priority','asc','autoclose','close','create','List\x20not\x20found','messageId','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages'];(function(_0x2f4d5f,_0xda7f63){var _0x13dfeb=function(_0x567b81){while(--_0x567b81){_0x2f4d5f['push'](_0x2f4d5f['shift']());}};_0x13dfeb(++_0xda7f63);}(_0x750a,0x140));var _0xa750=function(_0x4423bb,_0x4e0392){_0x4423bb=_0x4423bb-0x0;var _0x5410b5=_0x750a[_0x4423bb];return _0x5410b5;};'use strict';var _=require('lodash');var util=require(_0xa750('0x0'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xa750('0x1'));var fs=require('fs');var Redis=require(_0xa750('0x2'));var db=require(_0xa750('0x3'))['db'];var utils=require(_0xa750('0x4'));var logger=require(_0xa750('0x5'))(_0xa750('0x6'));var config=require(_0xa750('0x7'));var jayson=require(_0xa750('0x8'));var client=jayson[_0xa750('0x9')][_0xa750('0xa')]({'port':0x232c});config[_0xa750('0xb')]=_[_0xa750('0xc')](config[_0xa750('0xb')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xa750('0xb')]));require('./mailAccount.socket')[_0xa750('0xd')](socket);function respondWithRpcPromise(_0x1760f5,_0x51f594,_0x264284){return new BPromise(function(_0x2c2ea4,_0x5870f0){return client['request'](_0x1760f5,_0x264284)[_0xa750('0xe')](function(_0x4b19a1){logger[_0xa750('0xf')](_0xa750('0x10'),_0x51f594,'request\x20sent');logger[_0xa750('0x11')](_0xa750('0x12'),_0x51f594,_0xa750('0x13'),JSON['stringify'](_0x4b19a1));if(_0x4b19a1[_0xa750('0x14')]){if(_0x4b19a1[_0xa750('0x14')][_0xa750('0x15')]===0x1f4){logger[_0xa750('0x14')](_0xa750('0x10'),_0x51f594,_0x4b19a1[_0xa750('0x14')]['message']);return _0x5870f0(_0x4b19a1[_0xa750('0x14')][_0xa750('0x16')]);}logger[_0xa750('0x14')]('MailAccount,\x20%s,\x20%s',_0x51f594,_0x4b19a1[_0xa750('0x14')][_0xa750('0x16')]);return _0x2c2ea4(_0x4b19a1['error']['message']);}else{logger[_0xa750('0xf')]('MailAccount,\x20%s,\x20%s',_0x51f594,_0xa750('0x13'));_0x2c2ea4(_0x4b19a1[_0xa750('0x17')]['message']);}})[_0xa750('0x18')](function(_0x500a84){logger['error'](_0xa750('0x10'),_0x51f594,_0x500a84);_0x5870f0(_0x500a84);});});}exports['GetMailAccount']=function(_0x3fa031){var _0x4f170f=this;return new Promise(function(_0x174a8c,_0x4a007d){return db[_0xa750('0x19')]['findAll']({'raw':_0x3fa031[_0xa750('0x1a')]?_0x3fa031['options']['raw']===undefined?!![]:![]:!![],'where':_0x3fa031[_0xa750('0x1a')]?_0x3fa031['options'][_0xa750('0x1b')]||null:null,'attributes':_0x3fa031['options']?_0x3fa031['options']['attributes']||null:null,'limit':_0x3fa031['options']?_0x3fa031[_0xa750('0x1a')][_0xa750('0x1c')]||null:null,'include':_0x3fa031[_0xa750('0x1a')]?_0x3fa031[_0xa750('0x1a')][_0xa750('0x1d')]?_[_0xa750('0x1e')](_0x3fa031[_0xa750('0x1a')][_0xa750('0x1d')],function(_0x3d52b3){return{'model':db[_0x3d52b3[_0xa750('0x1f')]],'as':_0x3d52b3['as'],'attributes':_0x3d52b3[_0xa750('0x20')],'include':_0x3d52b3[_0xa750('0x1d')]?_[_0xa750('0x1e')](_0x3d52b3[_0xa750('0x1d')],function(_0x310e2d){return{'model':db[_0x310e2d['model']],'as':_0x310e2d['as'],'attributes':_0x310e2d[_0xa750('0x20')],'include':_0x310e2d[_0xa750('0x1d')]?_[_0xa750('0x1e')](_0x310e2d['include'],function(_0x35ab53){return{'model':db[_0x35ab53[_0xa750('0x1f')]],'as':_0x35ab53['as'],'attributes':_0x35ab53[_0xa750('0x20')]};}):[]};}):[]};}):[]:[]})[_0xa750('0xe')](function(_0x579f1c){logger[_0xa750('0xf')](_0xa750('0x21'),_0x3fa031);logger[_0xa750('0x11')](_0xa750('0x21'),_0x3fa031,JSON[_0xa750('0x22')](_0x579f1c));_0x174a8c(_0x579f1c);})['catch'](function(_0x46cc11){logger['error'](_0xa750('0x21'),_0x46cc11[_0xa750('0x16')],_0x3fa031);_0x4a007d(_0x4f170f['error'](0x1f4,_0x46cc11[_0xa750('0x16')]));});});};exports[_0xa750('0x23')]=function(_0x5e66fd){var _0x314f88=this;return new Promise(function(_0xbf5164,_0xe59fe7){return db[_0xa750('0x19')][_0xa750('0x24')]({'raw':_0x5e66fd['options']?_0x5e66fd[_0xa750('0x1a')]['raw']===undefined?!![]:![]:!![],'where':_0x5e66fd[_0xa750('0x1a')]?_0x5e66fd[_0xa750('0x1a')][_0xa750('0x1b')]||null:null,'attributes':_0x5e66fd[_0xa750('0x1a')]?_0x5e66fd['options'][_0xa750('0x20')]||null:null,'include':_0x5e66fd[_0xa750('0x1a')]?_0x5e66fd['options'][_0xa750('0x1d')]?_[_0xa750('0x1e')](_0x5e66fd[_0xa750('0x1a')][_0xa750('0x1d')],function(_0x4b13fc){return{'model':db[_0x4b13fc[_0xa750('0x1f')]],'as':_0x4b13fc['as'],'attributes':_0x4b13fc['attributes'],'include':_0x4b13fc['include']?_[_0xa750('0x1e')](_0x4b13fc[_0xa750('0x1d')],function(_0xaa626c){return{'model':db[_0xaa626c['model']],'as':_0xaa626c['as'],'attributes':_0xaa626c[_0xa750('0x20')],'include':_0xaa626c[_0xa750('0x1d')]?_[_0xa750('0x1e')](_0xaa626c['include'],function(_0x37abd2){return{'model':db[_0x37abd2[_0xa750('0x1f')]],'as':_0x37abd2['as'],'attributes':_0x37abd2[_0xa750('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x1d09fb){logger[_0xa750('0xf')](_0xa750('0x23'),_0x5e66fd);logger['debug'](_0xa750('0x23'),_0x5e66fd,JSON[_0xa750('0x22')](_0x1d09fb));_0xbf5164(_0x1d09fb);})[_0xa750('0x18')](function(_0x10589b){logger['error']('ShowMailAccount',_0x10589b[_0xa750('0x16')],_0x5e66fd);_0xe59fe7(_0x314f88[_0xa750('0x14')](0x1f4,_0x10589b['message']));});});};exports[_0xa750('0x25')]=function(_0x2f57e9){var _0x15d35a=this;return new Promise(function(_0x1166ff,_0x302a79){var _0x5e0bdf={'body':_0x2f57e9[_0xa750('0x26')],'channel':_0xa750('0x27')};var _0x847081=_[_0xa750('0x28')](_[_0xa750('0x29')](db[_0xa750('0x2a')][_0xa750('0x2b')]),['createdAt',_0xa750('0x2c'),'CompanyId',_0xa750('0x2d')]);var _0x4ab922=![];if(_0x2f57e9[_0xa750('0x26')]['id']){delete _0x2f57e9[_0xa750('0x26')]['id'];}if(_[_0xa750('0x2e')](_0x2f57e9[_0xa750('0x26')][_0xa750('0x2f')])){return _0x302a79(_0x15d35a[_0xa750('0x14')](0x1f4,_0xa750('0x30')));}if(_[_0xa750('0x2e')](_0x2f57e9[_0xa750('0x26')][_0xa750('0x26')])||_0x2f57e9[_0xa750('0x26')][_0xa750('0x26')]===''){return _0x302a79(_0x15d35a[_0xa750('0x14')](0x1f4,_0xa750('0x31')));}if(_[_0xa750('0x2e')](_0x2f57e9[_0xa750('0x26')][_0xa750('0x32')])){return _0x302a79(_0x15d35a[_0xa750('0x14')](0x1f4,_0xa750('0x33')+_0x847081));}if(!_[_0xa750('0x34')](_0x847081,_0x2f57e9['body'][_0xa750('0x32')])){return _0x302a79(_0x15d35a[_0xa750('0x14')](0x1f4,_0xa750('0x35')+_0x847081));}var _0xedd9e={};_0xedd9e[_0x2f57e9[_0xa750('0x26')][_0xa750('0x32')]]=_0x2f57e9[_0xa750('0x26')][_0xa750('0x2f')];return db[_0xa750('0x19')]['find']({'where':{'id':_0x2f57e9[_0xa750('0x36')]['id']},'include':[{'model':db[_0xa750('0x37')],'as':'List','include':[{'model':db[_0xa750('0x2a')],'as':_0xa750('0x38'),'where':_0xedd9e,'limit':0x1,'order':[[_0xa750('0x2c'),_0xa750('0x39')]]}]},{'model':db[_0xa750('0x3a')],'as':_0xa750('0x3b')},{'model':db[_0xa750('0x3c')],'as':_0xa750('0x3d')}]})[_0xa750('0xe')](function(_0x6cd49f){if(_0x6cd49f&&_0x6cd49f['List']){var _0x3be7d9=_0x6cd49f[_0xa750('0x3e')]({'plain':!![]});_0x5e0bdf['account']=_[_0xa750('0x3f')](_0x3be7d9,[_0xa750('0x3b'),_0xa750('0x40')]);_0x5e0bdf['applications']=_0x3be7d9[_0xa750('0x3b')];_0x5e0bdf[_0xa750('0x41')]=_0x3be7d9[_0xa750('0x40')];_0x5e0bdf[_0xa750('0x42')]=_['orderBy'](_0x5e0bdf[_0xa750('0x42')],[_0xa750('0x43')],[_0xa750('0x44')]);if(_0x5e0bdf[_0xa750('0x36')]&&_0x5e0bdf['account'][_0xa750('0x45')]){_0x5e0bdf[_0xa750('0x42')]['push']({'id':0x0,'priority':_0x5e0bdf[_0xa750('0x42')]['length']+0x1,'app':_0xa750('0x46'),'appdata':_0xa750('0x45'),'interval':'*,*,*,*'});}if(_0x5e0bdf['account']['Applications']){delete _0x5e0bdf[_0xa750('0x36')][_0xa750('0x3b')];}if(_0x5e0bdf['account'][_0xa750('0x40')]){delete _0x5e0bdf[_0xa750('0x36')][_0xa750('0x40')];}if(_0x3be7d9['List']['Contacts']['length']){return _0x3be7d9['List'][_0xa750('0x38')][0x0];}var _0x4a1b5d=_[_0xa750('0xc')](_0x2f57e9[_0xa750('0x26')],{'firstName':_0x2f57e9['body'][_0xa750('0x2f')],'ListId':_0x3be7d9['ListId']});_0x4a1b5d[_0x2f57e9[_0xa750('0x26')]['mapKey']]=_0x2f57e9['body']['from'];return db['CmContact'][_0xa750('0x47')](_0x4a1b5d);}else{throw new Error(_0xa750('0x48'));}})['then'](function(_0x552578){_0x5e0bdf['contact']=_0x552578;if(_0x552578){if(!_0x2f57e9[_0xa750('0x26')][_0xa750('0x16')][_0xa750('0x49')]){_0x2f57e9[_0xa750('0x26')][_0xa750('0x16')][_0xa750('0x49')]=rs['generate']()+'\x20'+_0x2f57e9['body'][_0xa750('0x16')][_0xa750('0x2f')];}var _0x13d729={'ContactId':_0x552578['id'],'MailAccountId':_0x2f57e9[_0xa750('0x36')]['id'],'inReplyTo':_0x2f57e9[_0xa750('0x26')]['message'][_0xa750('0x49')],'to':_0x2f57e9[_0xa750('0x26')][_0xa750('0x16')][_0xa750('0x2f')],'cc':_0x2f57e9[_0xa750('0x26')][_0xa750('0x16')]['cc'],'subject':_0x2f57e9[_0xa750('0x26')][_0xa750('0x16')]['subject'],'attach':_0x2f57e9[_0xa750('0x26')][_0xa750('0x16')][_0xa750('0x4a')],'lastMsgAt':moment()[_0xa750('0x4b')](_0xa750('0x4c')),'lastMsgDirection':'in','lastMsgBody':_0x2f57e9['body'][_0xa750('0x26')]};return db[_0xa750('0x4d')][_0xa750('0x24')]({'where':{'closed':![],'MailAccountId':_0x2f57e9[_0xa750('0x36')]['id']},'include':[{'model':db[_0xa750('0x4e')],'as':_0xa750('0x4f'),'attributes':[_0xa750('0x49')],'where':{'messageId':_0x2f57e9[_0xa750('0x26')][_0xa750('0x16')][_0xa750('0x50')]}}]})[_0xa750('0xe')](function(_0x3e0ec8){if(_0x3e0ec8){return[_0x3e0ec8,![]];}return db[_0xa750('0x4d')][_0xa750('0x47')](_0x13d729)[_0xa750('0xe')](function(_0x313732){return[_0x313732,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0xa750('0x51')](function(_0x4ad344,_0x182d2e){if(_0x4ad344){_0x4ab922=_0x182d2e;if(!_0x182d2e){return _0x4ad344[_0xa750('0x52')]({'inReplyTo':_0x2f57e9[_0xa750('0x26')]['message'][_0xa750('0x49')],'to':_0x2f57e9[_0xa750('0x26')][_0xa750('0x16')][_0xa750('0x2f')],'cc':_0x2f57e9[_0xa750('0x26')][_0xa750('0x16')]['cc'],'subject':_0x2f57e9['body'][_0xa750('0x16')][_0xa750('0x53')],'attach':_0x4ad344['attach']?_0x4ad344[_0xa750('0x4a')]:_0x2f57e9[_0xa750('0x26')][_0xa750('0x16')][_0xa750('0x4a')],'substatus':null,'substatusAt':moment()[_0xa750('0x4b')](_0xa750('0x4c')),'lastMsgAt':moment()[_0xa750('0x4b')](_0xa750('0x4c')),'lastMsgDirection':'in','lastMsgBody':_0x2f57e9[_0xa750('0x26')][_0xa750('0x26')]});}else{return _0x4ad344;}}})[_0xa750('0xe')](function(_0x5d3ae2){_0x5e0bdf['interaction']=_0x5d3ae2[_0xa750('0x3e')]({'plain':!![]});_0x5e0bdf[_0xa750('0x54')][_0xa750('0x55')]=_0x4ab922;return db[_0xa750('0x4e')]['create']({'body':_0x2f57e9[_0xa750('0x26')][_0xa750('0x26')],'MailAccountId':_0x2f57e9[_0xa750('0x36')]['id'],'MailInteractionId':_0x5d3ae2['id'],'direction':'in','ContactId':_0x5e0bdf[_0xa750('0x56')]['id'],'messageId':_0x2f57e9[_0xa750('0x26')][_0xa750('0x16')][_0xa750('0x49')],'from':_0x2f57e9[_0xa750('0x26')][_0xa750('0x16')][_0xa750('0x2f')],'to':_0x2f57e9[_0xa750('0x26')]['message']['to'],'cc':_0x2f57e9['body'][_0xa750('0x16')]['cc'],'subject':_0x2f57e9['body']['message'][_0xa750('0x53')],'attach':_0x2f57e9[_0xa750('0x26')][_0xa750('0x16')][_0xa750('0x4a')],'Attachments':_0x2f57e9[_0xa750('0x26')]['message'][_0xa750('0x57')],'originTo':_0x2f57e9[_0xa750('0x26')][_0xa750('0x16')][_0xa750('0x58')],'originCc':_0x2f57e9[_0xa750('0x26')][_0xa750('0x16')]['originCc'],'bcc':_0x2f57e9['body'][_0xa750('0x16')][_0xa750('0x59')]},{'include':[{'model':db[_0xa750('0x5a')],'as':_0xa750('0x5b')}]});})[_0xa750('0xe')](function(_0x18f74f){_0x5e0bdf[_0xa750('0x16')]=_0x18f74f;if(_0x5e0bdf[_0xa750('0x54')]['UserId']){return db[_0xa750('0x5c')]['find']({'attributes':['id','name'],'where':{'id':_0x5e0bdf[_0xa750('0x54')][_0xa750('0x5d')]}})[_0xa750('0xe')](function(_0x1f5ee4){if(_0x1f5ee4){_0x5e0bdf['applications'][_0xa750('0x5e')]({'id':0x0,'priority':0x0,'app':_0xa750('0x5f'),'appdata':_0x1f5ee4[_0xa750('0x60')]+','+(_0x5e0bdf[_0xa750('0x36')]['waitForTheAssignedAgent']||0xa),'interval':_0xa750('0x61')});}return respondWithRpcPromise(_0xa750('0x62'),_0xa750('0x63'),_0x5e0bdf);});}return respondWithRpcPromise(_0xa750('0x62'),_0xa750('0x63'),_0x5e0bdf);})[_0xa750('0xe')](function(_0x40a7f9){_0x1166ff(_0x40a7f9);})[_0xa750('0x18')](function(_0x51ea09){_0x302a79(_0x15d35a['error'](0x1f4,_0x51ea09[_0xa750('0x16')]));});});};