Built motion from commit d5e4af8c.|2.6.23
[motion2.git] / server / api / intZendeskField / intZendeskField.controller.js
index 3d6e368..2e5155b 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x78a8=['length','find','create','body','params','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','Content-Range','apply','reject','update','then','destroy','name','send','index','map','ZendeskField','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','catch','show'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0x78a8,0xda));var _0x878a=function(_0x3a5ca2,_0x23e60c){_0x3a5ca2=_0x3a5ca2-0x0;var _0x317e47=_0x78a8[_0x3a5ca2];return _0x317e47;};'use strict';var emlformat=require(_0x878a('0x0'));var rimraf=require(_0x878a('0x1'));var zipdir=require(_0x878a('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x878a('0x3'));var BPromise=require(_0x878a('0x4'));var Mustache=require(_0x878a('0x5'));var util=require(_0x878a('0x6'));var path=require(_0x878a('0x7'));var sox=require(_0x878a('0x8'));var csv=require(_0x878a('0x9'));var ejs=require(_0x878a('0xa'));var fs=require('fs');var fs_extra=require(_0x878a('0xb'));var _=require(_0x878a('0xc'));var squel=require(_0x878a('0xd'));var crypto=require('crypto');var jsforce=require(_0x878a('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x878a('0x9'));var querystring=require(_0x878a('0xf'));var Papa=require(_0x878a('0x10'));var Redis=require(_0x878a('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x878a('0x12'));var as=require(_0x878a('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x878a('0x14'))('api');var utils=require('../../config/utils');var config=require(_0x878a('0x15'));var licenseUtil=require(_0x878a('0x16'));var db=require(_0x878a('0x17'))['db'];function respondWithStatusCode(_0x479796,_0x3e3ce5){_0x3e3ce5=_0x3e3ce5||0xcc;return function(_0x3938f9){if(_0x3938f9){return _0x479796[_0x878a('0x18')](_0x3e3ce5);}return _0x479796['status'](_0x3e3ce5)[_0x878a('0x19')]();};}function respondWithResult(_0x53bb33,_0x5d9650){_0x5d9650=_0x5d9650||0xc8;return function(_0x46e624){if(_0x46e624){return _0x53bb33[_0x878a('0x1a')](_0x5d9650)[_0x878a('0x1b')](_0x46e624);}};}function respondWithFilteredResult(_0x3f2ef2,_0x56f5e5){return function(_0x182fc5){if(_0x182fc5){var _0x191b59=typeof _0x56f5e5[_0x878a('0x1c')]===_0x878a('0x1d')&&typeof _0x56f5e5[_0x878a('0x1e')]==='undefined';var _0x5a69d8=_0x182fc5[_0x878a('0x1f')];var _0x3b7847=_0x191b59?0x0:_0x56f5e5['offset'];var _0x3849ef=_0x191b59?_0x182fc5[_0x878a('0x1f')]:_0x56f5e5[_0x878a('0x1c')]+_0x56f5e5[_0x878a('0x1e')];var _0x1dfd03;if(_0x3849ef>=_0x5a69d8){_0x3849ef=_0x5a69d8;_0x1dfd03=0xc8;}else{_0x1dfd03=0xce;}_0x3f2ef2[_0x878a('0x1a')](_0x1dfd03);return _0x3f2ef2['set'](_0x878a('0x20'),_0x3b7847+'-'+_0x3849ef+'/'+_0x5a69d8)[_0x878a('0x1b')](_0x182fc5);}return null;};}function patchUpdates(_0x449db8){return function(_0x1967d3){try{jsonpatch[_0x878a('0x21')](_0x1967d3,_0x449db8,!![]);}catch(_0x516e83){return BPromise[_0x878a('0x22')](_0x516e83);}return _0x1967d3['save']();};}function saveUpdates(_0x185952,_0x71cfcd){return function(_0x51b608){if(_0x51b608){return _0x51b608[_0x878a('0x23')](_0x185952)[_0x878a('0x24')](function(_0x221a38){return _0x221a38;});}return null;};}function removeEntity(_0x247f5e,_0x49479a){return function(_0x2b009b){if(_0x2b009b){return _0x2b009b[_0x878a('0x25')]()[_0x878a('0x24')](function(){_0x247f5e['status'](0xcc)[_0x878a('0x19')]();});}};}function handleEntityNotFound(_0x3a35cc,_0x3215a5){return function(_0x31e437){if(!_0x31e437){_0x3a35cc[_0x878a('0x18')](0x194);}return _0x31e437;};}function handleError(_0x36fe82,_0xfb4da){_0xfb4da=_0xfb4da||0x1f4;return function(_0xaa06b4){logger['error'](_0xaa06b4['stack']);if(_0xaa06b4[_0x878a('0x26')]){delete _0xaa06b4[_0x878a('0x26')];}_0x36fe82[_0x878a('0x1a')](_0xfb4da)[_0x878a('0x27')](_0xaa06b4);};}exports[_0x878a('0x28')]=function(_0x427223,_0x375eea){var _0x547887={},_0xf8acdf={},_0x3442ff={'count':0x0,'rows':[]};var _0x2b1e9e=_[_0x878a('0x29')](db[_0x878a('0x2a')][_0x878a('0x2b')],function(_0x430ce9){return{'name':_0x430ce9[_0x878a('0x2c')],'type':_0x430ce9[_0x878a('0x2d')]['key']};});_0xf8acdf[_0x878a('0x2e')]=_[_0x878a('0x29')](_0x2b1e9e,_0x878a('0x26'));_0xf8acdf[_0x878a('0x2f')]=_[_0x878a('0x30')](_0x427223['query']);_0xf8acdf[_0x878a('0x31')]=_[_0x878a('0x32')](_0xf8acdf[_0x878a('0x2e')],_0xf8acdf[_0x878a('0x2f')]);_0x547887[_0x878a('0x33')]=_[_0x878a('0x32')](_0xf8acdf[_0x878a('0x2e')],qs[_0x878a('0x34')](_0x427223[_0x878a('0x2f')][_0x878a('0x34')]));_0x547887[_0x878a('0x33')]=_0x547887[_0x878a('0x33')]['length']?_0x547887[_0x878a('0x33')]:_0xf8acdf[_0x878a('0x2e')];if(!_0x427223['query']['hasOwnProperty'](_0x878a('0x35'))){_0x547887[_0x878a('0x1e')]=qs[_0x878a('0x1e')](_0x427223[_0x878a('0x2f')]['limit']);_0x547887['offset']=qs['offset'](_0x427223[_0x878a('0x2f')][_0x878a('0x1c')]);}_0x547887[_0x878a('0x36')]=qs[_0x878a('0x37')](_0x427223[_0x878a('0x2f')][_0x878a('0x37')]);_0x547887[_0x878a('0x38')]=qs['filters'](_[_0x878a('0x39')](_0x427223[_0x878a('0x2f')],_0xf8acdf[_0x878a('0x31')]),_0x2b1e9e);if(_0x427223[_0x878a('0x2f')][_0x878a('0x3a')]){_0x547887[_0x878a('0x38')]=_[_0x878a('0x3b')](_0x547887[_0x878a('0x38')],{'$or':_[_0x878a('0x29')](_0x2b1e9e,function(_0x5c05ea){if(_0x5c05ea[_0x878a('0x2d')]!=='VIRTUAL'){var _0x338963={};_0x338963[_0x5c05ea[_0x878a('0x26')]]={'$like':'%'+_0x427223[_0x878a('0x2f')]['filter']+'%'};return _0x338963;}})});}_0x547887=_[_0x878a('0x3b')]({},_0x547887,_0x427223[_0x878a('0x3c')]);var _0x3c0d2e={'where':_0x547887[_0x878a('0x38')]};return db[_0x878a('0x2a')][_0x878a('0x1f')](_0x3c0d2e)[_0x878a('0x24')](function(_0x38edfe){_0x3442ff['count']=_0x38edfe;if(_0x427223['query'][_0x878a('0x3d')]){_0x547887[_0x878a('0x3e')]=[{'all':!![]}];}return db[_0x878a('0x2a')][_0x878a('0x3f')](_0x547887);})['then'](function(_0x10d4f0){_0x3442ff['rows']=_0x10d4f0;return _0x3442ff;})['then'](respondWithFilteredResult(_0x375eea,_0x547887))[_0x878a('0x40')](handleError(_0x375eea,null));};exports[_0x878a('0x41')]=function(_0x433017,_0x2a6c52){var _0x4c0dde={'raw':!![],'where':{'id':_0x433017['params']['id']}},_0x183475={};_0x183475[_0x878a('0x2e')]=_[_0x878a('0x30')](db[_0x878a('0x2a')][_0x878a('0x2b')]);_0x183475[_0x878a('0x2f')]=_[_0x878a('0x30')](_0x433017[_0x878a('0x2f')]);_0x183475[_0x878a('0x31')]=_[_0x878a('0x32')](_0x183475[_0x878a('0x2e')],_0x183475['query']);_0x4c0dde[_0x878a('0x33')]=_[_0x878a('0x32')](_0x183475[_0x878a('0x2e')],qs[_0x878a('0x34')](_0x433017[_0x878a('0x2f')][_0x878a('0x34')]));_0x4c0dde['attributes']=_0x4c0dde[_0x878a('0x33')][_0x878a('0x42')]?_0x4c0dde[_0x878a('0x33')]:_0x183475[_0x878a('0x2e')];if(_0x433017[_0x878a('0x2f')][_0x878a('0x3d')]){_0x4c0dde[_0x878a('0x3e')]=[{'all':!![]}];}_0x4c0dde=_[_0x878a('0x3b')]({},_0x4c0dde,_0x433017[_0x878a('0x3c')]);return db[_0x878a('0x2a')][_0x878a('0x43')](_0x4c0dde)[_0x878a('0x24')](handleEntityNotFound(_0x2a6c52,null))[_0x878a('0x24')](respondWithResult(_0x2a6c52,null))[_0x878a('0x40')](handleError(_0x2a6c52,null));};exports[_0x878a('0x44')]=function(_0x17e32e,_0x2c5e91){return db[_0x878a('0x2a')]['create'](_0x17e32e['body'],{})['then'](respondWithResult(_0x2c5e91,0xc9))['catch'](handleError(_0x2c5e91,null));};exports['update']=function(_0x26a598,_0x5cd5be){if(_0x26a598['body']['id']){delete _0x26a598[_0x878a('0x45')]['id'];}return db[_0x878a('0x2a')][_0x878a('0x43')]({'where':{'id':_0x26a598[_0x878a('0x46')]['id']}})['then'](handleEntityNotFound(_0x5cd5be,null))[_0x878a('0x24')](saveUpdates(_0x26a598[_0x878a('0x45')],null))['then'](respondWithResult(_0x5cd5be,null))[_0x878a('0x40')](handleError(_0x5cd5be,null));};exports[_0x878a('0x25')]=function(_0x22774f,_0x27b461){return db[_0x878a('0x2a')][_0x878a('0x43')]({'where':{'id':_0x22774f[_0x878a('0x46')]['id']}})[_0x878a('0x24')](handleEntityNotFound(_0x27b461,null))[_0x878a('0x24')](removeEntity(_0x27b461,null))[_0x878a('0x40')](handleError(_0x27b461,null));};
\ No newline at end of file
+var _0x4512=['query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','keys','find','create','body','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','name','send','index','map','ZendeskField','rawAttributes','type','key','model'];(function(_0x201ed2,_0x1042cc){var _0x138582=function(_0x682b4a){while(--_0x682b4a){_0x201ed2['push'](_0x201ed2['shift']());}};_0x138582(++_0x1042cc);}(_0x4512,0x1e7));var _0x2451=function(_0xf4add4,_0x5b9cc1){_0xf4add4=_0xf4add4-0x0;var _0x1c42fb=_0x4512[_0xf4add4];return _0x1c42fb;};'use strict';var emlformat=require(_0x2451('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x2451('0x1'));var jsonpatch=require(_0x2451('0x2'));var rp=require('request-promise');var moment=require(_0x2451('0x3'));var BPromise=require(_0x2451('0x4'));var Mustache=require(_0x2451('0x5'));var util=require(_0x2451('0x6'));var path=require('path');var sox=require(_0x2451('0x7'));var csv=require('to-csv');var ejs=require(_0x2451('0x8'));var fs=require('fs');var fs_extra=require(_0x2451('0x9'));var _=require(_0x2451('0xa'));var squel=require(_0x2451('0xb'));var crypto=require(_0x2451('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x2451('0xd'));var toCsv=require(_0x2451('0xe'));var querystring=require(_0x2451('0xf'));var Papa=require(_0x2451('0x10'));var Redis=require(_0x2451('0x11'));var authService=require(_0x2451('0x12'));var qs=require(_0x2451('0x13'));var as=require(_0x2451('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2451('0x15'))(_0x2451('0x16'));var utils=require(_0x2451('0x17'));var config=require(_0x2451('0x18'));var licenseUtil=require(_0x2451('0x19'));var db=require(_0x2451('0x1a'))['db'];function respondWithStatusCode(_0x4135c5,_0xe5c70c){_0xe5c70c=_0xe5c70c||0xcc;return function(_0x429a61){if(_0x429a61){return _0x4135c5[_0x2451('0x1b')](_0xe5c70c);}return _0x4135c5['status'](_0xe5c70c)[_0x2451('0x1c')]();};}function respondWithResult(_0x174347,_0x27d060){_0x27d060=_0x27d060||0xc8;return function(_0x3bbc00){if(_0x3bbc00){return _0x174347[_0x2451('0x1d')](_0x27d060)[_0x2451('0x1e')](_0x3bbc00);}};}function respondWithFilteredResult(_0x7a935a,_0x59f8ce){return function(_0x458682){if(_0x458682){var _0x52ef9e=typeof _0x59f8ce[_0x2451('0x1f')]===_0x2451('0x20')&&typeof _0x59f8ce[_0x2451('0x21')]===_0x2451('0x20');var _0x571301=_0x458682[_0x2451('0x22')];var _0x5cfd9f=_0x52ef9e?0x0:_0x59f8ce[_0x2451('0x1f')];var _0x4bf84e=_0x52ef9e?_0x458682[_0x2451('0x22')]:_0x59f8ce[_0x2451('0x1f')]+_0x59f8ce[_0x2451('0x21')];var _0xb53179;if(_0x4bf84e>=_0x571301){_0x4bf84e=_0x571301;_0xb53179=0xc8;}else{_0xb53179=0xce;}_0x7a935a[_0x2451('0x1d')](_0xb53179);return _0x7a935a[_0x2451('0x23')](_0x2451('0x24'),_0x5cfd9f+'-'+_0x4bf84e+'/'+_0x571301)[_0x2451('0x1e')](_0x458682);}return null;};}function patchUpdates(_0x4dd382){return function(_0x5cb073){try{jsonpatch[_0x2451('0x25')](_0x5cb073,_0x4dd382,!![]);}catch(_0x42eacf){return BPromise[_0x2451('0x26')](_0x42eacf);}return _0x5cb073[_0x2451('0x27')]();};}function saveUpdates(_0x5ec657,_0xeafcfe){return function(_0x2d5170){if(_0x2d5170){return _0x2d5170[_0x2451('0x28')](_0x5ec657)['then'](function(_0x1af07f){return _0x1af07f;});}return null;};}function removeEntity(_0x2f3ba2,_0x67ee8e){return function(_0x1616d4){if(_0x1616d4){return _0x1616d4[_0x2451('0x29')]()[_0x2451('0x2a')](function(){_0x2f3ba2['status'](0xcc)[_0x2451('0x1c')]();});}};}function handleEntityNotFound(_0x5e36b9,_0x4569d7){return function(_0x46dcb0){if(!_0x46dcb0){_0x5e36b9[_0x2451('0x1b')](0x194);}return _0x46dcb0;};}function handleError(_0x30661f,_0x41dff4){_0x41dff4=_0x41dff4||0x1f4;return function(_0x2d022d){logger['error'](_0x2d022d['stack']);if(_0x2d022d[_0x2451('0x2b')]){delete _0x2d022d[_0x2451('0x2b')];}_0x30661f[_0x2451('0x1d')](_0x41dff4)[_0x2451('0x2c')](_0x2d022d);};}exports[_0x2451('0x2d')]=function(_0x3a5bf1,_0x251728){var _0xd9d48c={},_0x10037c={},_0x426d32={'count':0x0,'rows':[]};var _0x41d8ca=_[_0x2451('0x2e')](db[_0x2451('0x2f')][_0x2451('0x30')],function(_0x3fc30d){return{'name':_0x3fc30d['fieldName'],'type':_0x3fc30d[_0x2451('0x31')][_0x2451('0x32')]};});_0x10037c[_0x2451('0x33')]=_[_0x2451('0x2e')](_0x41d8ca,_0x2451('0x2b'));_0x10037c[_0x2451('0x34')]=_['keys'](_0x3a5bf1[_0x2451('0x34')]);_0x10037c[_0x2451('0x35')]=_[_0x2451('0x36')](_0x10037c[_0x2451('0x33')],_0x10037c['query']);_0xd9d48c[_0x2451('0x37')]=_[_0x2451('0x36')](_0x10037c[_0x2451('0x33')],qs[_0x2451('0x38')](_0x3a5bf1[_0x2451('0x34')][_0x2451('0x38')]));_0xd9d48c['attributes']=_0xd9d48c[_0x2451('0x37')][_0x2451('0x39')]?_0xd9d48c[_0x2451('0x37')]:_0x10037c[_0x2451('0x33')];if(!_0x3a5bf1[_0x2451('0x34')][_0x2451('0x3a')](_0x2451('0x3b'))){_0xd9d48c[_0x2451('0x21')]=qs[_0x2451('0x21')](_0x3a5bf1[_0x2451('0x34')][_0x2451('0x21')]);_0xd9d48c[_0x2451('0x1f')]=qs[_0x2451('0x1f')](_0x3a5bf1[_0x2451('0x34')][_0x2451('0x1f')]);}_0xd9d48c[_0x2451('0x3c')]=qs[_0x2451('0x3d')](_0x3a5bf1[_0x2451('0x34')][_0x2451('0x3d')]);_0xd9d48c[_0x2451('0x3e')]=qs[_0x2451('0x35')](_['pick'](_0x3a5bf1['query'],_0x10037c['filters']),_0x41d8ca);if(_0x3a5bf1[_0x2451('0x34')][_0x2451('0x3f')]){_0xd9d48c[_0x2451('0x3e')]=_[_0x2451('0x40')](_0xd9d48c[_0x2451('0x3e')],{'$or':_['map'](_0x41d8ca,function(_0x1692e8){if(_0x1692e8[_0x2451('0x31')]!==_0x2451('0x41')){var _0x49f0fa={};_0x49f0fa[_0x1692e8[_0x2451('0x2b')]]={'$like':'%'+_0x3a5bf1[_0x2451('0x34')][_0x2451('0x3f')]+'%'};return _0x49f0fa;}})});}_0xd9d48c=_[_0x2451('0x40')]({},_0xd9d48c,_0x3a5bf1[_0x2451('0x42')]);var _0x361328={'where':_0xd9d48c[_0x2451('0x3e')]};return db[_0x2451('0x2f')][_0x2451('0x22')](_0x361328)[_0x2451('0x2a')](function(_0x3ed2c2){_0x426d32[_0x2451('0x22')]=_0x3ed2c2;if(_0x3a5bf1[_0x2451('0x34')][_0x2451('0x43')]){_0xd9d48c[_0x2451('0x44')]=[{'all':!![]}];}return db[_0x2451('0x2f')][_0x2451('0x45')](_0xd9d48c);})[_0x2451('0x2a')](function(_0x20cbcf){_0x426d32[_0x2451('0x46')]=_0x20cbcf;return _0x426d32;})[_0x2451('0x2a')](respondWithFilteredResult(_0x251728,_0xd9d48c))[_0x2451('0x47')](handleError(_0x251728,null));};exports['show']=function(_0x597381,_0x3b5cbc){var _0xe37f6b={'raw':!![],'where':{'id':_0x597381[_0x2451('0x48')]['id']}},_0x2d19d0={};_0x2d19d0[_0x2451('0x33')]=_['keys'](db[_0x2451('0x2f')][_0x2451('0x30')]);_0x2d19d0[_0x2451('0x34')]=_[_0x2451('0x49')](_0x597381[_0x2451('0x34')]);_0x2d19d0[_0x2451('0x35')]=_['intersection'](_0x2d19d0['model'],_0x2d19d0[_0x2451('0x34')]);_0xe37f6b[_0x2451('0x37')]=_[_0x2451('0x36')](_0x2d19d0[_0x2451('0x33')],qs[_0x2451('0x38')](_0x597381[_0x2451('0x34')][_0x2451('0x38')]));_0xe37f6b[_0x2451('0x37')]=_0xe37f6b['attributes'][_0x2451('0x39')]?_0xe37f6b['attributes']:_0x2d19d0[_0x2451('0x33')];if(_0x597381[_0x2451('0x34')][_0x2451('0x43')]){_0xe37f6b[_0x2451('0x44')]=[{'all':!![]}];}_0xe37f6b=_[_0x2451('0x40')]({},_0xe37f6b,_0x597381[_0x2451('0x42')]);return db[_0x2451('0x2f')][_0x2451('0x4a')](_0xe37f6b)[_0x2451('0x2a')](handleEntityNotFound(_0x3b5cbc,null))[_0x2451('0x2a')](respondWithResult(_0x3b5cbc,null))[_0x2451('0x47')](handleError(_0x3b5cbc,null));};exports[_0x2451('0x4b')]=function(_0x35c2b3,_0xa3be91){return db['ZendeskField'][_0x2451('0x4b')](_0x35c2b3[_0x2451('0x4c')],{})[_0x2451('0x2a')](respondWithResult(_0xa3be91,0xc9))[_0x2451('0x47')](handleError(_0xa3be91,null));};exports[_0x2451('0x28')]=function(_0x327c52,_0x1669ce){if(_0x327c52['body']['id']){delete _0x327c52[_0x2451('0x4c')]['id'];}return db['ZendeskField'][_0x2451('0x4a')]({'where':{'id':_0x327c52[_0x2451('0x48')]['id']}})[_0x2451('0x2a')](handleEntityNotFound(_0x1669ce,null))[_0x2451('0x2a')](saveUpdates(_0x327c52['body'],null))['then'](respondWithResult(_0x1669ce,null))[_0x2451('0x47')](handleError(_0x1669ce,null));};exports['destroy']=function(_0x110d60,_0x431aa0){return db[_0x2451('0x2f')][_0x2451('0x4a')]({'where':{'id':_0x110d60[_0x2451('0x48')]['id']}})[_0x2451('0x2a')](handleEntityNotFound(_0x431aa0,null))['then'](removeEntity(_0x431aa0,null))[_0x2451('0x47')](handleError(_0x431aa0,null));};
\ No newline at end of file