Built motion from commit (unavailable).|2.5.17
[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 _0xbc8b=['mail','difference','keys','rawAttributes','createdAt','updatedAt','ListId','isNil','from','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','account','CmList','List','CmContact','MailApplication','Applications','get','omit','list','orderBy','priority','asc','autoclose','applications','push','length','close','Contacts','List\x20not\x20found','contact','messageId','subject','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','inReplyTo','Contact\x20not\x20found','spread','update','attach','format','interaction','created','create','attachments','originTo','originCc','Attachment','Attachments','UserId','User','name','agent','waitForTheAssignedAgent','startRouting','Start','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','localhost','./mailAccount.socket','register','request','then','info','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','error','code','MailAccount,\x20%s,\x20%s','message','result','catch','GetMailAccount','MailAccount','findAll','options','raw','attributes','include','model','map','stringify','find','ShowMailAccount','NotifyMailAccount','body'];(function(_0x51f21e,_0xb2429){var _0x1e900d=function(_0x2696b2){while(--_0x2696b2){_0x51f21e['push'](_0x51f21e['shift']());}};_0x1e900d(++_0xb2429);}(_0xbc8b,0x16b));var _0xbbc8=function(_0x618414,_0x1a7a60){_0x618414=_0x618414-0x0;var _0x21c19a=_0xbc8b[_0x618414];return _0x21c19a;};'use strict';var _=require('lodash');var util=require(_0xbbc8('0x0'));var moment=require('moment');var BPromise=require(_0xbbc8('0x1'));var rs=require(_0xbbc8('0x2'));var fs=require('fs');var Redis=require(_0xbbc8('0x3'));var db=require(_0xbbc8('0x4'))['db'];var utils=require(_0xbbc8('0x5'));var logger=require(_0xbbc8('0x6'))('rpc');var config=require(_0xbbc8('0x7'));var jayson=require(_0xbbc8('0x8'));var client=jayson[_0xbbc8('0x9')][_0xbbc8('0xa')]({'port':0x232c});config[_0xbbc8('0xb')]=_['defaults'](config[_0xbbc8('0xb')],{'host':_0xbbc8('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xbbc8('0xb')]));require(_0xbbc8('0xd'))[_0xbbc8('0xe')](socket);function respondWithRpcPromise(_0x468ee5,_0x2bbe15,_0x16ae40){return new BPromise(function(_0x2f8387,_0x44d8a4){return client[_0xbbc8('0xf')](_0x468ee5,_0x16ae40)[_0xbbc8('0x10')](function(_0x3953df){logger[_0xbbc8('0x11')]('MailAccount,\x20%s,\x20%s',_0x2bbe15,_0xbbc8('0x12'));logger[_0xbbc8('0x13')](_0xbbc8('0x14'),_0x2bbe15,'request\x20sent',JSON['stringify'](_0x3953df));if(_0x3953df[_0xbbc8('0x15')]){if(_0x3953df['error'][_0xbbc8('0x16')]===0x1f4){logger[_0xbbc8('0x15')](_0xbbc8('0x17'),_0x2bbe15,_0x3953df[_0xbbc8('0x15')][_0xbbc8('0x18')]);return _0x44d8a4(_0x3953df[_0xbbc8('0x15')][_0xbbc8('0x18')]);}logger[_0xbbc8('0x15')](_0xbbc8('0x17'),_0x2bbe15,_0x3953df[_0xbbc8('0x15')][_0xbbc8('0x18')]);return _0x2f8387(_0x3953df[_0xbbc8('0x15')][_0xbbc8('0x18')]);}else{logger[_0xbbc8('0x11')]('MailAccount,\x20%s,\x20%s',_0x2bbe15,_0xbbc8('0x12'));_0x2f8387(_0x3953df[_0xbbc8('0x19')][_0xbbc8('0x18')]);}})[_0xbbc8('0x1a')](function(_0x585442){logger[_0xbbc8('0x15')]('MailAccount,\x20%s,\x20%s',_0x2bbe15,_0x585442);_0x44d8a4(_0x585442);});});}exports[_0xbbc8('0x1b')]=function(_0x442b6b){var _0x54edc3=this;return new Promise(function(_0x3f1db0,_0x1f7576){return db[_0xbbc8('0x1c')][_0xbbc8('0x1d')]({'raw':_0x442b6b[_0xbbc8('0x1e')]?_0x442b6b[_0xbbc8('0x1e')][_0xbbc8('0x1f')]===undefined?!![]:![]:!![],'where':_0x442b6b['options']?_0x442b6b[_0xbbc8('0x1e')]['where']||null:null,'attributes':_0x442b6b[_0xbbc8('0x1e')]?_0x442b6b[_0xbbc8('0x1e')][_0xbbc8('0x20')]||null:null,'limit':_0x442b6b[_0xbbc8('0x1e')]?_0x442b6b[_0xbbc8('0x1e')]['limit']||null:null,'include':_0x442b6b[_0xbbc8('0x1e')]?_0x442b6b[_0xbbc8('0x1e')]['include']?_['map'](_0x442b6b['options'][_0xbbc8('0x21')],function(_0x31fc9b){return{'model':db[_0x31fc9b[_0xbbc8('0x22')]],'as':_0x31fc9b['as'],'attributes':_0x31fc9b[_0xbbc8('0x20')],'include':_0x31fc9b[_0xbbc8('0x21')]?_[_0xbbc8('0x23')](_0x31fc9b[_0xbbc8('0x21')],function(_0xb8bea0){return{'model':db[_0xb8bea0['model']],'as':_0xb8bea0['as'],'attributes':_0xb8bea0[_0xbbc8('0x20')],'include':_0xb8bea0[_0xbbc8('0x21')]?_[_0xbbc8('0x23')](_0xb8bea0['include'],function(_0x186572){return{'model':db[_0x186572[_0xbbc8('0x22')]],'as':_0x186572['as'],'attributes':_0x186572['attributes']};}):[]};}):[]};}):[]:[]})[_0xbbc8('0x10')](function(_0x56ce6b){logger['info'](_0xbbc8('0x1b'),_0x442b6b);logger[_0xbbc8('0x13')](_0xbbc8('0x1b'),_0x442b6b,JSON[_0xbbc8('0x24')](_0x56ce6b));_0x3f1db0(_0x56ce6b);})[_0xbbc8('0x1a')](function(_0x3f3fdc){logger['error']('GetMailAccount',_0x3f3fdc[_0xbbc8('0x18')],_0x442b6b);_0x1f7576(_0x54edc3[_0xbbc8('0x15')](0x1f4,_0x3f3fdc[_0xbbc8('0x18')]));});});};exports['ShowMailAccount']=function(_0x296cfc){var _0x2db1ea=this;return new Promise(function(_0x42a658,_0x361d6a){return db[_0xbbc8('0x1c')][_0xbbc8('0x25')]({'raw':_0x296cfc[_0xbbc8('0x1e')]?_0x296cfc[_0xbbc8('0x1e')][_0xbbc8('0x1f')]===undefined?!![]:![]:!![],'where':_0x296cfc[_0xbbc8('0x1e')]?_0x296cfc[_0xbbc8('0x1e')]['where']||null:null,'attributes':_0x296cfc[_0xbbc8('0x1e')]?_0x296cfc[_0xbbc8('0x1e')][_0xbbc8('0x20')]||null:null,'include':_0x296cfc[_0xbbc8('0x1e')]?_0x296cfc[_0xbbc8('0x1e')][_0xbbc8('0x21')]?_[_0xbbc8('0x23')](_0x296cfc[_0xbbc8('0x1e')][_0xbbc8('0x21')],function(_0x146114){return{'model':db[_0x146114['model']],'as':_0x146114['as'],'attributes':_0x146114[_0xbbc8('0x20')],'include':_0x146114[_0xbbc8('0x21')]?_[_0xbbc8('0x23')](_0x146114[_0xbbc8('0x21')],function(_0x1a73a0){return{'model':db[_0x1a73a0[_0xbbc8('0x22')]],'as':_0x1a73a0['as'],'attributes':_0x1a73a0['attributes'],'include':_0x1a73a0[_0xbbc8('0x21')]?_[_0xbbc8('0x23')](_0x1a73a0[_0xbbc8('0x21')],function(_0xe07825){return{'model':db[_0xe07825['model']],'as':_0xe07825['as'],'attributes':_0xe07825[_0xbbc8('0x20')]};}):[]};}):[]};}):[]:[]})[_0xbbc8('0x10')](function(_0x1c3584){logger[_0xbbc8('0x11')](_0xbbc8('0x26'),_0x296cfc);logger['debug'](_0xbbc8('0x26'),_0x296cfc,JSON[_0xbbc8('0x24')](_0x1c3584));_0x42a658(_0x1c3584);})[_0xbbc8('0x1a')](function(_0x43cf9b){logger['error']('ShowMailAccount',_0x43cf9b[_0xbbc8('0x18')],_0x296cfc);_0x361d6a(_0x2db1ea['error'](0x1f4,_0x43cf9b[_0xbbc8('0x18')]));});});};exports[_0xbbc8('0x27')]=function(_0x14b16c){var _0x5ed5d2=this;return new Promise(function(_0x12bbd5,_0x5db70f){var _0x4af295={'body':_0x14b16c[_0xbbc8('0x28')],'channel':_0xbbc8('0x29')};var _0x596679=_[_0xbbc8('0x2a')](_[_0xbbc8('0x2b')](db['CmContact'][_0xbbc8('0x2c')]),[_0xbbc8('0x2d'),_0xbbc8('0x2e'),'CompanyId',_0xbbc8('0x2f')]);var _0x76fe62=![];if(_0x14b16c[_0xbbc8('0x28')]['id']){delete _0x14b16c['body']['id'];}if(_[_0xbbc8('0x30')](_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x31')])){return _0x5db70f(_0x5ed5d2[_0xbbc8('0x15')](0x1f4,_0xbbc8('0x32')));}if(_[_0xbbc8('0x30')](_0x14b16c['body'][_0xbbc8('0x28')])||_0x14b16c[_0xbbc8('0x28')]['body']===''){return _0x5db70f(_0x5ed5d2[_0xbbc8('0x15')](0x1f4,_0xbbc8('0x33')));}if(_[_0xbbc8('0x30')](_0x14b16c['body'][_0xbbc8('0x34')])){return _0x5db70f(_0x5ed5d2[_0xbbc8('0x15')](0x1f4,_0xbbc8('0x35')+_0x596679));}if(!_['includes'](_0x596679,_0x14b16c[_0xbbc8('0x28')]['mapKey'])){return _0x5db70f(_0x5ed5d2[_0xbbc8('0x15')](0x1f4,_0xbbc8('0x36')+_0x596679));}var _0x24469a={};_0x24469a[_0x14b16c['body'][_0xbbc8('0x34')]]=_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x31')];return db['MailAccount'][_0xbbc8('0x25')]({'where':{'id':_0x14b16c[_0xbbc8('0x37')]['id']},'include':[{'model':db[_0xbbc8('0x38')],'as':_0xbbc8('0x39'),'include':[{'model':db[_0xbbc8('0x3a')],'as':'Contacts','where':_0x24469a,'limit':0x1,'order':[[_0xbbc8('0x2e'),'DESC']]}]},{'model':db[_0xbbc8('0x3b')],'as':_0xbbc8('0x3c')},{'model':db['MailServerOut'],'as':'Smtp'}]})[_0xbbc8('0x10')](function(_0x48a8e7){if(_0x48a8e7&&_0x48a8e7[_0xbbc8('0x39')]){var _0x21a143=_0x48a8e7[_0xbbc8('0x3d')]({'plain':!![]});_0x4af295[_0xbbc8('0x37')]=_[_0xbbc8('0x3e')](_0x21a143,[_0xbbc8('0x3c'),_0xbbc8('0x39')]);_0x4af295['applications']=_0x21a143[_0xbbc8('0x3c')];_0x4af295[_0xbbc8('0x3f')]=_0x21a143['List'];_0x4af295['applications']=_[_0xbbc8('0x40')](_0x4af295['applications'],[_0xbbc8('0x41')],[_0xbbc8('0x42')]);if(_0x4af295[_0xbbc8('0x37')]&&_0x4af295[_0xbbc8('0x37')][_0xbbc8('0x43')]){_0x4af295[_0xbbc8('0x44')][_0xbbc8('0x45')]({'id':0x0,'priority':_0x4af295[_0xbbc8('0x44')][_0xbbc8('0x46')]+0x1,'app':_0xbbc8('0x47'),'appdata':_0xbbc8('0x43'),'interval':'*,*,*,*'});}if(_0x4af295[_0xbbc8('0x37')][_0xbbc8('0x3c')]){delete _0x4af295[_0xbbc8('0x37')][_0xbbc8('0x3c')];}if(_0x4af295[_0xbbc8('0x37')][_0xbbc8('0x39')]){delete _0x4af295[_0xbbc8('0x37')][_0xbbc8('0x39')];}if(_0x21a143['List'][_0xbbc8('0x48')][_0xbbc8('0x46')]){return _0x21a143[_0xbbc8('0x39')][_0xbbc8('0x48')][0x0];}var _0x115013=_['defaults'](_0x14b16c[_0xbbc8('0x28')],{'firstName':_0x14b16c['body'][_0xbbc8('0x31')],'ListId':_0x21a143[_0xbbc8('0x2f')]});_0x115013[_0x14b16c[_0xbbc8('0x28')]['mapKey']]=_0x14b16c[_0xbbc8('0x28')]['from'];return db[_0xbbc8('0x3a')]['create'](_0x115013);}else{throw new Error(_0xbbc8('0x49'));}})[_0xbbc8('0x10')](function(_0x27f4c9){_0x4af295[_0xbbc8('0x4a')]=_0x27f4c9;if(_0x27f4c9){if(!_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x18')][_0xbbc8('0x4b')]){_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x18')][_0xbbc8('0x4b')]=rs['generate']()+'\x20'+_0x14b16c[_0xbbc8('0x28')]['message']['from'];}var _0x3c86fe={'ContactId':_0x27f4c9['id'],'MailAccountId':_0x14b16c[_0xbbc8('0x37')]['id'],'inReplyTo':_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x18')][_0xbbc8('0x4b')],'to':_0x14b16c[_0xbbc8('0x28')]['message'][_0xbbc8('0x31')],'cc':_0x14b16c[_0xbbc8('0x28')]['message']['cc'],'subject':_0x14b16c[_0xbbc8('0x28')]['message'][_0xbbc8('0x4c')],'attach':_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x18')]['attach'],'lastMsgAt':moment()['format'](_0xbbc8('0x4d')),'lastMsgDirection':'in','lastMsgBody':_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x28')]};return db[_0xbbc8('0x4e')][_0xbbc8('0x25')]({'where':{'closed':![],'MailAccountId':_0x14b16c[_0xbbc8('0x37')]['id']},'include':[{'model':db[_0xbbc8('0x4f')],'as':'Messages','attributes':[_0xbbc8('0x4b')],'where':{'messageId':_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x18')][_0xbbc8('0x50')]}}]})['then'](function(_0x31a1a9){if(_0x31a1a9){return[_0x31a1a9,![]];}return db['MailInteraction']['create'](_0x3c86fe)[_0xbbc8('0x10')](function(_0x12404f){return[_0x12404f,!![]];});});}else{throw new Error(_0xbbc8('0x51'));}})[_0xbbc8('0x52')](function(_0x11cc24,_0x4b3154){if(_0x11cc24){_0x76fe62=_0x4b3154;if(!_0x4b3154){return _0x11cc24[_0xbbc8('0x53')]({'inReplyTo':_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x18')][_0xbbc8('0x4b')],'to':_0x14b16c['body'][_0xbbc8('0x18')][_0xbbc8('0x31')],'cc':_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x18')]['cc'],'subject':_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x18')][_0xbbc8('0x4c')],'attach':_0x11cc24[_0xbbc8('0x54')]?_0x11cc24[_0xbbc8('0x54')]:_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x18')][_0xbbc8('0x54')],'substatus':null,'substatusAt':moment()['format'](_0xbbc8('0x4d')),'lastMsgAt':moment()[_0xbbc8('0x55')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in','lastMsgBody':_0x14b16c['body'][_0xbbc8('0x28')]});}else{return _0x11cc24;}}})[_0xbbc8('0x10')](function(_0x54cfd7){_0x4af295[_0xbbc8('0x56')]=_0x54cfd7[_0xbbc8('0x3d')]({'plain':!![]});_0x4af295[_0xbbc8('0x56')][_0xbbc8('0x57')]=_0x76fe62;return db[_0xbbc8('0x4f')][_0xbbc8('0x58')]({'body':_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x28')],'MailAccountId':_0x14b16c[_0xbbc8('0x37')]['id'],'MailInteractionId':_0x54cfd7['id'],'direction':'in','ContactId':_0x4af295[_0xbbc8('0x4a')]['id'],'messageId':_0x14b16c['body'][_0xbbc8('0x18')][_0xbbc8('0x4b')],'from':_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x18')][_0xbbc8('0x31')],'to':_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x18')]['to'],'cc':_0x14b16c['body'][_0xbbc8('0x18')]['cc'],'subject':_0x14b16c[_0xbbc8('0x28')]['message'][_0xbbc8('0x4c')],'attach':_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x18')][_0xbbc8('0x54')],'Attachments':_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x18')][_0xbbc8('0x59')],'originTo':_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x18')][_0xbbc8('0x5a')],'originCc':_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x18')][_0xbbc8('0x5b')],'bcc':_0x14b16c[_0xbbc8('0x28')][_0xbbc8('0x18')]['bcc']},{'include':[{'model':db[_0xbbc8('0x5c')],'as':_0xbbc8('0x5d')}]});})[_0xbbc8('0x10')](function(_0x7e96db){_0x4af295[_0xbbc8('0x18')]=_0x7e96db;if(_0x4af295[_0xbbc8('0x56')][_0xbbc8('0x5e')]){return db[_0xbbc8('0x5f')]['find']({'attributes':['id',_0xbbc8('0x60')],'where':{'id':_0x4af295['interaction']['UserId']}})['then'](function(_0x4d3e0b){if(_0x4d3e0b){_0x4af295[_0xbbc8('0x44')]['unshift']({'id':0x0,'priority':0x0,'app':_0xbbc8('0x61'),'appdata':_0x4d3e0b[_0xbbc8('0x60')]+','+(_0x4af295[_0xbbc8('0x37')][_0xbbc8('0x62')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise('Start',_0xbbc8('0x63'),_0x4af295);});}return respondWithRpcPromise(_0xbbc8('0x64'),_0xbbc8('0x63'),_0x4af295);})[_0xbbc8('0x10')](function(_0x5adad3){_0x12bbd5(_0x5adad3);})['catch'](function(_0x54167c){_0x5db70f(_0x5ed5d2['error'](0x1f4,_0x54167c[_0xbbc8('0x18')]));});});};