Built motion from commit (unavailable).|2.5.9
[motion2.git] / server / api / intZohoAccount / intZohoAccount.controller.js
index 14ebec8..4686d98 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x42f4=['Zoho-oauthtoken\x20','response','Subject','Call_Duration','Call_Result','Call_Start_Time','remove','includes','api_name','system_mandatory','push','display_label','custom_field','pick_list_values','test','stringify','statusCode','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','client','http','request','then','info','ZohoAccount,\x20%s,\x20%s','request\x20sent','debug','error','message','catch','sendStatus','status','count','offset','set','Content-Range','apply','reject','update','destroy','stack','name','send','index','map','ZohoAccount','fieldName','type','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','filters','filter','where','merge','options','includeAll','include','findAll','rows','show','rawAttributes','find','create','body','params','getConfigurations','findOne','ZohoConfiguration','pick','addConfiguration','AccountId','Subjects','channel','Descriptions','getDescriptions','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.eu','https://accounts.zoho.in','/oauth/v2/token','refreshToken','clientId','clientSecret','refresh_token','access_token','getFields','host','serverUrl','zoho.eu','com','slice','substring','lastIndexOf','Refresh\x20Token\x20not\x20available\x20for\x20the\x20account','format','https://www.zohoapis.%s/crm/v2/settings/fields','Calls'];(function(_0xe406e8,_0x2dbfd8){var _0x3f8fbe=function(_0x967a30){while(--_0x967a30){_0xe406e8['push'](_0xe406e8['shift']());}};_0x3f8fbe(++_0x2dbfd8);}(_0x42f4,0x19d));var _0x442f=function(_0x37a79c,_0x2b19f0){_0x37a79c=_0x37a79c-0x0;var _0x561d89=_0x42f4[_0x37a79c];return _0x561d89;};'use strict';var pdf=require(_0x442f('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x442f('0x1'));var zipdir=require(_0x442f('0x2'));var jsonpatch=require(_0x442f('0x3'));var rp=require(_0x442f('0x4'));var moment=require(_0x442f('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x442f('0x6'));var sox=require(_0x442f('0x7'));var csv=require('to-csv');var ejs=require(_0x442f('0x8'));var fs=require('fs');var _=require(_0x442f('0x9'));var squel=require(_0x442f('0xa'));var crypto=require(_0x442f('0xb'));var jsforce=require(_0x442f('0xc'));var deskjs=require(_0x442f('0xd'));var toCsv=require('to-csv');var querystring=require(_0x442f('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x442f('0xf'));var as=require(_0x442f('0x10'));var hardwareService=require(_0x442f('0x11'));var logger=require(_0x442f('0x12'))(_0x442f('0x13'));var utils=require(_0x442f('0x14'));var config=require(_0x442f('0x15'));var licenseUtil=require(_0x442f('0x16'));var db=require(_0x442f('0x17'))['db'];var integrations=require(_0x442f('0x18'));var jayson=require('jayson/promise');var client=jayson[_0x442f('0x19')][_0x442f('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x3a6586,_0x40094a,_0xc9ed61,_0x3ce63d){return new BPromise(function(_0x444fac,_0xdf1c8){var _0x21d907=_0x3ce63d||client;return _0x21d907[_0x442f('0x1b')](_0x3a6586,_0xc9ed61)[_0x442f('0x1c')](function(_0x3d075a){logger[_0x442f('0x1d')](_0x442f('0x1e'),_0x40094a,_0x442f('0x1f'));logger[_0x442f('0x20')]('ZohoAccount,\x20%s,\x20%s,\x20%s',_0x40094a,_0x442f('0x1f'),JSON['stringify'](_0x3d075a));if(_0x3d075a['error']){if(_0x3d075a['error']['code']===0x1f4){logger[_0x442f('0x21')](_0x442f('0x1e'),_0x40094a,_0x3d075a[_0x442f('0x21')][_0x442f('0x22')]);return _0xdf1c8(_0x3d075a[_0x442f('0x21')][_0x442f('0x22')]);}logger['error'](_0x442f('0x1e'),_0x40094a,_0x3d075a['error'][_0x442f('0x22')]);return _0x444fac(_0x3d075a[_0x442f('0x21')][_0x442f('0x22')]);}else{logger['info'](_0x442f('0x1e'),_0x40094a,_0x442f('0x1f'));_0x444fac(_0x3d075a['result']['message']);}})[_0x442f('0x23')](function(_0x3e07df){logger[_0x442f('0x21')](_0x442f('0x1e'),_0x40094a,_0x3e07df);_0xdf1c8(_0x3e07df);});});}function respondWithStatusCode(_0x2a2ae7,_0x127b9c){_0x127b9c=_0x127b9c||0xcc;return function(_0x31d445){if(_0x31d445){return _0x2a2ae7[_0x442f('0x24')](_0x127b9c);}return _0x2a2ae7[_0x442f('0x25')](_0x127b9c)['end']();};}function respondWithResult(_0x393eed,_0x1b5b56){_0x1b5b56=_0x1b5b56||0xc8;return function(_0x31b66a){if(_0x31b66a){return _0x393eed[_0x442f('0x25')](_0x1b5b56)['json'](_0x31b66a);}};}function respondWithFilteredResult(_0x10b312,_0x268516){return function(_0x3bb3b1){if(_0x3bb3b1){var _0x3bcae2=_0x3bb3b1[_0x442f('0x26')],_0x55c9dc=_0x268516['offset'],_0x5ee478=_0x268516[_0x442f('0x27')]+_0x268516['limit'],_0x23fccf;if(_0x5ee478>=_0x3bcae2){_0x5ee478=_0x3bcae2;_0x23fccf=0xc8;}else{_0x23fccf=0xce;}_0x10b312[_0x442f('0x25')](_0x23fccf);return _0x10b312[_0x442f('0x28')](_0x442f('0x29'),_0x55c9dc+'-'+_0x5ee478+'/'+_0x3bcae2)['json'](_0x3bb3b1);}return null;};}function patchUpdates(_0x367ae0){return function(_0x1415f6){try{jsonpatch[_0x442f('0x2a')](_0x1415f6,_0x367ae0,!![]);}catch(_0x422019){return BPromise[_0x442f('0x2b')](_0x422019);}return _0x1415f6['save']();};}function saveUpdates(_0x487491,_0x3cc574){return function(_0x5436ba){if(_0x5436ba){return _0x5436ba[_0x442f('0x2c')](_0x487491)[_0x442f('0x1c')](function(_0x2c3845){return _0x2c3845;});}return null;};}function removeEntity(_0x1b9a60,_0x39684d){return function(_0x1232fe){if(_0x1232fe){return _0x1232fe[_0x442f('0x2d')]()[_0x442f('0x1c')](function(){_0x1b9a60[_0x442f('0x25')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1d0794,_0x5459cb){return function(_0x67b48d){if(!_0x67b48d){_0x1d0794[_0x442f('0x24')](0x194);}return _0x67b48d;};}function handleError(_0x53c0a0,_0x639611){_0x639611=_0x639611||0x1f4;return function(_0x24477b){logger[_0x442f('0x21')](_0x24477b[_0x442f('0x2e')]);if(_0x24477b[_0x442f('0x2f')]){delete _0x24477b['name'];}_0x53c0a0[_0x442f('0x25')](_0x639611)[_0x442f('0x30')](_0x24477b);};}exports[_0x442f('0x31')]=function(_0x12d02b,_0x185b05){var _0x4e062d={},_0x45d05b={},_0x31bce1={'count':0x0,'rows':[]};var _0x4a4ce1=_[_0x442f('0x32')](db[_0x442f('0x33')]['rawAttributes'],function(_0x41113f){return{'name':_0x41113f[_0x442f('0x34')],'type':_0x41113f[_0x442f('0x35')][_0x442f('0x36')]};});_0x45d05b[_0x442f('0x37')]=_[_0x442f('0x32')](_0x4a4ce1,_0x442f('0x2f'));_0x45d05b['query']=_[_0x442f('0x38')](_0x12d02b[_0x442f('0x39')]);_0x45d05b['filters']=_[_0x442f('0x3a')](_0x45d05b['model'],_0x45d05b[_0x442f('0x39')]);_0x4e062d[_0x442f('0x3b')]=_[_0x442f('0x3a')](_0x45d05b['model'],qs['fields'](_0x12d02b['query'][_0x442f('0x3c')]));_0x4e062d[_0x442f('0x3b')]=_0x4e062d[_0x442f('0x3b')][_0x442f('0x3d')]?_0x4e062d[_0x442f('0x3b')]:_0x45d05b[_0x442f('0x37')];if(!_0x12d02b['query'][_0x442f('0x3e')](_0x442f('0x3f'))){_0x4e062d[_0x442f('0x40')]=qs[_0x442f('0x40')](_0x12d02b[_0x442f('0x39')]['limit']);_0x4e062d['offset']=qs['offset'](_0x12d02b['query'][_0x442f('0x27')]);}_0x4e062d[_0x442f('0x41')]=qs['sort'](_0x12d02b[_0x442f('0x39')][_0x442f('0x42')]);_0x4e062d['where']=qs[_0x442f('0x43')](_['pick'](_0x12d02b[_0x442f('0x39')],_0x45d05b[_0x442f('0x43')]),_0x4a4ce1);if(_0x12d02b['query'][_0x442f('0x44')]){_0x4e062d[_0x442f('0x45')]=_[_0x442f('0x46')](_0x4e062d[_0x442f('0x45')],{'$or':_[_0x442f('0x32')](_0x4a4ce1,function(_0x1a3e25){if(_0x1a3e25[_0x442f('0x35')]!=='VIRTUAL'){var _0x4690d4={};_0x4690d4[_0x1a3e25[_0x442f('0x2f')]]={'$like':'%'+_0x12d02b[_0x442f('0x39')][_0x442f('0x44')]+'%'};return _0x4690d4;}})});}_0x4e062d=_[_0x442f('0x46')]({},_0x4e062d,_0x12d02b[_0x442f('0x47')]);var _0x1e93d8={'where':_0x4e062d[_0x442f('0x45')]};return db[_0x442f('0x33')][_0x442f('0x26')](_0x1e93d8)[_0x442f('0x1c')](function(_0x160825){_0x31bce1['count']=_0x160825;if(_0x12d02b[_0x442f('0x39')][_0x442f('0x48')]){_0x4e062d[_0x442f('0x49')]=[{'all':!![]}];}return db[_0x442f('0x33')][_0x442f('0x4a')](_0x4e062d);})[_0x442f('0x1c')](function(_0xf27e0d){_0x31bce1[_0x442f('0x4b')]=_0xf27e0d;return _0x31bce1;})[_0x442f('0x1c')](respondWithFilteredResult(_0x185b05,_0x4e062d))[_0x442f('0x23')](handleError(_0x185b05,null));};exports[_0x442f('0x4c')]=function(_0x422fa5,_0x31c102){var _0x18e7ae={'raw':![],'where':{'id':_0x422fa5['params']['id']}},_0x1e9bca={};_0x1e9bca[_0x442f('0x37')]=_[_0x442f('0x38')](db['ZohoAccount'][_0x442f('0x4d')]);_0x1e9bca[_0x442f('0x39')]=_['keys'](_0x422fa5[_0x442f('0x39')]);_0x1e9bca[_0x442f('0x43')]=_[_0x442f('0x3a')](_0x1e9bca[_0x442f('0x37')],_0x1e9bca['query']);_0x18e7ae['attributes']=_['intersection'](_0x1e9bca[_0x442f('0x37')],qs[_0x442f('0x3c')](_0x422fa5[_0x442f('0x39')][_0x442f('0x3c')]));_0x18e7ae[_0x442f('0x3b')]=_0x18e7ae[_0x442f('0x3b')]['length']?_0x18e7ae[_0x442f('0x3b')]:_0x1e9bca[_0x442f('0x37')];if(_0x422fa5[_0x442f('0x39')][_0x442f('0x48')]){_0x18e7ae[_0x442f('0x49')]=[{'all':!![]}];}_0x18e7ae=_[_0x442f('0x46')]({},_0x18e7ae,_0x422fa5[_0x442f('0x47')]);return db[_0x442f('0x33')][_0x442f('0x4e')](_0x18e7ae)['then'](handleEntityNotFound(_0x31c102,null))[_0x442f('0x1c')](respondWithResult(_0x31c102,null))[_0x442f('0x23')](handleError(_0x31c102,null));};exports[_0x442f('0x4f')]=function(_0x12a7f7,_0x302171){return db['ZohoAccount'][_0x442f('0x4f')](_0x12a7f7[_0x442f('0x50')],{})[_0x442f('0x1c')](respondWithResult(_0x302171,0xc9))['catch'](handleError(_0x302171,null));};exports[_0x442f('0x2c')]=function(_0x27bef6,_0x218a3e){if(_0x27bef6['body']['id']){delete _0x27bef6[_0x442f('0x50')]['id'];}return db['ZohoAccount'][_0x442f('0x4e')]({'where':{'id':_0x27bef6[_0x442f('0x51')]['id']}})[_0x442f('0x1c')](handleEntityNotFound(_0x218a3e,null))[_0x442f('0x1c')](saveUpdates(_0x27bef6[_0x442f('0x50')],null))[_0x442f('0x1c')](respondWithResult(_0x218a3e,null))[_0x442f('0x23')](handleError(_0x218a3e,null));};exports[_0x442f('0x2d')]=function(_0xf52afc,_0x5aa577){return db[_0x442f('0x33')]['find']({'where':{'id':_0xf52afc[_0x442f('0x51')]['id']}})[_0x442f('0x1c')](handleEntityNotFound(_0x5aa577,null))['then'](removeEntity(_0x5aa577,null))['catch'](handleError(_0x5aa577,null));};exports[_0x442f('0x52')]=function(_0x33624b,_0x33a9d2,_0x12a3ea){var _0x4e878f={};var _0x5345f1={};var _0x393b68;var _0x33791a;return db['ZohoAccount'][_0x442f('0x53')]({'where':{'id':_0x33624b[_0x442f('0x51')]['id']}})[_0x442f('0x1c')](handleEntityNotFound(_0x33a9d2,null))[_0x442f('0x1c')](function(_0x1df090){if(_0x1df090){_0x393b68=_0x1df090;_0x5345f1['model']=_[_0x442f('0x38')](db[_0x442f('0x54')]['rawAttributes']);_0x5345f1['query']=_[_0x442f('0x38')](_0x33624b[_0x442f('0x39')]);_0x5345f1[_0x442f('0x43')]=_['intersection'](_0x5345f1[_0x442f('0x37')],_0x5345f1[_0x442f('0x39')]);_0x4e878f[_0x442f('0x3b')]=_['intersection'](_0x5345f1[_0x442f('0x37')],qs['fields'](_0x33624b['query']['fields']));_0x4e878f['attributes']=_0x4e878f[_0x442f('0x3b')][_0x442f('0x3d')]?_0x4e878f[_0x442f('0x3b')]:_0x5345f1[_0x442f('0x37')];_0x4e878f[_0x442f('0x41')]=qs[_0x442f('0x42')](_0x33624b[_0x442f('0x39')][_0x442f('0x42')]);_0x4e878f['where']=qs[_0x442f('0x43')](_[_0x442f('0x55')](_0x33624b[_0x442f('0x39')],_0x5345f1[_0x442f('0x43')]));if(_0x33624b[_0x442f('0x39')][_0x442f('0x44')]){_0x4e878f[_0x442f('0x45')]=_[_0x442f('0x46')](_0x4e878f[_0x442f('0x45')],{'$or':_['map'](_0x4e878f[_0x442f('0x3b')],function(_0x354a99){var _0x13c975={};_0x13c975[_0x354a99]={'$like':'%'+_0x33624b[_0x442f('0x39')][_0x442f('0x44')]+'%'};return _0x13c975;})});}_0x4e878f=_[_0x442f('0x46')]({},_0x4e878f,_0x33624b[_0x442f('0x47')]);return _0x393b68['getConfigurations'](_0x4e878f);}})['then'](function(_0x87da1d){if(_0x87da1d){_0x33791a=_0x87da1d[_0x442f('0x3d')];if(!_0x33624b[_0x442f('0x39')][_0x442f('0x3e')](_0x442f('0x3f'))){_0x4e878f['limit']=qs[_0x442f('0x40')](_0x33624b[_0x442f('0x39')][_0x442f('0x40')]);_0x4e878f[_0x442f('0x27')]=qs['offset'](_0x33624b[_0x442f('0x39')][_0x442f('0x27')]);}return _0x393b68['getConfigurations'](_0x4e878f);}})['then'](function(_0x544da1){if(_0x544da1){return _0x544da1?{'count':_0x33791a,'rows':_0x544da1}:null;}})[_0x442f('0x1c')](respondWithResult(_0x33a9d2,null))[_0x442f('0x23')](handleError(_0x33a9d2,null));};exports[_0x442f('0x56')]=function(_0x7d3e18,_0x11962f,_0x1e7366){if(_0x7d3e18[_0x442f('0x50')]['id']){delete _0x7d3e18[_0x442f('0x50')]['id'];}return db[_0x442f('0x33')][_0x442f('0x53')]({'where':{'id':_0x7d3e18[_0x442f('0x51')]['id']}})['then'](handleEntityNotFound(_0x11962f,null))[_0x442f('0x1c')](function(_0x479d50){if(_0x479d50){_0x7d3e18['body'][_0x442f('0x57')]=_0x479d50['id'];_0x7d3e18[_0x442f('0x50')][_0x442f('0x58')]=integrations['getSubjects'](_0x7d3e18['body'][_0x442f('0x59')],_0x7d3e18[_0x442f('0x50')][_0x442f('0x35')]);_0x7d3e18[_0x442f('0x50')][_0x442f('0x5a')]=integrations[_0x442f('0x5b')](_0x7d3e18[_0x442f('0x50')][_0x442f('0x59')],_0x7d3e18['body']['type']);return db[_0x442f('0x54')][_0x442f('0x4f')](_0x7d3e18[_0x442f('0x50')],{'include':[{'model':db['ZohoField'],'as':_0x442f('0x58')},{'model':db['ZohoField'],'as':'Descriptions'}]});}return null;})[_0x442f('0x1c')](respondWithResult(_0x11962f,null))[_0x442f('0x23')](handleError(_0x11962f,null));};function getAccessToken(_0x37b0e0){return new Promise(function(_0x6e5db4,_0x3441af){var _0x4bdf0f;switch(_0x37b0e0[_0x442f('0x5c')]){case'US':_0x4bdf0f=_0x442f('0x5d');break;case'AU':_0x4bdf0f=_0x442f('0x5e');break;case'EU':_0x4bdf0f=_0x442f('0x5f');break;case'IN':_0x4bdf0f=_0x442f('0x60');break;case'CN':_0x4bdf0f='https://accounts.zoho.com.cn';break;default:_0x4bdf0f=_0x442f('0x5f');break;}var _0x65ed3b={'method':'POST','uri':_0x4bdf0f+_0x442f('0x61'),'qs':{'refresh_token':_0x37b0e0[_0x442f('0x62')],'client_id':_0x37b0e0[_0x442f('0x63')],'client_secret':_0x37b0e0[_0x442f('0x64')],'grant_type':_0x442f('0x65')},'json':!![]};return rp(_0x65ed3b)[_0x442f('0x1c')](function(_0xfe4042){if(_0xfe4042['access_token']){_0x6e5db4(_0xfe4042[_0x442f('0x66')]);}else{_0x3441af('Unable\x20to\x20retrieve\x20the\x20access\x20token');}})[_0x442f('0x23')](function(_0x3142a0){_0x3441af(_0x3142a0);});});}exports[_0x442f('0x67')]=function(_0x1fb3dc,_0x53b336,_0x204ec9){var _0x364a67,_0x2a0977,_0x432345,_0x38f52e,_0x157c13;return db['ZohoAccount'][_0x442f('0x53')]({'where':{'id':_0x1fb3dc[_0x442f('0x51')]['id']},'attributes':['id',_0x442f('0x68'),_0x442f('0x5c'),_0x442f('0x63'),_0x442f('0x64'),_0x442f('0x69'),'code',_0x442f('0x62')]})[_0x442f('0x1c')](handleEntityNotFound(_0x53b336,null))[_0x442f('0x1c')](function(_0x477c0a){_0x157c13=_0x477c0a;_0x364a67=_0x157c13[_0x442f('0x68')];_0x2a0977=_0x364a67===_0x442f('0x6a')?'eu':_0x442f('0x6b');_0x432345=_0x157c13['serverUrl'];var _0x1e9514=_0x432345[_0x442f('0x6c')](-0x1);if(_0x1e9514==='/'||_0x1e9514==='\x5c'||_0x1e9514===':'){_0x432345=_0x432345[_0x442f('0x6d')](0x0,_0x432345[_0x442f('0x6e')](_0x1e9514));}if(!_0x157c13[_0x442f('0x62')]){throw new Error(_0x442f('0x6f'));}return getAccessToken(_0x157c13);})[_0x442f('0x1c')](function(_0x18e2ba){if(_0x18e2ba){return rp({'method':'GET','uri':util[_0x442f('0x70')](_0x442f('0x71'),_0x2a0977),'qs':{'module':_0x442f('0x72')},'headers':{'Authorization':_0x442f('0x73')+_0x18e2ba},'json':!![]});}})[_0x442f('0x1c')](function(_0x56f66d){if(_0x56f66d){if(_0x56f66d[_0x442f('0x74')]&&_0x56f66d[_0x442f('0x74')][_0x442f('0x21')]){throw new Error(_0x56f66d[_0x442f('0x74')]['error'][_0x442f('0x22')]);}var _0x4643b5=[];var _0x42e731=[];var _0x16009a=['Owner',_0x442f('0x75'),'Description','WhoId',_0x442f('0x76'),_0x442f('0x77'),_0x442f('0x78'),'Call_Type'];_0x42e731=_[_0x442f('0x79')](_0x56f66d[_0x442f('0x3c')],function(_0x427427){return _0x16009a[_0x442f('0x7a')](_0x427427[_0x442f('0x7b')]);});for(var _0x5009ac=0x0;_0x5009ac<_0x42e731[_0x442f('0x3d')];_0x5009ac++){if(_0x42e731[_0x5009ac][_0x442f('0x7c')]===![]){_0x4643b5[_0x442f('0x7d')]({'id':_0x42e731[_0x5009ac]['id'],'name':_0x42e731[_0x5009ac][_0x442f('0x7e')],'custom':_0x42e731[_0x5009ac][_0x442f('0x7f')],'options':_0x42e731[_0x5009ac]['data_type']==='picklist'&&_0x42e731[_0x5009ac][_0x442f('0x80')][_0x442f('0x3d')]>-0x1?_[_0x442f('0x32')](_0x42e731[_0x5009ac][_0x442f('0x80')],function(_0x152161){return{'name':_0x152161,'value':_0x152161};}):[]});}}return{'count':_0x4643b5[_0x442f('0x3d')],'rows':_0x4643b5};}else{return{'count':0x0,'rows':[]};}})[_0x442f('0x1c')](respondWithResult(_0x53b336,null))[_0x442f('0x23')](function(_0x2a9df6){var _0x1db554=_0x1fb3dc[_0x442f('0x39')][_0x442f('0x81')]?0x1f4:_0x2a9df6['statusCode']||0x1f4;logger[_0x442f('0x21')]('getFields,\x20%s,\x20%s,\x20%s',_0x442f('0x67'),_0x1db554,JSON[_0x442f('0x82')](_0x2a9df6));delete _0x2a9df6[_0x442f('0x2f')];if(_0x1db554===0x191){_0x1db554=0x190;}_0x53b336[_0x442f('0x25')](_0x1db554)[_0x442f('0x30')](_0x1fb3dc[_0x442f('0x39')][_0x442f('0x81')]?{'message':'Wrong\x20credentials','statusCode':_0x2a9df6[_0x442f('0x83')]}:_0x2a9df6);});};
\ No newline at end of file
+var _0x4808=['key','model','query','attributes','fields','length','hasOwnProperty','nolimit','where','filters','pick','filter','merge','includeAll','findAll','rows','intersection','include','options','create','body','update','find','params','getConfigurations','findOne','keys','order','sort','AccountId','getSubjects','channel','Descriptions','ZohoConfiguration','ZohoField','https://accounts.zoho.com','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','clientId','refresh_token','access_token','getFields','host','clientSecret','serverUrl','refreshToken','zoho.eu','com','slice','substring','lastIndexOf','Refresh\x20Token\x20not\x20available\x20for\x20the\x20account','GET','format','https://www.zohoapis.%s/crm/v2/settings/fields','Calls','Zoho-oauthtoken\x20','response','Owner','Subject','Description','WhoId','Call_Duration','Call_Result','Call_Start_Time','includes','api_name','system_mandatory','display_label','custom_field','pick_list_values','getFields,\x20%s,\x20%s,\x20%s','test','statusCode','html-pdf','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','path','sox','ejs','squel','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','request','then','info','ZohoAccount,\x20%s,\x20%s','request\x20sent','debug','ZohoAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','sendStatus','status','end','json','count','offset','limit','set','Content-Range','reject','save','destroy','stack','name','send','index','map','ZohoAccount','rawAttributes','fieldName','type'];(function(_0x5f1e4a,_0x58e1fe){var _0x531adc=function(_0x24a93b){while(--_0x24a93b){_0x5f1e4a['push'](_0x5f1e4a['shift']());}};_0x531adc(++_0x58e1fe);}(_0x4808,0x160));var _0x8480=function(_0x465a0c,_0x19d4d5){_0x465a0c=_0x465a0c-0x0;var _0x1e202e=_0x4808[_0x465a0c];return _0x1e202e;};'use strict';var pdf=require(_0x8480('0x0'));var emlformat=require(_0x8480('0x1'));var rimraf=require(_0x8480('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8480('0x3'));var rp=require('request-promise');var moment=require(_0x8480('0x4'));var BPromise=require(_0x8480('0x5'));var Mustache=require(_0x8480('0x6'));var util=require('util');var path=require(_0x8480('0x7'));var sox=require(_0x8480('0x8'));var csv=require('to-csv');var ejs=require(_0x8480('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0x8480('0xa'));var crypto=require('crypto');var jsforce=require(_0x8480('0xb'));var deskjs=require(_0x8480('0xc'));var toCsv=require(_0x8480('0xd'));var querystring=require(_0x8480('0xe'));var Papa=require(_0x8480('0xf'));var Redis=require('ioredis');var authService=require(_0x8480('0x10'));var qs=require(_0x8480('0x11'));var as=require(_0x8480('0x12'));var hardwareService=require(_0x8480('0x13'));var logger=require(_0x8480('0x14'))(_0x8480('0x15'));var utils=require(_0x8480('0x16'));var config=require(_0x8480('0x17'));var licenseUtil=require(_0x8480('0x18'));var db=require(_0x8480('0x19'))['db'];var integrations=require(_0x8480('0x1a'));var jayson=require(_0x8480('0x1b'));var client=jayson[_0x8480('0x1c')][_0x8480('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x6c2c46,_0x42c3f8,_0x3d256c,_0x2a5a83){return new BPromise(function(_0xa15c3c,_0x5ea74c){var _0x1484b3=_0x2a5a83||client;return _0x1484b3[_0x8480('0x1e')](_0x6c2c46,_0x3d256c)[_0x8480('0x1f')](function(_0x5d2ee2){logger[_0x8480('0x20')](_0x8480('0x21'),_0x42c3f8,_0x8480('0x22'));logger[_0x8480('0x23')](_0x8480('0x24'),_0x42c3f8,_0x8480('0x22'),JSON[_0x8480('0x25')](_0x5d2ee2));if(_0x5d2ee2['error']){if(_0x5d2ee2[_0x8480('0x26')]['code']===0x1f4){logger['error']('ZohoAccount,\x20%s,\x20%s',_0x42c3f8,_0x5d2ee2[_0x8480('0x26')]['message']);return _0x5ea74c(_0x5d2ee2[_0x8480('0x26')]['message']);}logger[_0x8480('0x26')](_0x8480('0x21'),_0x42c3f8,_0x5d2ee2[_0x8480('0x26')]['message']);return _0xa15c3c(_0x5d2ee2[_0x8480('0x26')][_0x8480('0x27')]);}else{logger[_0x8480('0x20')](_0x8480('0x21'),_0x42c3f8,'request\x20sent');_0xa15c3c(_0x5d2ee2['result'][_0x8480('0x27')]);}})[_0x8480('0x28')](function(_0x3dd0f3){logger[_0x8480('0x26')]('ZohoAccount,\x20%s,\x20%s',_0x42c3f8,_0x3dd0f3);_0x5ea74c(_0x3dd0f3);});});}function respondWithStatusCode(_0x17b84f,_0x51c2d2){_0x51c2d2=_0x51c2d2||0xcc;return function(_0x560ea2){if(_0x560ea2){return _0x17b84f[_0x8480('0x29')](_0x51c2d2);}return _0x17b84f[_0x8480('0x2a')](_0x51c2d2)[_0x8480('0x2b')]();};}function respondWithResult(_0x49245c,_0x25b1a3){_0x25b1a3=_0x25b1a3||0xc8;return function(_0x4ca36e){if(_0x4ca36e){return _0x49245c[_0x8480('0x2a')](_0x25b1a3)[_0x8480('0x2c')](_0x4ca36e);}};}function respondWithFilteredResult(_0x5e64eb,_0x18edd5){return function(_0x2e670b){if(_0x2e670b){var _0x3feecd=_0x2e670b[_0x8480('0x2d')],_0x45a6a7=_0x18edd5[_0x8480('0x2e')],_0xd3e0d8=_0x18edd5['offset']+_0x18edd5[_0x8480('0x2f')],_0x4e6577;if(_0xd3e0d8>=_0x3feecd){_0xd3e0d8=_0x3feecd;_0x4e6577=0xc8;}else{_0x4e6577=0xce;}_0x5e64eb[_0x8480('0x2a')](_0x4e6577);return _0x5e64eb[_0x8480('0x30')](_0x8480('0x31'),_0x45a6a7+'-'+_0xd3e0d8+'/'+_0x3feecd)['json'](_0x2e670b);}return null;};}function patchUpdates(_0x5ad205){return function(_0x4eff81){try{jsonpatch['apply'](_0x4eff81,_0x5ad205,!![]);}catch(_0x3444a4){return BPromise[_0x8480('0x32')](_0x3444a4);}return _0x4eff81[_0x8480('0x33')]();};}function saveUpdates(_0x2286b7,_0x5352a3){return function(_0x475c80){if(_0x475c80){return _0x475c80['update'](_0x2286b7)[_0x8480('0x1f')](function(_0x5f262a){return _0x5f262a;});}return null;};}function removeEntity(_0x532766,_0x310687){return function(_0x379d85){if(_0x379d85){return _0x379d85[_0x8480('0x34')]()[_0x8480('0x1f')](function(){_0x532766[_0x8480('0x2a')](0xcc)[_0x8480('0x2b')]();});}};}function handleEntityNotFound(_0x3f938c,_0x3a875a){return function(_0xaf0e75){if(!_0xaf0e75){_0x3f938c[_0x8480('0x29')](0x194);}return _0xaf0e75;};}function handleError(_0xb27b3,_0x2f1857){_0x2f1857=_0x2f1857||0x1f4;return function(_0x270972){logger[_0x8480('0x26')](_0x270972[_0x8480('0x35')]);if(_0x270972[_0x8480('0x36')]){delete _0x270972[_0x8480('0x36')];}_0xb27b3[_0x8480('0x2a')](_0x2f1857)[_0x8480('0x37')](_0x270972);};}exports[_0x8480('0x38')]=function(_0x50d045,_0x13a699){var _0xb6284f={},_0x16e471={},_0x437881={'count':0x0,'rows':[]};var _0x262e40=_[_0x8480('0x39')](db[_0x8480('0x3a')][_0x8480('0x3b')],function(_0x35a982){return{'name':_0x35a982[_0x8480('0x3c')],'type':_0x35a982[_0x8480('0x3d')][_0x8480('0x3e')]};});_0x16e471[_0x8480('0x3f')]=_[_0x8480('0x39')](_0x262e40,_0x8480('0x36'));_0x16e471['query']=_['keys'](_0x50d045[_0x8480('0x40')]);_0x16e471['filters']=_['intersection'](_0x16e471['model'],_0x16e471[_0x8480('0x40')]);_0xb6284f[_0x8480('0x41')]=_['intersection'](_0x16e471['model'],qs[_0x8480('0x42')](_0x50d045[_0x8480('0x40')][_0x8480('0x42')]));_0xb6284f[_0x8480('0x41')]=_0xb6284f[_0x8480('0x41')][_0x8480('0x43')]?_0xb6284f['attributes']:_0x16e471[_0x8480('0x3f')];if(!_0x50d045[_0x8480('0x40')][_0x8480('0x44')](_0x8480('0x45'))){_0xb6284f[_0x8480('0x2f')]=qs[_0x8480('0x2f')](_0x50d045[_0x8480('0x40')][_0x8480('0x2f')]);_0xb6284f[_0x8480('0x2e')]=qs[_0x8480('0x2e')](_0x50d045['query'][_0x8480('0x2e')]);}_0xb6284f['order']=qs['sort'](_0x50d045[_0x8480('0x40')]['sort']);_0xb6284f[_0x8480('0x46')]=qs[_0x8480('0x47')](_[_0x8480('0x48')](_0x50d045['query'],_0x16e471[_0x8480('0x47')]),_0x262e40);if(_0x50d045[_0x8480('0x40')][_0x8480('0x49')]){_0xb6284f['where']=_[_0x8480('0x4a')](_0xb6284f['where'],{'$or':_[_0x8480('0x39')](_0x262e40,function(_0x26e6ab){if(_0x26e6ab[_0x8480('0x3d')]!=='VIRTUAL'){var _0x5ba3a0={};_0x5ba3a0[_0x26e6ab[_0x8480('0x36')]]={'$like':'%'+_0x50d045[_0x8480('0x40')][_0x8480('0x49')]+'%'};return _0x5ba3a0;}})});}_0xb6284f=_[_0x8480('0x4a')]({},_0xb6284f,_0x50d045['options']);var _0x343e57={'where':_0xb6284f[_0x8480('0x46')]};return db['ZohoAccount'][_0x8480('0x2d')](_0x343e57)[_0x8480('0x1f')](function(_0x51f5da){_0x437881[_0x8480('0x2d')]=_0x51f5da;if(_0x50d045['query'][_0x8480('0x4b')]){_0xb6284f['include']=[{'all':!![]}];}return db[_0x8480('0x3a')][_0x8480('0x4c')](_0xb6284f);})[_0x8480('0x1f')](function(_0x3a9039){_0x437881[_0x8480('0x4d')]=_0x3a9039;return _0x437881;})['then'](respondWithFilteredResult(_0x13a699,_0xb6284f))['catch'](handleError(_0x13a699,null));};exports['show']=function(_0x41ae15,_0x21c32b){var _0x375a91={'raw':![],'where':{'id':_0x41ae15['params']['id']}},_0x149f9f={};_0x149f9f[_0x8480('0x3f')]=_['keys'](db[_0x8480('0x3a')][_0x8480('0x3b')]);_0x149f9f['query']=_['keys'](_0x41ae15[_0x8480('0x40')]);_0x149f9f['filters']=_[_0x8480('0x4e')](_0x149f9f[_0x8480('0x3f')],_0x149f9f[_0x8480('0x40')]);_0x375a91[_0x8480('0x41')]=_[_0x8480('0x4e')](_0x149f9f[_0x8480('0x3f')],qs[_0x8480('0x42')](_0x41ae15[_0x8480('0x40')][_0x8480('0x42')]));_0x375a91[_0x8480('0x41')]=_0x375a91[_0x8480('0x41')][_0x8480('0x43')]?_0x375a91[_0x8480('0x41')]:_0x149f9f[_0x8480('0x3f')];if(_0x41ae15[_0x8480('0x40')]['includeAll']){_0x375a91[_0x8480('0x4f')]=[{'all':!![]}];}_0x375a91=_[_0x8480('0x4a')]({},_0x375a91,_0x41ae15[_0x8480('0x50')]);return db['ZohoAccount']['find'](_0x375a91)[_0x8480('0x1f')](handleEntityNotFound(_0x21c32b,null))[_0x8480('0x1f')](respondWithResult(_0x21c32b,null))[_0x8480('0x28')](handleError(_0x21c32b,null));};exports[_0x8480('0x51')]=function(_0x23cad8,_0x3dcfbb){return db['ZohoAccount'][_0x8480('0x51')](_0x23cad8[_0x8480('0x52')],{})['then'](respondWithResult(_0x3dcfbb,0xc9))[_0x8480('0x28')](handleError(_0x3dcfbb,null));};exports[_0x8480('0x53')]=function(_0x35d6f6,_0x357a3e){if(_0x35d6f6['body']['id']){delete _0x35d6f6[_0x8480('0x52')]['id'];}return db[_0x8480('0x3a')][_0x8480('0x54')]({'where':{'id':_0x35d6f6[_0x8480('0x55')]['id']}})[_0x8480('0x1f')](handleEntityNotFound(_0x357a3e,null))[_0x8480('0x1f')](saveUpdates(_0x35d6f6[_0x8480('0x52')],null))[_0x8480('0x1f')](respondWithResult(_0x357a3e,null))[_0x8480('0x28')](handleError(_0x357a3e,null));};exports[_0x8480('0x34')]=function(_0x5c3f74,_0x51b9a0){return db[_0x8480('0x3a')][_0x8480('0x54')]({'where':{'id':_0x5c3f74['params']['id']}})[_0x8480('0x1f')](handleEntityNotFound(_0x51b9a0,null))['then'](removeEntity(_0x51b9a0,null))[_0x8480('0x28')](handleError(_0x51b9a0,null));};exports[_0x8480('0x56')]=function(_0x1688e8,_0x1de4cb,_0xb9228d){var _0x11f31d={};var _0x5b944d={};var _0x4182c7;var _0x4cf8c5;return db[_0x8480('0x3a')][_0x8480('0x57')]({'where':{'id':_0x1688e8[_0x8480('0x55')]['id']}})[_0x8480('0x1f')](handleEntityNotFound(_0x1de4cb,null))[_0x8480('0x1f')](function(_0x46fe85){if(_0x46fe85){_0x4182c7=_0x46fe85;_0x5b944d[_0x8480('0x3f')]=_['keys'](db['ZohoConfiguration']['rawAttributes']);_0x5b944d['query']=_[_0x8480('0x58')](_0x1688e8['query']);_0x5b944d['filters']=_[_0x8480('0x4e')](_0x5b944d[_0x8480('0x3f')],_0x5b944d[_0x8480('0x40')]);_0x11f31d[_0x8480('0x41')]=_['intersection'](_0x5b944d[_0x8480('0x3f')],qs[_0x8480('0x42')](_0x1688e8[_0x8480('0x40')][_0x8480('0x42')]));_0x11f31d['attributes']=_0x11f31d[_0x8480('0x41')][_0x8480('0x43')]?_0x11f31d[_0x8480('0x41')]:_0x5b944d[_0x8480('0x3f')];_0x11f31d[_0x8480('0x59')]=qs[_0x8480('0x5a')](_0x1688e8[_0x8480('0x40')][_0x8480('0x5a')]);_0x11f31d[_0x8480('0x46')]=qs['filters'](_[_0x8480('0x48')](_0x1688e8[_0x8480('0x40')],_0x5b944d['filters']));if(_0x1688e8[_0x8480('0x40')][_0x8480('0x49')]){_0x11f31d['where']=_[_0x8480('0x4a')](_0x11f31d[_0x8480('0x46')],{'$or':_[_0x8480('0x39')](_0x11f31d[_0x8480('0x41')],function(_0x5d9c48){var _0x468787={};_0x468787[_0x5d9c48]={'$like':'%'+_0x1688e8[_0x8480('0x40')][_0x8480('0x49')]+'%'};return _0x468787;})});}_0x11f31d=_['merge']({},_0x11f31d,_0x1688e8[_0x8480('0x50')]);return _0x4182c7[_0x8480('0x56')](_0x11f31d);}})[_0x8480('0x1f')](function(_0x365cb4){if(_0x365cb4){_0x4cf8c5=_0x365cb4[_0x8480('0x43')];if(!_0x1688e8[_0x8480('0x40')][_0x8480('0x44')](_0x8480('0x45'))){_0x11f31d['limit']=qs[_0x8480('0x2f')](_0x1688e8[_0x8480('0x40')][_0x8480('0x2f')]);_0x11f31d[_0x8480('0x2e')]=qs[_0x8480('0x2e')](_0x1688e8[_0x8480('0x40')][_0x8480('0x2e')]);}return _0x4182c7[_0x8480('0x56')](_0x11f31d);}})[_0x8480('0x1f')](function(_0x1af43c){if(_0x1af43c){return _0x1af43c?{'count':_0x4cf8c5,'rows':_0x1af43c}:null;}})[_0x8480('0x1f')](respondWithResult(_0x1de4cb,null))[_0x8480('0x28')](handleError(_0x1de4cb,null));};exports['addConfiguration']=function(_0x2cfacf,_0x5078ab,_0x1b6c55){if(_0x2cfacf[_0x8480('0x52')]['id']){delete _0x2cfacf[_0x8480('0x52')]['id'];}return db[_0x8480('0x3a')][_0x8480('0x57')]({'where':{'id':_0x2cfacf['params']['id']}})['then'](handleEntityNotFound(_0x5078ab,null))[_0x8480('0x1f')](function(_0x24fd35){if(_0x24fd35){_0x2cfacf[_0x8480('0x52')][_0x8480('0x5b')]=_0x24fd35['id'];_0x2cfacf[_0x8480('0x52')]['Subjects']=integrations[_0x8480('0x5c')](_0x2cfacf[_0x8480('0x52')][_0x8480('0x5d')],_0x2cfacf['body'][_0x8480('0x3d')]);_0x2cfacf[_0x8480('0x52')][_0x8480('0x5e')]=integrations['getDescriptions'](_0x2cfacf[_0x8480('0x52')]['channel'],_0x2cfacf['body'][_0x8480('0x3d')]);return db[_0x8480('0x5f')][_0x8480('0x51')](_0x2cfacf['body'],{'include':[{'model':db['ZohoField'],'as':'Subjects'},{'model':db[_0x8480('0x60')],'as':_0x8480('0x5e')}]});}return null;})[_0x8480('0x1f')](respondWithResult(_0x5078ab,null))[_0x8480('0x28')](handleError(_0x5078ab,null));};function getAccessToken(_0x2220a9){return new Promise(function(_0x5bc8cf,_0x2239ba){var _0x501a42;switch(_0x2220a9['zone']){case'US':_0x501a42=_0x8480('0x61');break;case'AU':_0x501a42='https://accounts.zoho.com.au';break;case'EU':_0x501a42=_0x8480('0x62');break;case'IN':_0x501a42=_0x8480('0x63');break;case'CN':_0x501a42=_0x8480('0x64');break;default:_0x501a42=_0x8480('0x62');break;}var _0xd0e0b4={'method':_0x8480('0x65'),'uri':_0x501a42+'/oauth/v2/token','qs':{'refresh_token':_0x2220a9['refreshToken'],'client_id':_0x2220a9[_0x8480('0x66')],'client_secret':_0x2220a9['clientSecret'],'grant_type':_0x8480('0x67')},'json':!![]};return rp(_0xd0e0b4)[_0x8480('0x1f')](function(_0x11cb70){if(_0x11cb70['access_token']){_0x5bc8cf(_0x11cb70[_0x8480('0x68')]);}else{_0x2239ba('Unable\x20to\x20retrieve\x20the\x20access\x20token');}})[_0x8480('0x28')](function(_0x202191){_0x2239ba(_0x202191);});});}exports[_0x8480('0x69')]=function(_0x5284e0,_0x4f1384,_0x505ef6){var _0x27fc67,_0x3eb307,_0x1610d9,_0x4adc6c,_0x358f07;return db['ZohoAccount'][_0x8480('0x57')]({'where':{'id':_0x5284e0[_0x8480('0x55')]['id']},'attributes':['id',_0x8480('0x6a'),'zone',_0x8480('0x66'),_0x8480('0x6b'),_0x8480('0x6c'),'code',_0x8480('0x6d')]})['then'](handleEntityNotFound(_0x4f1384,null))[_0x8480('0x1f')](function(_0x2e8fb8){_0x358f07=_0x2e8fb8;_0x27fc67=_0x358f07[_0x8480('0x6a')];_0x3eb307=_0x27fc67===_0x8480('0x6e')?'eu':_0x8480('0x6f');_0x1610d9=_0x358f07[_0x8480('0x6c')];var _0x519287=_0x1610d9[_0x8480('0x70')](-0x1);if(_0x519287==='/'||_0x519287==='\x5c'||_0x519287===':'){_0x1610d9=_0x1610d9[_0x8480('0x71')](0x0,_0x1610d9[_0x8480('0x72')](_0x519287));}if(!_0x358f07[_0x8480('0x6d')]){throw new Error(_0x8480('0x73'));}return getAccessToken(_0x358f07);})[_0x8480('0x1f')](function(_0x17d180){if(_0x17d180){return rp({'method':_0x8480('0x74'),'uri':util[_0x8480('0x75')](_0x8480('0x76'),_0x3eb307),'qs':{'module':_0x8480('0x77')},'headers':{'Authorization':_0x8480('0x78')+_0x17d180},'json':!![]});}})[_0x8480('0x1f')](function(_0x4c2bb5){if(_0x4c2bb5){if(_0x4c2bb5['response']&&_0x4c2bb5[_0x8480('0x79')][_0x8480('0x26')]){throw new Error(_0x4c2bb5[_0x8480('0x79')][_0x8480('0x26')][_0x8480('0x27')]);}var _0x463b41=[];var _0x400539=[];var _0x5cbfce=[_0x8480('0x7a'),_0x8480('0x7b'),_0x8480('0x7c'),_0x8480('0x7d'),_0x8480('0x7e'),_0x8480('0x7f'),_0x8480('0x80'),'Call_Type'];_0x400539=_['remove'](_0x4c2bb5[_0x8480('0x42')],function(_0x3b438f){return _0x5cbfce[_0x8480('0x81')](_0x3b438f[_0x8480('0x82')]);});for(var _0x20c910=0x0;_0x20c910<_0x400539['length'];_0x20c910++){if(_0x400539[_0x20c910][_0x8480('0x83')]===![]){_0x463b41['push']({'id':_0x400539[_0x20c910]['id'],'name':_0x400539[_0x20c910][_0x8480('0x84')],'custom':_0x400539[_0x20c910][_0x8480('0x85')],'options':_0x400539[_0x20c910]['data_type']==='picklist'&&_0x400539[_0x20c910][_0x8480('0x86')]['length']>-0x1?_['map'](_0x400539[_0x20c910][_0x8480('0x86')],function(_0x8b46a0){return{'name':_0x8b46a0,'value':_0x8b46a0};}):[]});}}return{'count':_0x463b41[_0x8480('0x43')],'rows':_0x463b41};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithResult(_0x4f1384,null))[_0x8480('0x28')](function(_0x25037c){var _0x386bf4=_0x5284e0['query']['test']?0x1f4:_0x25037c['statusCode']||0x1f4;logger['error'](_0x8480('0x87'),'getFields',_0x386bf4,JSON['stringify'](_0x25037c));delete _0x25037c['name'];if(_0x386bf4===0x191){_0x386bf4=0x190;}_0x4f1384[_0x8480('0x2a')](_0x386bf4)['send'](_0x5284e0['query'][_0x8480('0x88')]?{'message':'Wrong\x20credentials','statusCode':_0x25037c[_0x8480('0x89')]}:_0x25037c);});};
\ No newline at end of file