MCPcopy
hub / github.com/parse-community/parse-server / expressRouter

Method expressRouter

src/Routers/FilesRouter.js:89–134  ·  view source on GitHub ↗
({ maxUploadSize = '20Mb' } = {})

Source from the content-addressed store, hash-verified

87
88export class FilesRouter {
89 expressRouter({ maxUploadSize = '20Mb' } = {}) {
90 var router = express.Router();
91 // Lightweight info initializer so handleParseSession can resolve session tokens.
92 // Unlike POST/DELETE routes, GET file routes skip handleParseHeaders (which
93 // normally sets req.info) because those requests may not carry Parse headers.
94 const initInfo = (req, res, next) => {
95 if (!req.info) {
96 const sessionToken = req.get('X-Parse-Session-Token');
97 req.info = {
98 sessionToken,
99 installationId: req.get('X-Parse-Installation-Id'),
100 };
101 // If no session token and no auth yet (public access), set a minimal
102 // auth object so handleParseSession skips session resolution.
103 if (!sessionToken && !req.auth) {
104 req.auth = { isMaster: false };
105 }
106 }
107 next();
108 };
109 // Metadata route must come before the catch-all GET route
110 router.get('/files/:appId/metadata/*filepath', initInfo, Middlewares.handleParseSession, this.metadataHandler);
111 router.get('/files/:appId/*filepath', initInfo, Middlewares.handleParseSession, this.getHandler);
112
113 router.post('/files', function (req, res, next) {
114 next(new Parse.Error(Parse.Error.INVALID_FILE_NAME, 'Filename not provided.'));
115 });
116
117 router.post(
118 '/files/:filename',
119 this._earlyHeadersMiddleware(),
120 this._bodyParsingMiddleware(maxUploadSize),
121 Middlewares.handleParseHeaders,
122 Middlewares.handleParseSession,
123 this.createHandler.bind(this)
124 );
125
126 router.delete(
127 '/files/*filepath',
128 Middlewares.handleParseHeaders,
129 Middlewares.handleParseSession,
130 Middlewares.enforceMasterKeyAccess,
131 this.deleteHandler
132 );
133 return router;
134 }
135
136 static _getFilenameFromParams(req) {
137 const parts = req.params.filepath;

Callers

nothing calls this directly

Calls 4

nextFunction · 0.85
getMethod · 0.45

Tested by

no test coverage detected