erfan-flmngr-server-fixed
Version:
> Node.js Backend for Flmngr file manager
117 lines (116 loc) • 4.79 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function (o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } });
}) : (function (o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function (o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function (o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.UploaderServlet = void 0;
const Actions_1 = require("../lib/Actions");
const JsonCodec_1 = require("../lib/JsonCodec");
const Uploader_1 = require("../lib/Uploader");
const ServletConfig_1 = require("./ServletConfig");
const Message_1 = require("../lib/action/resp/Message");
const ReqError_1 = require("../lib/action/req/ReqError");
const fsx = __importStar(require("fs-extra"));
class UploaderServlet {
constructor(m_conf = {},_fmRepository, _rootDirPath) {
this._rootDirPath = _rootDirPath;
this._fmRepository = _fmRepository;
this.m_conf = m_conf;
this.m_actions = new Actions_1.Actions();
this.m_json = new JsonCodec_1.JsonCodec();
this.m_config = new ServletConfig_1.ServletConfig(this.m_conf);
this.m_uploader = new Uploader_1.Uploader(this.m_config, this.m_actions,this._fmRepository,this._rootDirPath);
}
getReq(request) {
let dataJson = request.postData;
let fileName = null;
let fileSize = -1;
let file;
console.log(dataJson, fileName, fileSize);
if (request["postFile"]) {
file = request["postFile"]["data"];
fileName = request["postFile"]["filename"];
fileSize = file.length;
}
let req;
try {
req = this.m_json.fromJson(dataJson);
if (this.m_config.isTestAllowed()) {
if (req['test_serverConfig'] != null)
this.m_config.setTestConfig(req['test_serverConfig']);
if (req['test_clearAllFiles'] != null && req['test_clearAllFiles'])
this.clearAllFiles();
}
}
catch (e) {
console.log(e);
return null;
}
if (fileName != null) {
req['m_fileName'] = fileName;
req['m_fileSize'] = fileSize;
req['m_file'] = file;
}
return req;
}
clearAllFiles() {
fsx.removeSync(this.m_config.getTmpDir());
fsx.mkdirsSync(this.m_config.getTmpDir());
fsx.removeSync(this.m_config.getBaseDir());
fsx.mkdirsSync(this.m_config.getBaseDir());
}
addHeaders(response) {
if (this.m_config.getCrossDomainUrl() != null && this.m_config.getCrossDomainUrl().length > 0) {
response.setHeader("Access-Control-Allow-Origin", this.m_config.getCrossDomainUrl());
response.setHeader("Access-Control-Allow-Methods", "POST");
response.setHeader("Access-Control-Allow-Headers", "accept, content-type");
response.setHeader("Access-Control-Max-Age", "1728000");
}
}
doOptions(request, response) {
this.addHeaders(response);
}
doPost(request, response) {
this.addHeaders(response);
let strResp;
let req = null;
try {
req = this.getReq(request);
}
catch (e) {
// FileUploadException and IOException
console.log(e);
}
if (req == null)
req = ReqError_1.createReqError(Message_1.Message.createMessage(Message_1.Message.MALFORMED_REQUEST));
this.m_uploader.run(req, (resp) => {
strResp = this.m_json.toJson(resp);
// let files2 = { files2: [{ "name": "Capture.PNG", "size": 41294, "timestamp": 1658649098000, "width": 1602, "height": 597, "blurHash": null, "formats": [] }] }
try {
response.contentType("application/json; charset=UTF-8");
response.send(strResp);
}
catch (e) {
console.log(e);
}
});
}
}
exports.UploaderServlet = UploaderServlet;
//# sourceMappingURL=UploaderServlet.js.map