MCPcopy Create free account
hub / github.com/MITK/MITK / DetermineTransferMode

Method DetermineTransferMode

Modules/RESTAPI/src/mitkDataStorageController.cpp:376–405  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

374}
375
376std::string DataStorageController::DetermineTransferMode(const httplib::Request& req) const
377{
378 // Check X-MITK-Transfer-Mode header first (closed enum: direct, file-reference -- strict)
379 if (req.has_header(HEADER_TRANSFER_MODE))
380 {
381 const std::string mode = req.get_header_value(HEADER_TRANSFER_MODE);
382 if (mode == TRANSFER_MODE_FILE_REFERENCE || mode == TRANSFER_MODE_DIRECT)
383 {
384 return mode;
385 }
386 throw InvalidTransferModeHeader{mode};
387 }
388
389 // Fall back to Accept header
390 if (req.has_header(HEADER_ACCEPT))
391 {
392 const std::string accept = req.get_header_value(HEADER_ACCEPT);
393 if (accept.find(MIME_APPLICATION_JSON) != std::string::npos)
394 {
395 return TRANSFER_MODE_FILE_REFERENCE;
396 }
397 if (accept.find(MIME_APPLICATION_OCTET_STREAM) != std::string::npos)
398 {
399 return TRANSFER_MODE_DIRECT;
400 }
401 }
402
403 // Default to direct mode
404 return TRANSFER_MODE_DIRECT;
405}
406
407std::string DataStorageController::ExtractFilenameFromContentDisposition(const httplib::Request& req) const
408{

Callers 1

Calls 1

findMethod · 0.45

Tested by

no test coverage detected