Built motion from commit b5413ace.|2.6.9
[motion2.git] / server / api / smsQueueReport / smsQueueReport.controller.js
index 526bd8d..4ce8f75 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x52e8=['where','VIRTUAL','includeAll','include','findAll','catch','show','params','options','find','create','body','destroy','describe','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','sendStatus','end','status','json','offset','undefined','limit','count','apply','reject','update','then','error','stack','name','send','index','map','SmsQueueReport','rawAttributes','fieldName','type','query','keys','filters','model','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge'];(function(_0x2d38e3,_0x3ac20e){var _0x1306a7=function(_0x5765d7){while(--_0x5765d7){_0x2d38e3['push'](_0x2d38e3['shift']());}};_0x1306a7(++_0x3ac20e);}(_0x52e8,0xa0));var _0x852e=function(_0x496738,_0x3f1a9f){_0x496738=_0x496738-0x0;var _0xee1381=_0x52e8[_0x496738];return _0xee1381;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x852e('0x0'));var jsonpatch=require(_0x852e('0x1'));var rp=require('request-promise');var moment=require(_0x852e('0x2'));var BPromise=require(_0x852e('0x3'));var Mustache=require(_0x852e('0x4'));var util=require(_0x852e('0x5'));var path=require('path');var sox=require(_0x852e('0x6'));var csv=require(_0x852e('0x7'));var ejs=require(_0x852e('0x8'));var fs=require('fs');var fs_extra=require(_0x852e('0x9'));var _=require(_0x852e('0xa'));var squel=require('squel');var crypto=require(_0x852e('0xb'));var jsforce=require(_0x852e('0xc'));var deskjs=require(_0x852e('0xd'));var toCsv=require(_0x852e('0x7'));var querystring=require(_0x852e('0xe'));var Papa=require(_0x852e('0xf'));var Redis=require(_0x852e('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x852e('0x11'));var hardwareService=require(_0x852e('0x12'));var logger=require(_0x852e('0x13'))('api');var utils=require(_0x852e('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x852e('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4a7d77,_0x2ff135){_0x2ff135=_0x2ff135||0xcc;return function(_0x481c11){if(_0x481c11){return _0x4a7d77[_0x852e('0x16')](_0x2ff135);}return _0x4a7d77['status'](_0x2ff135)[_0x852e('0x17')]();};}function respondWithResult(_0x3278d4,_0x5884a9){_0x5884a9=_0x5884a9||0xc8;return function(_0x769dac){if(_0x769dac){return _0x3278d4[_0x852e('0x18')](_0x5884a9)[_0x852e('0x19')](_0x769dac);}};}function respondWithFilteredResult(_0x527d76,_0x56c3bc){return function(_0x4cbf01){if(_0x4cbf01){var _0x222186=typeof _0x56c3bc[_0x852e('0x1a')]===_0x852e('0x1b')&&typeof _0x56c3bc[_0x852e('0x1c')]==='undefined';var _0x1a4130=_0x4cbf01['count'];var _0x390619=_0x222186?0x0:_0x56c3bc[_0x852e('0x1a')];var _0x3648da=_0x222186?_0x4cbf01[_0x852e('0x1d')]:_0x56c3bc[_0x852e('0x1a')]+_0x56c3bc[_0x852e('0x1c')];var _0x1df1d9;if(_0x3648da>=_0x1a4130){_0x3648da=_0x1a4130;_0x1df1d9=0xc8;}else{_0x1df1d9=0xce;}_0x527d76['status'](_0x1df1d9);return _0x527d76['set']('Content-Range',_0x390619+'-'+_0x3648da+'/'+_0x1a4130)['json'](_0x4cbf01);}return null;};}function patchUpdates(_0x196cef){return function(_0x4ca206){try{jsonpatch[_0x852e('0x1e')](_0x4ca206,_0x196cef,!![]);}catch(_0x11af32){return BPromise[_0x852e('0x1f')](_0x11af32);}return _0x4ca206['save']();};}function saveUpdates(_0x4349d3,_0x103636){return function(_0x24b17f){if(_0x24b17f){return _0x24b17f[_0x852e('0x20')](_0x4349d3)[_0x852e('0x21')](function(_0x2f275a){return _0x2f275a;});}return null;};}function removeEntity(_0x1f1f78,_0x4c3dfc){return function(_0x2120e4){if(_0x2120e4){return _0x2120e4['destroy']()['then'](function(){_0x1f1f78['status'](0xcc)[_0x852e('0x17')]();});}};}function handleEntityNotFound(_0x1b5b06,_0x2a90d7){return function(_0xae0f42){if(!_0xae0f42){_0x1b5b06[_0x852e('0x16')](0x194);}return _0xae0f42;};}function handleError(_0x336300,_0x4e5575){_0x4e5575=_0x4e5575||0x1f4;return function(_0x49a42d){logger[_0x852e('0x22')](_0x49a42d[_0x852e('0x23')]);if(_0x49a42d[_0x852e('0x24')]){delete _0x49a42d[_0x852e('0x24')];}_0x336300[_0x852e('0x18')](_0x4e5575)[_0x852e('0x25')](_0x49a42d);};}exports[_0x852e('0x26')]=function(_0x4251da,_0x3ecb27){var _0x592beb={},_0x2111c1={},_0x8d5e42={'count':0x0,'rows':[]};var _0x37a3ca=_[_0x852e('0x27')](db[_0x852e('0x28')][_0x852e('0x29')],function(_0x2da5af){return{'name':_0x2da5af[_0x852e('0x2a')],'type':_0x2da5af[_0x852e('0x2b')]['key']};});_0x2111c1['model']=_[_0x852e('0x27')](_0x37a3ca,'name');_0x2111c1[_0x852e('0x2c')]=_[_0x852e('0x2d')](_0x4251da[_0x852e('0x2c')]);_0x2111c1[_0x852e('0x2e')]=_['intersection'](_0x2111c1[_0x852e('0x2f')],_0x2111c1[_0x852e('0x2c')]);_0x592beb['attributes']=_[_0x852e('0x30')](_0x2111c1[_0x852e('0x2f')],qs['fields'](_0x4251da[_0x852e('0x2c')][_0x852e('0x31')]));_0x592beb[_0x852e('0x32')]=_0x592beb['attributes'][_0x852e('0x33')]?_0x592beb[_0x852e('0x32')]:_0x2111c1['model'];if(!_0x4251da[_0x852e('0x2c')][_0x852e('0x34')](_0x852e('0x35'))){_0x592beb[_0x852e('0x1c')]=qs[_0x852e('0x1c')](_0x4251da[_0x852e('0x2c')][_0x852e('0x1c')]);_0x592beb['offset']=qs[_0x852e('0x1a')](_0x4251da['query'][_0x852e('0x1a')]);}_0x592beb[_0x852e('0x36')]=qs[_0x852e('0x37')](_0x4251da[_0x852e('0x2c')][_0x852e('0x37')]);_0x592beb['where']=qs[_0x852e('0x2e')](_[_0x852e('0x38')](_0x4251da[_0x852e('0x2c')],_0x2111c1['filters']),_0x37a3ca);if(_0x4251da[_0x852e('0x2c')][_0x852e('0x39')]){_0x592beb['where']=_[_0x852e('0x3a')](_0x592beb[_0x852e('0x3b')],{'$or':_[_0x852e('0x27')](_0x37a3ca,function(_0x23ec1d){if(_0x23ec1d[_0x852e('0x2b')]!==_0x852e('0x3c')){var _0x29e0eb={};_0x29e0eb[_0x23ec1d[_0x852e('0x24')]]={'$like':'%'+_0x4251da[_0x852e('0x2c')][_0x852e('0x39')]+'%'};return _0x29e0eb;}})});}_0x592beb=_[_0x852e('0x3a')]({},_0x592beb,_0x4251da['options']);var _0x4e8be7={'where':_0x592beb[_0x852e('0x3b')]};return db['SmsQueueReport']['count'](_0x4e8be7)[_0x852e('0x21')](function(_0x178a8b){_0x8d5e42[_0x852e('0x1d')]=_0x178a8b;if(_0x4251da[_0x852e('0x2c')][_0x852e('0x3d')]){_0x592beb[_0x852e('0x3e')]=[{'all':!![]}];}return db['SmsQueueReport'][_0x852e('0x3f')](_0x592beb);})[_0x852e('0x21')](function(_0x15eb4b){_0x8d5e42['rows']=_0x15eb4b;return _0x8d5e42;})['then'](respondWithFilteredResult(_0x3ecb27,_0x592beb))[_0x852e('0x40')](handleError(_0x3ecb27,null));};exports[_0x852e('0x41')]=function(_0x108312,_0x5e9dc0){var _0x38f840={'raw':!![],'where':{'id':_0x108312[_0x852e('0x42')]['id']}},_0x54749a={};_0x54749a['model']=_[_0x852e('0x2d')](db[_0x852e('0x28')][_0x852e('0x29')]);_0x54749a['query']=_[_0x852e('0x2d')](_0x108312[_0x852e('0x2c')]);_0x54749a[_0x852e('0x2e')]=_[_0x852e('0x30')](_0x54749a['model'],_0x54749a[_0x852e('0x2c')]);_0x38f840['attributes']=_['intersection'](_0x54749a['model'],qs[_0x852e('0x31')](_0x108312['query'][_0x852e('0x31')]));_0x38f840['attributes']=_0x38f840[_0x852e('0x32')][_0x852e('0x33')]?_0x38f840['attributes']:_0x54749a[_0x852e('0x2f')];if(_0x108312[_0x852e('0x2c')]['includeAll']){_0x38f840[_0x852e('0x3e')]=[{'all':!![]}];}_0x38f840=_[_0x852e('0x3a')]({},_0x38f840,_0x108312[_0x852e('0x43')]);return db[_0x852e('0x28')][_0x852e('0x44')](_0x38f840)[_0x852e('0x21')](handleEntityNotFound(_0x5e9dc0,null))['then'](respondWithResult(_0x5e9dc0,null))[_0x852e('0x40')](handleError(_0x5e9dc0,null));};exports[_0x852e('0x45')]=function(_0x372fbf,_0x40585a){return db[_0x852e('0x28')][_0x852e('0x45')](_0x372fbf[_0x852e('0x46')],{})[_0x852e('0x21')](respondWithResult(_0x40585a,0xc9))[_0x852e('0x40')](handleError(_0x40585a,null));};exports['update']=function(_0x233f05,_0x13282c){if(_0x233f05['body']['id']){delete _0x233f05[_0x852e('0x46')]['id'];}return db['SmsQueueReport'][_0x852e('0x44')]({'where':{'id':_0x233f05[_0x852e('0x42')]['id']}})['then'](handleEntityNotFound(_0x13282c,null))[_0x852e('0x21')](saveUpdates(_0x233f05[_0x852e('0x46')],null))[_0x852e('0x21')](respondWithResult(_0x13282c,null))[_0x852e('0x40')](handleError(_0x13282c,null));};exports[_0x852e('0x47')]=function(_0x5cfaeb,_0x1f1843){return db[_0x852e('0x28')][_0x852e('0x44')]({'where':{'id':_0x5cfaeb['params']['id']}})['then'](handleEntityNotFound(_0x1f1843,null))[_0x852e('0x21')](removeEntity(_0x1f1843,null))[_0x852e('0x40')](handleError(_0x1f1843,null));};exports[_0x852e('0x48')]=function(_0x5032ee,_0x34c618){return db[_0x852e('0x28')]['describe']()['then'](respondWithResult(_0x34c618,null))[_0x852e('0x40')](handleError(_0x34c618,null));};
\ No newline at end of file
+var _0xa86f=['fields','length','attributes','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','include','findAll','rows','catch','show','params','intersection','includeAll','create','body','update','find','describe','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','json','undefined','count','offset','limit','Content-Range','apply','reject','save','then','error','stack','name','send','index','SmsQueueReport','rawAttributes','fieldName','type','key','model','map','query','keys','filters'];(function(_0x4e8b44,_0x474654){var _0x531bfc=function(_0x334bd9){while(--_0x334bd9){_0x4e8b44['push'](_0x4e8b44['shift']());}};_0x531bfc(++_0x474654);}(_0xa86f,0x146));var _0xfa86=function(_0x3da7ab,_0x2e00dc){_0x3da7ab=_0x3da7ab-0x0;var _0x4819ed=_0xa86f[_0x3da7ab];return _0x4819ed;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xfa86('0x0'));var zipdir=require(_0xfa86('0x1'));var jsonpatch=require(_0xfa86('0x2'));var rp=require(_0xfa86('0x3'));var moment=require('moment');var BPromise=require(_0xfa86('0x4'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0xfa86('0x5'));var csv=require(_0xfa86('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xfa86('0x7'));var _=require(_0xfa86('0x8'));var squel=require('squel');var crypto=require(_0xfa86('0x9'));var jsforce=require(_0xfa86('0xa'));var deskjs=require(_0xfa86('0xb'));var toCsv=require(_0xfa86('0x6'));var querystring=require(_0xfa86('0xc'));var Papa=require(_0xfa86('0xd'));var Redis=require('ioredis');var authService=require(_0xfa86('0xe'));var qs=require(_0xfa86('0xf'));var as=require(_0xfa86('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xfa86('0x11'))(_0xfa86('0x12'));var utils=require(_0xfa86('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xfa86('0x14'))['db'];function respondWithStatusCode(_0x502aa1,_0x244d0f){_0x244d0f=_0x244d0f||0xcc;return function(_0x8ba86f){if(_0x8ba86f){return _0x502aa1[_0xfa86('0x15')](_0x244d0f);}return _0x502aa1[_0xfa86('0x16')](_0x244d0f)[_0xfa86('0x17')]();};}function respondWithResult(_0x517c27,_0x4b300e){_0x4b300e=_0x4b300e||0xc8;return function(_0x3bdb1c){if(_0x3bdb1c){return _0x517c27['status'](_0x4b300e)[_0xfa86('0x18')](_0x3bdb1c);}};}function respondWithFilteredResult(_0x3031f9,_0x5a6234){return function(_0x5613a9){if(_0x5613a9){var _0x32cfe7=typeof _0x5a6234['offset']===_0xfa86('0x19')&&typeof _0x5a6234['limit']==='undefined';var _0xca7d05=_0x5613a9[_0xfa86('0x1a')];var _0x18de55=_0x32cfe7?0x0:_0x5a6234['offset'];var _0x47bddc=_0x32cfe7?_0x5613a9['count']:_0x5a6234[_0xfa86('0x1b')]+_0x5a6234[_0xfa86('0x1c')];var _0x211dfd;if(_0x47bddc>=_0xca7d05){_0x47bddc=_0xca7d05;_0x211dfd=0xc8;}else{_0x211dfd=0xce;}_0x3031f9[_0xfa86('0x16')](_0x211dfd);return _0x3031f9['set'](_0xfa86('0x1d'),_0x18de55+'-'+_0x47bddc+'/'+_0xca7d05)[_0xfa86('0x18')](_0x5613a9);}return null;};}function patchUpdates(_0x4f137e){return function(_0x56cebe){try{jsonpatch[_0xfa86('0x1e')](_0x56cebe,_0x4f137e,!![]);}catch(_0x947dd0){return BPromise[_0xfa86('0x1f')](_0x947dd0);}return _0x56cebe[_0xfa86('0x20')]();};}function saveUpdates(_0x4c2d16,_0x539b5f){return function(_0x5e802f){if(_0x5e802f){return _0x5e802f['update'](_0x4c2d16)[_0xfa86('0x21')](function(_0x39db6b){return _0x39db6b;});}return null;};}function removeEntity(_0x4eadd0,_0x3017af){return function(_0x4a8046){if(_0x4a8046){return _0x4a8046['destroy']()[_0xfa86('0x21')](function(){_0x4eadd0['status'](0xcc)[_0xfa86('0x17')]();});}};}function handleEntityNotFound(_0x14be22,_0xcbcaff){return function(_0x5b6616){if(!_0x5b6616){_0x14be22[_0xfa86('0x15')](0x194);}return _0x5b6616;};}function handleError(_0x3f1e71,_0xd8f34f){_0xd8f34f=_0xd8f34f||0x1f4;return function(_0x2df4ae){logger[_0xfa86('0x22')](_0x2df4ae[_0xfa86('0x23')]);if(_0x2df4ae[_0xfa86('0x24')]){delete _0x2df4ae[_0xfa86('0x24')];}_0x3f1e71[_0xfa86('0x16')](_0xd8f34f)[_0xfa86('0x25')](_0x2df4ae);};}exports[_0xfa86('0x26')]=function(_0x523988,_0x179a80){var _0x55818b={},_0x329c0e={},_0x469eef={'count':0x0,'rows':[]};var _0x35d3fa=_['map'](db[_0xfa86('0x27')][_0xfa86('0x28')],function(_0x500f55){return{'name':_0x500f55[_0xfa86('0x29')],'type':_0x500f55[_0xfa86('0x2a')][_0xfa86('0x2b')]};});_0x329c0e[_0xfa86('0x2c')]=_[_0xfa86('0x2d')](_0x35d3fa,_0xfa86('0x24'));_0x329c0e[_0xfa86('0x2e')]=_[_0xfa86('0x2f')](_0x523988['query']);_0x329c0e[_0xfa86('0x30')]=_['intersection'](_0x329c0e[_0xfa86('0x2c')],_0x329c0e[_0xfa86('0x2e')]);_0x55818b['attributes']=_['intersection'](_0x329c0e['model'],qs[_0xfa86('0x31')](_0x523988[_0xfa86('0x2e')][_0xfa86('0x31')]));_0x55818b['attributes']=_0x55818b['attributes'][_0xfa86('0x32')]?_0x55818b[_0xfa86('0x33')]:_0x329c0e[_0xfa86('0x2c')];if(!_0x523988[_0xfa86('0x2e')][_0xfa86('0x34')](_0xfa86('0x35'))){_0x55818b[_0xfa86('0x1c')]=qs[_0xfa86('0x1c')](_0x523988[_0xfa86('0x2e')]['limit']);_0x55818b[_0xfa86('0x1b')]=qs['offset'](_0x523988['query'][_0xfa86('0x1b')]);}_0x55818b[_0xfa86('0x36')]=qs[_0xfa86('0x37')](_0x523988[_0xfa86('0x2e')][_0xfa86('0x37')]);_0x55818b[_0xfa86('0x38')]=qs[_0xfa86('0x30')](_[_0xfa86('0x39')](_0x523988[_0xfa86('0x2e')],_0x329c0e[_0xfa86('0x30')]),_0x35d3fa);if(_0x523988[_0xfa86('0x2e')]['filter']){_0x55818b['where']=_[_0xfa86('0x3a')](_0x55818b[_0xfa86('0x38')],{'$or':_['map'](_0x35d3fa,function(_0x59a28){if(_0x59a28[_0xfa86('0x2a')]!==_0xfa86('0x3b')){var _0x395f72={};_0x395f72[_0x59a28['name']]={'$like':'%'+_0x523988[_0xfa86('0x2e')][_0xfa86('0x3c')]+'%'};return _0x395f72;}})});}_0x55818b=_[_0xfa86('0x3a')]({},_0x55818b,_0x523988[_0xfa86('0x3d')]);var _0x297473={'where':_0x55818b[_0xfa86('0x38')]};return db[_0xfa86('0x27')][_0xfa86('0x1a')](_0x297473)['then'](function(_0x2cb538){_0x469eef[_0xfa86('0x1a')]=_0x2cb538;if(_0x523988[_0xfa86('0x2e')]['includeAll']){_0x55818b[_0xfa86('0x3e')]=[{'all':!![]}];}return db[_0xfa86('0x27')][_0xfa86('0x3f')](_0x55818b);})['then'](function(_0x2c281e){_0x469eef[_0xfa86('0x40')]=_0x2c281e;return _0x469eef;})['then'](respondWithFilteredResult(_0x179a80,_0x55818b))[_0xfa86('0x41')](handleError(_0x179a80,null));};exports[_0xfa86('0x42')]=function(_0x3d9bbe,_0x25b8e2){var _0x24b435={'raw':!![],'where':{'id':_0x3d9bbe[_0xfa86('0x43')]['id']}},_0x1ed920={};_0x1ed920[_0xfa86('0x2c')]=_[_0xfa86('0x2f')](db[_0xfa86('0x27')][_0xfa86('0x28')]);_0x1ed920[_0xfa86('0x2e')]=_[_0xfa86('0x2f')](_0x3d9bbe[_0xfa86('0x2e')]);_0x1ed920['filters']=_[_0xfa86('0x44')](_0x1ed920[_0xfa86('0x2c')],_0x1ed920[_0xfa86('0x2e')]);_0x24b435[_0xfa86('0x33')]=_[_0xfa86('0x44')](_0x1ed920['model'],qs[_0xfa86('0x31')](_0x3d9bbe[_0xfa86('0x2e')][_0xfa86('0x31')]));_0x24b435['attributes']=_0x24b435[_0xfa86('0x33')]['length']?_0x24b435[_0xfa86('0x33')]:_0x1ed920['model'];if(_0x3d9bbe[_0xfa86('0x2e')][_0xfa86('0x45')]){_0x24b435[_0xfa86('0x3e')]=[{'all':!![]}];}_0x24b435=_['merge']({},_0x24b435,_0x3d9bbe[_0xfa86('0x3d')]);return db[_0xfa86('0x27')]['find'](_0x24b435)[_0xfa86('0x21')](handleEntityNotFound(_0x25b8e2,null))['then'](respondWithResult(_0x25b8e2,null))[_0xfa86('0x41')](handleError(_0x25b8e2,null));};exports[_0xfa86('0x46')]=function(_0x443850,_0x17116c){return db[_0xfa86('0x27')][_0xfa86('0x46')](_0x443850[_0xfa86('0x47')],{})[_0xfa86('0x21')](respondWithResult(_0x17116c,0xc9))[_0xfa86('0x41')](handleError(_0x17116c,null));};exports[_0xfa86('0x48')]=function(_0x41e8b5,_0x2d9f27){if(_0x41e8b5[_0xfa86('0x47')]['id']){delete _0x41e8b5['body']['id'];}return db[_0xfa86('0x27')]['find']({'where':{'id':_0x41e8b5['params']['id']}})['then'](handleEntityNotFound(_0x2d9f27,null))[_0xfa86('0x21')](saveUpdates(_0x41e8b5[_0xfa86('0x47')],null))[_0xfa86('0x21')](respondWithResult(_0x2d9f27,null))['catch'](handleError(_0x2d9f27,null));};exports['destroy']=function(_0x2ce700,_0x2d5614){return db[_0xfa86('0x27')][_0xfa86('0x49')]({'where':{'id':_0x2ce700[_0xfa86('0x43')]['id']}})[_0xfa86('0x21')](handleEntityNotFound(_0x2d5614,null))['then'](removeEntity(_0x2d5614,null))[_0xfa86('0x41')](handleError(_0x2d5614,null));};exports[_0xfa86('0x4a')]=function(_0x8be4f9,_0x38d97a){return db['SmsQueueReport'][_0xfa86('0x4a')]()[_0xfa86('0x21')](respondWithResult(_0x38d97a,null))[_0xfa86('0x41')](handleError(_0x38d97a,null));};
\ No newline at end of file