#pragma once #include #include #include "ExeGet.h" #include "FlashDataWebSocketServer.h" #include namespace Incart::FileSystemProxyServer { class StartReceiveFileWebApiCommand : public Net::WebApi::exeGet { Q_OBJECT private: FlashDataWebSocketServer* const m_webSocketServer; QString m_defaultExamDataFolder; public: StartReceiveFileWebApiCommand(FlashDataWebSocketServer* const webSocketServer, QString defaultExamDataFolder) : exeGet(), m_webSocketServer(webSocketServer), m_defaultExamDataFolder(defaultExamDataFolder) { } void exe(Net::WebApi::ParsingURI& uri, QTcpSocket* socket) override { QMap uriArgs = uri.getArgs(); if (!uriArgs.contains("fileName")) { m_resp->retError("400 Bad Request"); sendResponse(socket); return; } QString fileName = *(uriArgs.find("fileName")); QString filePath = m_defaultExamDataFolder + "/" + fileName; std::cout << __PRETTY_FUNCTION__ << " filePath=" << filePath.toStdString() << std::endl; m_webSocketServer->startWriteToFile(filePath.toStdString()); m_resp->ret200(); sendResponse(socket); } }; } // namespace Incart::FileSystemProxyServer