Built motion from commit (unavailable).|2.5.31
[motion2.git] / server / api / whatsappMessage / whatsappMessage.controller.js
index f69a630..1aa7930 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xeedb=['error','code','message','catch','status','end','json','count','offset','limit','set','apply','reject','update','destroy','sendStatus','stack','name','send','index','WhatsappMessage','rawAttributes','fieldName','type','key','model','map','query','keys','intersection','attributes','fields','length','nolimit','order','sort','where','filters','filter','merge','VIRTUAL','options','includeAll','findAll','rows','show','params','include','find','create','body','describe','whatsapp-interactions','accept','read','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','Contact','get','WhatsappInteraction','isNil','read1stAt','interaction','[WHATSAPPMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','manual','interface','SIP/%s','channel','EventManager','whatsapp','WhatsappInteractionId','[WHATSAPPMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','stringify','RejectMessage','rejectMessage','event','rejectmessage','WhatsappAccount','WhatsappAccountId','WhatsppMessage,\x20%s,\x20%s,\x20%s','received\x20delivery\x20report\x20from','inspect','twilio','MessageSid','messageId','MessageStatus','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','socket.io-emitter','./whatsappMessage.socket','jayson/promise','client','http','test','Sequelize','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','then','info','WhatsappMessage,\x20%s,\x20%s','request\x20sent','WhatsappMessage,\x20%s,\x20%s,\x20%s'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xeedb,0x164));var _0xbeed=function(_0x46aff0,_0x122890){_0x46aff0=_0x46aff0-0x0;var _0x9d78cf=_0xeedb[_0x46aff0];return _0x9d78cf;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xbeed('0x0'));var rimraf=require(_0xbeed('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xbeed('0x2'));var rp=require(_0xbeed('0x3'));var moment=require('moment');var BPromise=require(_0xbeed('0x4'));var Mustache=require(_0xbeed('0x5'));var util=require(_0xbeed('0x6'));var path=require(_0xbeed('0x7'));var sox=require(_0xbeed('0x8'));var csv=require(_0xbeed('0x9'));var ejs=require(_0xbeed('0xa'));var fs=require('fs');var _=require(_0xbeed('0xb'));var squel=require(_0xbeed('0xc'));var crypto=require(_0xbeed('0xd'));var jsforce=require(_0xbeed('0xe'));var deskjs=require(_0xbeed('0xf'));var toCsv=require(_0xbeed('0x9'));var querystring=require(_0xbeed('0x10'));var Papa=require(_0xbeed('0x11'));var Redis=require(_0xbeed('0x12'));var authService=require(_0xbeed('0x13'));var qs=require(_0xbeed('0x14'));var as=require(_0xbeed('0x15'));var hardwareService=require(_0xbeed('0x16'));var logger=require(_0xbeed('0x17'))('api');var utils=require(_0xbeed('0x18'));var config=require(_0xbeed('0x19'));var db=require(_0xbeed('0x1a'))['db'];config['redis']=_[_0xbeed('0x1b')](config[_0xbeed('0x1c')],{'host':'localhost','port':0x18eb});var socket=require(_0xbeed('0x1d'))(new Redis(config[_0xbeed('0x1c')]));require(_0xbeed('0x1e'))['register'](socket);var jayson=require(_0xbeed('0x1f'));var client=jayson[_0xbeed('0x20')][_0xbeed('0x21')]({'port':0x232c});var client9002=jayson[_0xbeed('0x20')]['http']({'port':0x232a});function checkPasswordPattern(_0xde15dc,_0x536db0,_0xef593){if(_0xef593){var _0x1a5d02=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x1a5d02[_0xbeed('0x22')](_0x536db0)){return _0xde15dc;}else{throw new db[(_0xbeed('0x23'))][(_0xbeed('0x24'))](_0xbeed('0x25'));}}else{return _0xde15dc;}}function respondWithRpcPromise(_0x10f01f,_0xf8218d,_0x369ca0,_0x2f6c22){return new BPromise(function(_0x837b18,_0x3b970e){var _0x548442=_0x2f6c22||client;return _0x548442['request'](_0x10f01f,_0x369ca0)[_0xbeed('0x26')](function(_0x47aa1c){logger[_0xbeed('0x27')](_0xbeed('0x28'),_0xf8218d,_0xbeed('0x29'));logger['debug'](_0xbeed('0x2a'),_0xf8218d,'request\x20sent',JSON['stringify'](_0x47aa1c));if(_0x47aa1c['error']){if(_0x47aa1c[_0xbeed('0x2b')][_0xbeed('0x2c')]===0x1f4){logger[_0xbeed('0x2b')](_0xbeed('0x28'),_0xf8218d,_0x47aa1c[_0xbeed('0x2b')][_0xbeed('0x2d')]);return _0x3b970e(_0x47aa1c[_0xbeed('0x2b')]['message']);}logger[_0xbeed('0x2b')](_0xbeed('0x28'),_0xf8218d,_0x47aa1c[_0xbeed('0x2b')][_0xbeed('0x2d')]);return _0x837b18(_0x47aa1c[_0xbeed('0x2b')][_0xbeed('0x2d')]);}else{logger[_0xbeed('0x27')](_0xbeed('0x28'),_0xf8218d,_0xbeed('0x29'));_0x837b18(_0x47aa1c['result'][_0xbeed('0x2d')]);}})[_0xbeed('0x2e')](function(_0x1cc9cf){logger[_0xbeed('0x2b')](_0xbeed('0x28'),_0xf8218d,_0x1cc9cf);_0x3b970e(_0x1cc9cf);});});}function respondWithStatusCode(_0x4f223b,_0x218563){_0x218563=_0x218563||0xcc;return function(_0x143988){if(_0x143988){return _0x4f223b['sendStatus'](_0x218563);}return _0x4f223b[_0xbeed('0x2f')](_0x218563)[_0xbeed('0x30')]();};}function respondWithResult(_0x5d1c69,_0x4133f8){_0x4133f8=_0x4133f8||0xc8;return function(_0x38537d){if(_0x38537d){return _0x5d1c69[_0xbeed('0x2f')](_0x4133f8)[_0xbeed('0x31')](_0x38537d);}};}function respondWithFilteredResult(_0x2f880f,_0x5d1cc7){return function(_0x13e0b9){if(_0x13e0b9){var _0x2bdff2=_0x13e0b9[_0xbeed('0x32')],_0xfea139=_0x5d1cc7[_0xbeed('0x33')],_0x3cf850=_0x5d1cc7[_0xbeed('0x33')]+_0x5d1cc7[_0xbeed('0x34')],_0x5ba25c;if(_0x3cf850>=_0x2bdff2){_0x3cf850=_0x2bdff2;_0x5ba25c=0xc8;}else{_0x5ba25c=0xce;}_0x2f880f[_0xbeed('0x2f')](_0x5ba25c);return _0x2f880f[_0xbeed('0x35')]('Content-Range',_0xfea139+'-'+_0x3cf850+'/'+_0x2bdff2)[_0xbeed('0x31')](_0x13e0b9);}return null;};}function patchUpdates(_0x555acf){return function(_0xb48b8b){try{jsonpatch[_0xbeed('0x36')](_0xb48b8b,_0x555acf,!![]);}catch(_0x94220d){return BPromise[_0xbeed('0x37')](_0x94220d);}return _0xb48b8b['save']();};}function saveUpdates(_0x1c04b9,_0x7bb48d){return function(_0x2b697b){if(_0x2b697b){return _0x2b697b[_0xbeed('0x38')](_0x1c04b9)['then'](function(_0x415f37){return _0x415f37;});}return null;};}function removeEntity(_0x2f492d,_0xa58f74){return function(_0x5381e9){if(_0x5381e9){return _0x5381e9[_0xbeed('0x39')]()[_0xbeed('0x26')](function(){_0x2f492d['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0xd8dad,_0xa5cfa8){return function(_0x3a7467){if(!_0x3a7467){_0xd8dad[_0xbeed('0x3a')](0x194);}return _0x3a7467;};}function handleError(_0x1385ba,_0x2db505){_0x2db505=_0x2db505||0x1f4;return function(_0x3d547f){logger[_0xbeed('0x2b')](_0x3d547f[_0xbeed('0x3b')]);if(_0x3d547f[_0xbeed('0x3c')]){delete _0x3d547f[_0xbeed('0x3c')];}_0x1385ba['status'](_0x2db505)[_0xbeed('0x3d')](_0x3d547f);};}exports[_0xbeed('0x3e')]=function(_0x403cab,_0x1242e5){var _0x199d3a={},_0x553d46={},_0x332c6a={'count':0x0,'rows':[]};var _0x499dfc=_['map'](db[_0xbeed('0x3f')][_0xbeed('0x40')],function(_0x4e5130){return{'name':_0x4e5130[_0xbeed('0x41')],'type':_0x4e5130[_0xbeed('0x42')][_0xbeed('0x43')]};});_0x553d46[_0xbeed('0x44')]=_[_0xbeed('0x45')](_0x499dfc,'name');_0x553d46[_0xbeed('0x46')]=_[_0xbeed('0x47')](_0x403cab[_0xbeed('0x46')]);_0x553d46['filters']=_[_0xbeed('0x48')](_0x553d46['model'],_0x553d46[_0xbeed('0x46')]);_0x199d3a[_0xbeed('0x49')]=_[_0xbeed('0x48')](_0x553d46[_0xbeed('0x44')],qs[_0xbeed('0x4a')](_0x403cab['query'][_0xbeed('0x4a')]));_0x199d3a[_0xbeed('0x49')]=_0x199d3a[_0xbeed('0x49')][_0xbeed('0x4b')]?_0x199d3a[_0xbeed('0x49')]:_0x553d46[_0xbeed('0x44')];if(!_0x403cab[_0xbeed('0x46')]['hasOwnProperty'](_0xbeed('0x4c'))){_0x199d3a['limit']=qs[_0xbeed('0x34')](_0x403cab[_0xbeed('0x46')][_0xbeed('0x34')]);_0x199d3a[_0xbeed('0x33')]=qs[_0xbeed('0x33')](_0x403cab[_0xbeed('0x46')]['offset']);}_0x199d3a[_0xbeed('0x4d')]=qs[_0xbeed('0x4e')](_0x403cab['query'][_0xbeed('0x4e')]);_0x199d3a[_0xbeed('0x4f')]=qs[_0xbeed('0x50')](_['pick'](_0x403cab[_0xbeed('0x46')],_0x553d46[_0xbeed('0x50')]),_0x499dfc);if(_0x403cab[_0xbeed('0x46')][_0xbeed('0x51')]){_0x199d3a['where']=_[_0xbeed('0x52')](_0x199d3a[_0xbeed('0x4f')],{'$or':_[_0xbeed('0x45')](_0x499dfc,function(_0x531b4b){if(_0x531b4b[_0xbeed('0x42')]!==_0xbeed('0x53')){var _0x39dc07={};_0x39dc07[_0x531b4b[_0xbeed('0x3c')]]={'$like':'%'+_0x403cab['query']['filter']+'%'};return _0x39dc07;}})});}_0x199d3a=_['merge']({},_0x199d3a,_0x403cab[_0xbeed('0x54')]);var _0x5b5031={'where':_0x199d3a[_0xbeed('0x4f')]};return db[_0xbeed('0x3f')]['count'](_0x5b5031)[_0xbeed('0x26')](function(_0x29bb08){_0x332c6a[_0xbeed('0x32')]=_0x29bb08;if(_0x403cab[_0xbeed('0x46')][_0xbeed('0x55')]){_0x199d3a['include']=[{'all':!![]}];}return db[_0xbeed('0x3f')][_0xbeed('0x56')](_0x199d3a);})[_0xbeed('0x26')](function(_0x192a64){_0x332c6a[_0xbeed('0x57')]=_0x192a64;return _0x332c6a;})[_0xbeed('0x26')](respondWithFilteredResult(_0x1242e5,_0x199d3a))[_0xbeed('0x2e')](handleError(_0x1242e5,null));};exports[_0xbeed('0x58')]=function(_0x166623,_0xf4f45a){var _0x3ce161={'raw':!![],'where':{'id':_0x166623[_0xbeed('0x59')]['id']}},_0x52aa92={};_0x52aa92['model']=_[_0xbeed('0x47')](db['WhatsappMessage'][_0xbeed('0x40')]);_0x52aa92[_0xbeed('0x46')]=_['keys'](_0x166623['query']);_0x52aa92[_0xbeed('0x50')]=_[_0xbeed('0x48')](_0x52aa92[_0xbeed('0x44')],_0x52aa92[_0xbeed('0x46')]);_0x3ce161[_0xbeed('0x49')]=_[_0xbeed('0x48')](_0x52aa92[_0xbeed('0x44')],qs[_0xbeed('0x4a')](_0x166623[_0xbeed('0x46')]['fields']));_0x3ce161[_0xbeed('0x49')]=_0x3ce161[_0xbeed('0x49')][_0xbeed('0x4b')]?_0x3ce161[_0xbeed('0x49')]:_0x52aa92[_0xbeed('0x44')];if(_0x166623['query'][_0xbeed('0x55')]){_0x3ce161[_0xbeed('0x5a')]=[{'all':!![]}];}_0x3ce161=_[_0xbeed('0x52')]({},_0x3ce161,_0x166623[_0xbeed('0x54')]);return db[_0xbeed('0x3f')][_0xbeed('0x5b')](_0x3ce161)[_0xbeed('0x26')](handleEntityNotFound(_0xf4f45a,null))[_0xbeed('0x26')](respondWithResult(_0xf4f45a,null))[_0xbeed('0x2e')](handleError(_0xf4f45a,null));};exports['create']=function(_0x3bfb9f,_0xac83ac){return db[_0xbeed('0x3f')][_0xbeed('0x5c')](_0x3bfb9f[_0xbeed('0x5d')],{})[_0xbeed('0x26')](respondWithResult(_0xac83ac,0xc9))[_0xbeed('0x2e')](handleError(_0xac83ac,null));};exports['update']=function(_0x50119e,_0x58e520){if(_0x50119e[_0xbeed('0x5d')]['id']){delete _0x50119e[_0xbeed('0x5d')]['id'];}return db[_0xbeed('0x3f')][_0xbeed('0x5b')]({'where':{'id':_0x50119e[_0xbeed('0x59')]['id']}})[_0xbeed('0x26')](handleEntityNotFound(_0x58e520,null))[_0xbeed('0x26')](saveUpdates(_0x50119e['body'],null))[_0xbeed('0x26')](respondWithResult(_0x58e520,null))['catch'](handleError(_0x58e520,null));};exports[_0xbeed('0x39')]=function(_0x1a03b9,_0x18e213){return db[_0xbeed('0x3f')][_0xbeed('0x5b')]({'where':{'id':_0x1a03b9[_0xbeed('0x59')]['id']}})[_0xbeed('0x26')](handleEntityNotFound(_0x18e213,null))[_0xbeed('0x26')](removeEntity(_0x18e213,null))[_0xbeed('0x2e')](handleError(_0x18e213,null));};exports[_0xbeed('0x5e')]=function(_0x2ec3ca,_0x49eb32){return db['WhatsappMessage'][_0xbeed('0x5e')]()[_0xbeed('0x26')](respondWithResult(_0x49eb32,null))[_0xbeed('0x2e')](handleError(_0x49eb32,null));};var interaction_log=require(_0xbeed('0x17'))(_0xbeed('0x5f'));exports[_0xbeed('0x60')]=function(_0x49696c,_0xc7dd15,_0x39d90a){var _0x494d14={'channel':'whatsapp'};if(_0x49696c[_0xbeed('0x5d')]['id']){delete _0x49696c[_0xbeed('0x5d')]['id'];}_0x49696c[_0xbeed('0x5d')][_0xbeed('0x61')]=!![];_0x49696c[_0xbeed('0x5d')]['readAt']=moment()[_0xbeed('0x62')](_0xbeed('0x63'));_0x49696c['body']['UserId']=_0x49696c['body'][_0xbeed('0x64')]||_0x49696c[_0xbeed('0x65')]['id'];return db[_0xbeed('0x3f')]['find']({'where':{'id':_0x49696c[_0xbeed('0x59')]['id'],'UserId':null},'include':[{'model':db['CmContact'],'as':_0xbeed('0x66')}]})['then'](handleEntityNotFound(_0xc7dd15,null))[_0xbeed('0x26')](saveUpdates(_0x49696c[_0xbeed('0x5d')],null))[_0xbeed('0x26')](function(_0xa30504){if(_0xa30504){_0x494d14[_0xbeed('0x2d')]=_0xa30504[_0xbeed('0x67')]({'plain':!![]});return db[_0xbeed('0x68')][_0xbeed('0x5b')]({'where':{'id':_0xa30504['WhatsappInteractionId']}});}return null;})[_0xbeed('0x26')](handleEntityNotFound(_0xc7dd15,null))[_0xbeed('0x26')](function(_0x433a40){if(_0x433a40){return _0x433a40[_0xbeed('0x38')]({'UserId':_0x49696c[_0xbeed('0x5d')][_0xbeed('0x64')],'read1stAt':_[_0xbeed('0x69')](_0x433a40[_0xbeed('0x6a')])?moment()[_0xbeed('0x62')](_0xbeed('0x63')):undefined});}return null;})['then'](function(_0x592e2d){if(_0x592e2d){_0x494d14[_0xbeed('0x6b')]=_0x592e2d[_0xbeed('0x67')]({'plain':!![]});interaction_log[_0xbeed('0x27')](_0xbeed('0x6c'),_0x49696c[_0xbeed('0x65')]['id'],_0x49696c[_0xbeed('0x65')][_0xbeed('0x3c')],_0x49696c[_0xbeed('0x65')][_0xbeed('0x6d')],_0x494d14[_0xbeed('0x6b')]['id'],_0x49696c[_0xbeed('0x5d')]?JSON['stringify'](_0x49696c[_0xbeed('0x5d')]):_0xbeed('0x6e'));return respondWithRpcPromise('AcceptMessage','acceptMessage',_0x494d14);}return null;})['then'](function(_0x1d3cf7){if(_0x1d3cf7){if(_0x49696c[_0xbeed('0x5d')][_0xbeed('0x6f')]){_0x494d14[_0xbeed('0x2d')][_0xbeed('0x70')]=util[_0xbeed('0x62')](_0xbeed('0x71'),_0x49696c['user'][_0xbeed('0x3c')]);_0x494d14['message'][_0xbeed('0x72')]=_0x494d14['channel'];_0x494d14[_0xbeed('0x2d')]['event']='accept';return respondWithRpcPromise(_0xbeed('0x73'),'EventManager',{'event':'acceptmessage','message':_0x494d14[_0xbeed('0x2d')]},client9002)[_0xbeed('0x26')](function(){return _0x494d14;});}return _0x494d14;}return null;})[_0xbeed('0x26')](respondWithResult(_0xc7dd15,null))[_0xbeed('0x2e')](handleError(_0xc7dd15,null));};var interaction_log=require(_0xbeed('0x17'))('whatsapp-interactions');exports['reject']=function(_0x113358,_0x33e4e8,_0x360a2f){var _0x107468={'agent':{},'channel':_0xbeed('0x74')};if(_0x113358['body']['id']){delete _0x113358['body']['id'];}_0x113358[_0xbeed('0x5d')][_0xbeed('0x64')]=_0x113358[_0xbeed('0x5d')]['UserId']||_0x113358[_0xbeed('0x65')]['id'];_0x107468['agent']['id']=_0x113358[_0xbeed('0x5d')][_0xbeed('0x64')];return db[_0xbeed('0x3f')]['find']({'where':{'id':_0x113358[_0xbeed('0x59')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x33e4e8,null))[_0xbeed('0x26')](function(_0x1b5ce2){if(_0x1b5ce2){_0x107468[_0xbeed('0x2d')]=_0x1b5ce2[_0xbeed('0x67')]({'plain':!![]});return db['WhatsappInteraction'][_0xbeed('0x5b')]({'where':{'id':_0x1b5ce2[_0xbeed('0x75')]}});}return null;})[_0xbeed('0x26')](handleEntityNotFound(_0x33e4e8,null))[_0xbeed('0x26')](function(_0x31e4b1){if(_0x31e4b1){_0x107468[_0xbeed('0x6b')]=_0x31e4b1['get']({'plain':!![]});interaction_log[_0xbeed('0x27')](_0xbeed('0x76'),_0x113358[_0xbeed('0x65')]['id'],_0x113358[_0xbeed('0x65')][_0xbeed('0x3c')],_0x113358[_0xbeed('0x65')]['role'],_0x107468['interaction']['id'],_0x113358[_0xbeed('0x5d')]?JSON[_0xbeed('0x77')](_0x113358[_0xbeed('0x5d')]):_0xbeed('0x6e'));return respondWithRpcPromise(_0xbeed('0x78'),_0xbeed('0x79'),_0x107468);}return null;})[_0xbeed('0x26')](function(_0x3ab394){if(_0x3ab394){_0x3ab394[_0xbeed('0x2d')][_0xbeed('0x70')]=util[_0xbeed('0x62')](_0xbeed('0x71'),_0x113358[_0xbeed('0x65')][_0xbeed('0x3c')]);_0x3ab394[_0xbeed('0x2d')][_0xbeed('0x72')]=_0x107468[_0xbeed('0x72')];_0x3ab394[_0xbeed('0x2d')][_0xbeed('0x7a')]='reject';respondWithRpcPromise(_0xbeed('0x73'),_0xbeed('0x73'),{'event':_0xbeed('0x7b'),'message':_0x3ab394[_0xbeed('0x2d')]},client9002);return _0x107468;}return null;})[_0xbeed('0x26')](respondWithResult(_0x33e4e8,null))[_0xbeed('0x2e')](handleError(_0x33e4e8,null));};exports['status']=function(_0x44ed2c,_0x69bb64,_0x56e1f4){if(_0x44ed2c[_0xbeed('0x5d')]['id']){delete _0x44ed2c['body']['id'];}var _0x182f73;return db['WhatsappMessage'][_0xbeed('0x5b')]({'where':{'id':_0x44ed2c[_0xbeed('0x59')]['id']}})[_0xbeed('0x26')](handleEntityNotFound(_0x69bb64,null))[_0xbeed('0x26')](function(_0x5c4112){if(_0x5c4112){_0x182f73=_0x5c4112;return db[_0xbeed('0x7c')][_0xbeed('0x5b')]({'where':{'id':_0x5c4112[_0xbeed('0x7d')]}});}})[_0xbeed('0x26')](handleEntityNotFound(_0x69bb64,null))[_0xbeed('0x26')](function(_0x2a8983){if(_0x2a8983){logger['debug'](_0xbeed('0x7e'),'status',_0xbeed('0x7f'),_0x2a8983[_0xbeed('0x42')],util[_0xbeed('0x80')](_0x44ed2c[_0xbeed('0x5d')],{'showHidden':![],'depth':null}));switch(_0x2a8983[_0xbeed('0x42')]){case _0xbeed('0x81'):if(_0x44ed2c[_0xbeed('0x5d')]['MessageSid']&&_0x44ed2c[_0xbeed('0x5d')][_0xbeed('0x82')]===_0x182f73[_0xbeed('0x83')]&&_0x44ed2c[_0xbeed('0x5d')][_0xbeed('0x84')]&&_0x44ed2c[_0xbeed('0x5d')][_0xbeed('0x84')]===_0xbeed('0x61')){return _0x182f73['update']({'read':!![]});}else{logger[_0xbeed('0x2b')]('WhatsappAccount,\x20%s,\x20%s,\x20%s',_0xbeed('0x2f'),_0xbeed('0x81'),util[_0xbeed('0x80')](_0x44ed2c[_0xbeed('0x5d')],{'showHidden':![],'depth':null}));}break;}return _0x182f73;}})[_0xbeed('0x26')](respondWithResult(_0x69bb64,null))[_0xbeed('0x2e')](handleError(_0x69bb64,null));};
\ No newline at end of file
+var _0x1751=['fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','redis','defaults','localhost','socket.io-emitter','register','jayson/promise','client','info','WhatsappMessage,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','status','end','limit','undefined','offset','set','Content-Range','apply','save','update','then','name','map','WhatsappMessage','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','merge','VIRTUAL','filter','options','count','include','findAll','rows','show','params','find','create','describe','accept','whatsapp','body','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','CmContact','get','WhatsappInteraction','isNil','interaction','[WHATSAPPMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','event','EventManager','acceptmessage','reject','[WHATSAPPMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','RejectMessage','rejectMessage','WhatsappAccount','WhatsappAccountId','received\x20delivery\x20report\x20from','inspect','twilio','MessageSid','messageId','MessageStatus','WhatsappAccount,\x20%s,\x20%s,\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs'];(function(_0x2fc1ce,_0x250865){var _0x2cf1ab=function(_0x5eaef4){while(--_0x5eaef4){_0x2fc1ce['push'](_0x2fc1ce['shift']());}};_0x2cf1ab(++_0x250865);}(_0x1751,0x76));var _0x1175=function(_0xae79bd,_0x53f201){_0xae79bd=_0xae79bd-0x0;var _0x1ba1b4=_0x1751[_0xae79bd];return _0x1ba1b4;};'use strict';var emlformat=require(_0x1175('0x0'));var rimraf=require(_0x1175('0x1'));var zipdir=require(_0x1175('0x2'));var jsonpatch=require(_0x1175('0x3'));var rp=require('request-promise');var moment=require(_0x1175('0x4'));var BPromise=require(_0x1175('0x5'));var Mustache=require(_0x1175('0x6'));var util=require(_0x1175('0x7'));var path=require(_0x1175('0x8'));var sox=require(_0x1175('0x9'));var csv=require(_0x1175('0xa'));var ejs=require(_0x1175('0xb'));var fs=require('fs');var fs_extra=require(_0x1175('0xc'));var _=require(_0x1175('0xd'));var squel=require(_0x1175('0xe'));var crypto=require(_0x1175('0xf'));var jsforce=require(_0x1175('0x10'));var deskjs=require(_0x1175('0x11'));var toCsv=require(_0x1175('0xa'));var querystring=require(_0x1175('0x12'));var Papa=require(_0x1175('0x13'));var Redis=require(_0x1175('0x14'));var authService=require(_0x1175('0x15'));var qs=require(_0x1175('0x16'));var as=require(_0x1175('0x17'));var hardwareService=require(_0x1175('0x18'));var logger=require(_0x1175('0x19'))(_0x1175('0x1a'));var utils=require(_0x1175('0x1b'));var config=require(_0x1175('0x1c'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x1175('0x1d')]=_[_0x1175('0x1e')](config['redis'],{'host':_0x1175('0x1f'),'port':0x18eb});var socket=require(_0x1175('0x20'))(new Redis(config[_0x1175('0x1d')]));require('./whatsappMessage.socket')[_0x1175('0x21')](socket);var jayson=require(_0x1175('0x22'));var client=jayson[_0x1175('0x23')]['http']({'port':0x232c});var client9002=jayson[_0x1175('0x23')]['http']({'port':0x232a});function respondWithRpcPromise(_0x14be3c,_0x43b6b1,_0x2a9bc4,_0x2585be){return new BPromise(function(_0x5c1a14,_0x18119f){var _0xaa45d=_0x2585be||client;return _0xaa45d['request'](_0x14be3c,_0x2a9bc4)['then'](function(_0x40b685){logger[_0x1175('0x24')](_0x1175('0x25'),_0x43b6b1,_0x1175('0x26'));logger[_0x1175('0x27')]('WhatsappMessage,\x20%s,\x20%s,\x20%s',_0x43b6b1,_0x1175('0x26'),JSON[_0x1175('0x28')](_0x40b685));if(_0x40b685[_0x1175('0x29')]){if(_0x40b685[_0x1175('0x29')][_0x1175('0x2a')]===0x1f4){logger[_0x1175('0x29')]('WhatsappMessage,\x20%s,\x20%s',_0x43b6b1,_0x40b685['error'][_0x1175('0x2b')]);return _0x18119f(_0x40b685[_0x1175('0x29')][_0x1175('0x2b')]);}logger[_0x1175('0x29')](_0x1175('0x25'),_0x43b6b1,_0x40b685[_0x1175('0x29')][_0x1175('0x2b')]);return _0x5c1a14(_0x40b685['error'][_0x1175('0x2b')]);}else{logger[_0x1175('0x24')](_0x1175('0x25'),_0x43b6b1,_0x1175('0x26'));_0x5c1a14(_0x40b685[_0x1175('0x2c')][_0x1175('0x2b')]);}})[_0x1175('0x2d')](function(_0x5a3dc9){logger[_0x1175('0x29')](_0x1175('0x25'),_0x43b6b1,_0x5a3dc9);_0x18119f(_0x5a3dc9);});});}function respondWithStatusCode(_0x38cf17,_0x5ad9b5){_0x5ad9b5=_0x5ad9b5||0xcc;return function(_0x491901){if(_0x491901){return _0x38cf17['sendStatus'](_0x5ad9b5);}return _0x38cf17[_0x1175('0x2e')](_0x5ad9b5)[_0x1175('0x2f')]();};}function respondWithResult(_0x3fd476,_0x5e4ac6){_0x5e4ac6=_0x5e4ac6||0xc8;return function(_0x5884a3){if(_0x5884a3){return _0x3fd476['status'](_0x5e4ac6)['json'](_0x5884a3);}};}function respondWithFilteredResult(_0x3abc9c,_0x3db0f7){return function(_0x1fabfb){if(_0x1fabfb){var _0x1e29d0=typeof _0x3db0f7['offset']==='undefined'&&typeof _0x3db0f7[_0x1175('0x30')]===_0x1175('0x31');var _0x57f7a8=_0x1fabfb['count'];var _0x5b6bfb=_0x1e29d0?0x0:_0x3db0f7[_0x1175('0x32')];var _0x305939=_0x1e29d0?_0x1fabfb['count']:_0x3db0f7[_0x1175('0x32')]+_0x3db0f7[_0x1175('0x30')];var _0x135d1b;if(_0x305939>=_0x57f7a8){_0x305939=_0x57f7a8;_0x135d1b=0xc8;}else{_0x135d1b=0xce;}_0x3abc9c[_0x1175('0x2e')](_0x135d1b);return _0x3abc9c[_0x1175('0x33')](_0x1175('0x34'),_0x5b6bfb+'-'+_0x305939+'/'+_0x57f7a8)['json'](_0x1fabfb);}return null;};}function patchUpdates(_0x3a32ec){return function(_0x399f53){try{jsonpatch[_0x1175('0x35')](_0x399f53,_0x3a32ec,!![]);}catch(_0x35929e){return BPromise['reject'](_0x35929e);}return _0x399f53[_0x1175('0x36')]();};}function saveUpdates(_0x5c0b9f,_0x476822){return function(_0x115e62){if(_0x115e62){return _0x115e62[_0x1175('0x37')](_0x5c0b9f)[_0x1175('0x38')](function(_0x6ec44b){return _0x6ec44b;});}return null;};}function removeEntity(_0x28bbb7,_0x574d77){return function(_0x49ed96){if(_0x49ed96){return _0x49ed96['destroy']()[_0x1175('0x38')](function(){_0x28bbb7[_0x1175('0x2e')](0xcc)[_0x1175('0x2f')]();});}};}function handleEntityNotFound(_0x40d809,_0x1661ae){return function(_0x2beda3){if(!_0x2beda3){_0x40d809['sendStatus'](0x194);}return _0x2beda3;};}function handleError(_0x4a10cd,_0x3862f4){_0x3862f4=_0x3862f4||0x1f4;return function(_0x325cb7){logger[_0x1175('0x29')](_0x325cb7['stack']);if(_0x325cb7[_0x1175('0x39')]){delete _0x325cb7[_0x1175('0x39')];}_0x4a10cd[_0x1175('0x2e')](_0x3862f4)['send'](_0x325cb7);};}exports['index']=function(_0x57650d,_0x177715){var _0x561023={},_0x20e9b1={},_0x23c0fc={'count':0x0,'rows':[]};var _0x43bb01=_[_0x1175('0x3a')](db[_0x1175('0x3b')][_0x1175('0x3c')],function(_0x2240d2){return{'name':_0x2240d2[_0x1175('0x3d')],'type':_0x2240d2[_0x1175('0x3e')][_0x1175('0x3f')]};});_0x20e9b1[_0x1175('0x40')]=_[_0x1175('0x3a')](_0x43bb01,_0x1175('0x39'));_0x20e9b1[_0x1175('0x41')]=_[_0x1175('0x42')](_0x57650d[_0x1175('0x41')]);_0x20e9b1['filters']=_[_0x1175('0x43')](_0x20e9b1[_0x1175('0x40')],_0x20e9b1[_0x1175('0x41')]);_0x561023['attributes']=_[_0x1175('0x43')](_0x20e9b1[_0x1175('0x40')],qs[_0x1175('0x44')](_0x57650d[_0x1175('0x41')][_0x1175('0x44')]));_0x561023['attributes']=_0x561023[_0x1175('0x45')][_0x1175('0x46')]?_0x561023[_0x1175('0x45')]:_0x20e9b1[_0x1175('0x40')];if(!_0x57650d['query'][_0x1175('0x47')](_0x1175('0x48'))){_0x561023[_0x1175('0x30')]=qs['limit'](_0x57650d[_0x1175('0x41')]['limit']);_0x561023[_0x1175('0x32')]=qs[_0x1175('0x32')](_0x57650d[_0x1175('0x41')][_0x1175('0x32')]);}_0x561023[_0x1175('0x49')]=qs[_0x1175('0x4a')](_0x57650d[_0x1175('0x41')][_0x1175('0x4a')]);_0x561023[_0x1175('0x4b')]=qs[_0x1175('0x4c')](_['pick'](_0x57650d['query'],_0x20e9b1[_0x1175('0x4c')]),_0x43bb01);if(_0x57650d[_0x1175('0x41')]['filter']){_0x561023[_0x1175('0x4b')]=_[_0x1175('0x4d')](_0x561023['where'],{'$or':_[_0x1175('0x3a')](_0x43bb01,function(_0x1ed96f){if(_0x1ed96f[_0x1175('0x3e')]!==_0x1175('0x4e')){var _0x18e8d5={};_0x18e8d5[_0x1ed96f[_0x1175('0x39')]]={'$like':'%'+_0x57650d[_0x1175('0x41')][_0x1175('0x4f')]+'%'};return _0x18e8d5;}})});}_0x561023=_[_0x1175('0x4d')]({},_0x561023,_0x57650d[_0x1175('0x50')]);var _0x2e49d9={'where':_0x561023[_0x1175('0x4b')]};return db[_0x1175('0x3b')][_0x1175('0x51')](_0x2e49d9)[_0x1175('0x38')](function(_0x33f2c1){_0x23c0fc[_0x1175('0x51')]=_0x33f2c1;if(_0x57650d['query']['includeAll']){_0x561023[_0x1175('0x52')]=[{'all':!![]}];}return db[_0x1175('0x3b')][_0x1175('0x53')](_0x561023);})['then'](function(_0x2f69f5){_0x23c0fc[_0x1175('0x54')]=_0x2f69f5;return _0x23c0fc;})[_0x1175('0x38')](respondWithFilteredResult(_0x177715,_0x561023))[_0x1175('0x2d')](handleError(_0x177715,null));};exports[_0x1175('0x55')]=function(_0x92cca9,_0x49b6c6){var _0x71c6bc={'raw':!![],'where':{'id':_0x92cca9[_0x1175('0x56')]['id']}},_0x3a44a6={};_0x3a44a6[_0x1175('0x40')]=_[_0x1175('0x42')](db[_0x1175('0x3b')][_0x1175('0x3c')]);_0x3a44a6[_0x1175('0x41')]=_[_0x1175('0x42')](_0x92cca9['query']);_0x3a44a6['filters']=_[_0x1175('0x43')](_0x3a44a6[_0x1175('0x40')],_0x3a44a6[_0x1175('0x41')]);_0x71c6bc[_0x1175('0x45')]=_['intersection'](_0x3a44a6[_0x1175('0x40')],qs['fields'](_0x92cca9['query'][_0x1175('0x44')]));_0x71c6bc[_0x1175('0x45')]=_0x71c6bc[_0x1175('0x45')]['length']?_0x71c6bc[_0x1175('0x45')]:_0x3a44a6[_0x1175('0x40')];if(_0x92cca9[_0x1175('0x41')]['includeAll']){_0x71c6bc['include']=[{'all':!![]}];}_0x71c6bc=_[_0x1175('0x4d')]({},_0x71c6bc,_0x92cca9[_0x1175('0x50')]);return db[_0x1175('0x3b')][_0x1175('0x57')](_0x71c6bc)[_0x1175('0x38')](handleEntityNotFound(_0x49b6c6,null))[_0x1175('0x38')](respondWithResult(_0x49b6c6,null))[_0x1175('0x2d')](handleError(_0x49b6c6,null));};exports[_0x1175('0x58')]=function(_0x213b7c,_0x191b44){return db[_0x1175('0x3b')][_0x1175('0x58')](_0x213b7c['body'],{})['then'](respondWithResult(_0x191b44,0xc9))[_0x1175('0x2d')](handleError(_0x191b44,null));};exports[_0x1175('0x37')]=function(_0x527c58,_0x306160){if(_0x527c58['body']['id']){delete _0x527c58['body']['id'];}return db[_0x1175('0x3b')][_0x1175('0x57')]({'where':{'id':_0x527c58[_0x1175('0x56')]['id']}})[_0x1175('0x38')](handleEntityNotFound(_0x306160,null))[_0x1175('0x38')](saveUpdates(_0x527c58['body'],null))['then'](respondWithResult(_0x306160,null))['catch'](handleError(_0x306160,null));};exports['destroy']=function(_0x3070b7,_0x2e2654){return db['WhatsappMessage'][_0x1175('0x57')]({'where':{'id':_0x3070b7[_0x1175('0x56')]['id']}})[_0x1175('0x38')](handleEntityNotFound(_0x2e2654,null))[_0x1175('0x38')](removeEntity(_0x2e2654,null))[_0x1175('0x2d')](handleError(_0x2e2654,null));};exports[_0x1175('0x59')]=function(_0x12d02d,_0x23316e){return db[_0x1175('0x3b')][_0x1175('0x59')]()['then'](respondWithResult(_0x23316e,null))[_0x1175('0x2d')](handleError(_0x23316e,null));};var interaction_log=require(_0x1175('0x19'))('whatsapp-interactions');exports[_0x1175('0x5a')]=function(_0x2e03be,_0x4606c8,_0xcab9c4){var _0x470f8b={'agent':{},'channel':_0x1175('0x5b')};if(_0x2e03be[_0x1175('0x5c')]['id']){delete _0x2e03be['body']['id'];}_0x2e03be[_0x1175('0x5c')][_0x1175('0x5d')]=!![];_0x2e03be['body'][_0x1175('0x5e')]=moment()[_0x1175('0x5f')](_0x1175('0x60'));_0x2e03be[_0x1175('0x5c')][_0x1175('0x61')]=_0x2e03be['body']['UserId']||_0x2e03be[_0x1175('0x62')]['id'];_0x470f8b[_0x1175('0x63')]['id']=_0x2e03be['body'][_0x1175('0x61')];return db['WhatsappMessage']['find']({'where':{'id':_0x2e03be[_0x1175('0x56')]['id'],'UserId':null},'include':[{'model':db[_0x1175('0x64')],'as':'Contact'}]})[_0x1175('0x38')](handleEntityNotFound(_0x4606c8,null))[_0x1175('0x38')](saveUpdates(_0x2e03be[_0x1175('0x5c')],null))[_0x1175('0x38')](function(_0x3f3a7){if(_0x3f3a7){_0x470f8b[_0x1175('0x2b')]=_0x3f3a7[_0x1175('0x65')]({'plain':!![]});return db[_0x1175('0x66')]['find']({'where':{'id':_0x3f3a7['WhatsappInteractionId']}});}return null;})[_0x1175('0x38')](handleEntityNotFound(_0x4606c8,null))['then'](function(_0x1ab407){if(_0x1ab407){return _0x1ab407[_0x1175('0x37')]({'UserId':_0x2e03be[_0x1175('0x5c')]['UserId'],'read1stAt':_[_0x1175('0x67')](_0x1ab407['read1stAt'])?moment()['format'](_0x1175('0x60')):undefined});}return null;})[_0x1175('0x38')](function(_0x319adb){if(_0x319adb){_0x470f8b[_0x1175('0x68')]=_0x319adb['get']({'plain':!![]});interaction_log['info'](_0x1175('0x69'),_0x2e03be[_0x1175('0x62')]['id'],_0x2e03be['user'][_0x1175('0x39')],_0x2e03be['user'][_0x1175('0x6a')],_0x470f8b[_0x1175('0x68')]['id'],_0x2e03be['body']?JSON['stringify'](_0x2e03be[_0x1175('0x5c')]):'null');return respondWithRpcPromise(_0x1175('0x6b'),_0x1175('0x6c'),_0x470f8b);}return null;})[_0x1175('0x38')](function(_0x2a4926){if(_0x2a4926){if(_0x2e03be[_0x1175('0x5c')][_0x1175('0x6d')]){_0x470f8b[_0x1175('0x2b')][_0x1175('0x6e')]=util[_0x1175('0x5f')](_0x1175('0x6f'),_0x2e03be[_0x1175('0x62')][_0x1175('0x39')]);_0x470f8b['message']['channel']=_0x470f8b[_0x1175('0x70')];_0x470f8b['message'][_0x1175('0x71')]='accept';return respondWithRpcPromise(_0x1175('0x72'),_0x1175('0x72'),{'event':_0x1175('0x73'),'message':_0x470f8b[_0x1175('0x2b')]},client9002)[_0x1175('0x38')](function(){return _0x470f8b;});}return _0x470f8b;}return null;})[_0x1175('0x38')](respondWithResult(_0x4606c8,null))[_0x1175('0x2d')](handleError(_0x4606c8,null));};var interaction_log=require(_0x1175('0x19'))('whatsapp-interactions');exports[_0x1175('0x74')]=function(_0x32f145,_0x56b312,_0x1a4241){var _0xbeb3fc={'agent':{},'channel':'whatsapp'};if(_0x32f145[_0x1175('0x5c')]['id']){delete _0x32f145[_0x1175('0x5c')]['id'];}_0x32f145[_0x1175('0x5c')][_0x1175('0x61')]=_0x32f145[_0x1175('0x5c')][_0x1175('0x61')]||_0x32f145[_0x1175('0x62')]['id'];_0xbeb3fc[_0x1175('0x63')]['id']=_0x32f145['body']['UserId'];return db[_0x1175('0x3b')][_0x1175('0x57')]({'where':{'id':_0x32f145[_0x1175('0x56')]['id'],'UserId':null}})[_0x1175('0x38')](handleEntityNotFound(_0x56b312,null))[_0x1175('0x38')](function(_0x233053){if(_0x233053){_0xbeb3fc[_0x1175('0x2b')]=_0x233053[_0x1175('0x65')]({'plain':!![]});return db[_0x1175('0x66')]['find']({'where':{'id':_0x233053['WhatsappInteractionId']}});}return null;})[_0x1175('0x38')](handleEntityNotFound(_0x56b312,null))[_0x1175('0x38')](function(_0x56fc3f){if(_0x56fc3f){_0xbeb3fc[_0x1175('0x68')]=_0x56fc3f[_0x1175('0x65')]({'plain':!![]});interaction_log[_0x1175('0x24')](_0x1175('0x75'),_0x32f145[_0x1175('0x62')]['id'],_0x32f145['user'][_0x1175('0x39')],_0x32f145[_0x1175('0x62')][_0x1175('0x6a')],_0xbeb3fc[_0x1175('0x68')]['id'],_0x32f145[_0x1175('0x5c')]?JSON[_0x1175('0x28')](_0x32f145[_0x1175('0x5c')]):_0x1175('0x76'));return respondWithRpcPromise(_0x1175('0x77'),_0x1175('0x78'),_0xbeb3fc);}return null;})['then'](function(_0x56dcdb){if(_0x56dcdb){_0x56dcdb['message'][_0x1175('0x6e')]=util[_0x1175('0x5f')](_0x1175('0x6f'),_0x32f145['user'][_0x1175('0x39')]);_0x56dcdb[_0x1175('0x2b')][_0x1175('0x70')]=_0xbeb3fc[_0x1175('0x70')];_0x56dcdb['message'][_0x1175('0x71')]=_0x1175('0x74');respondWithRpcPromise(_0x1175('0x72'),_0x1175('0x72'),{'event':'rejectmessage','message':_0x56dcdb[_0x1175('0x2b')]},client9002);return _0xbeb3fc;}return null;})[_0x1175('0x38')](respondWithResult(_0x56b312,null))['catch'](handleError(_0x56b312,null));};exports['status']=function(_0x58ec1f,_0x3a0a71,_0x30b1f3){if(_0x58ec1f['body']['id']){delete _0x58ec1f['body']['id'];}var _0x53288a;return db[_0x1175('0x3b')]['find']({'where':{'id':_0x58ec1f['params']['id']}})['then'](handleEntityNotFound(_0x3a0a71,null))[_0x1175('0x38')](function(_0x4c2cb2){if(_0x4c2cb2){_0x53288a=_0x4c2cb2;return db[_0x1175('0x79')][_0x1175('0x57')]({'where':{'id':_0x4c2cb2[_0x1175('0x7a')]}});}})[_0x1175('0x38')](handleEntityNotFound(_0x3a0a71,null))[_0x1175('0x38')](function(_0x3c7cd0){if(_0x3c7cd0){logger[_0x1175('0x27')]('WhatsppMessage,\x20%s,\x20%s,\x20%s','status',_0x1175('0x7b'),_0x3c7cd0['type'],util[_0x1175('0x7c')](_0x58ec1f[_0x1175('0x5c')],{'showHidden':![],'depth':null}));switch(_0x3c7cd0[_0x1175('0x3e')]){case _0x1175('0x7d'):if(_0x58ec1f['body'][_0x1175('0x7e')]&&_0x58ec1f[_0x1175('0x5c')]['MessageSid']===_0x53288a[_0x1175('0x7f')]&&_0x58ec1f['body'][_0x1175('0x80')]&&_0x58ec1f[_0x1175('0x5c')]['MessageStatus']===_0x1175('0x5d')){return _0x53288a[_0x1175('0x37')]({'read':!![]});}else{logger[_0x1175('0x29')](_0x1175('0x81'),_0x1175('0x2e'),_0x1175('0x7d'),util[_0x1175('0x7c')](_0x58ec1f['body'],{'showHidden':![],'depth':null}));}break;}return _0x53288a;}})[_0x1175('0x38')](respondWithResult(_0x3a0a71,null))[_0x1175('0x2d')](handleError(_0x3a0a71,null));};
\ No newline at end of file