@ngageoint/mage.sftp.service
Version:
The SFTP service package is a MAGE server plugin that sends observations to and SFTP location on create and update.
67 lines • 2.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ArchiverFactory = exports.ArchiveError = exports.ArchiveResult = exports.ArchiveStatus = exports.TriggerRule = exports.CompletionAction = exports.ArchiveFormat = void 0;
const archiver_1 = require("archiver");
const geojson_1 = require("./geojson");
var ArchiveFormat;
(function (ArchiveFormat) {
ArchiveFormat["GeoJSON"] = "GeoJSON";
})(ArchiveFormat = exports.ArchiveFormat || (exports.ArchiveFormat = {}));
var CompletionAction;
(function (CompletionAction) {
CompletionAction["None"] = "None";
CompletionAction["Archive"] = "Archive";
})(CompletionAction = exports.CompletionAction || (exports.CompletionAction = {}));
var TriggerRule;
(function (TriggerRule) {
TriggerRule["Create"] = "Create";
TriggerRule["CreateAndUpdate"] = "CreateAndUpdate";
})(TriggerRule = exports.TriggerRule || (exports.TriggerRule = {}));
var ArchiveStatus;
(function (ArchiveStatus) {
ArchiveStatus["Complete"] = "ArchiveStatus.Complete";
ArchiveStatus["Incomplete"] = "ArchiveStatus.Incomplete";
})(ArchiveStatus = exports.ArchiveStatus || (exports.ArchiveStatus = {}));
class ArchiveResult {
constructor(archive, status) {
this.archive = archive;
this.status = status;
this.archive = archive;
this.status = status;
}
static complete(archive) {
return new ArchiveResult(archive, ArchiveStatus.Complete);
}
static incomplete(archive) {
return new ArchiveResult(archive, ArchiveStatus.Incomplete);
}
}
exports.ArchiveResult = ArchiveResult;
class ArchiveError extends Error {
constructor(errorCode, message) {
super(message);
this.errorCode = errorCode;
this.errorCode = errorCode;
}
static error(error, observationId) {
const errorCode = (error instanceof archiver_1.ArchiverError) ? error.code : 'undefined';
return new ArchiveError(errorCode, `Failed to create SFTP archive for on observation ${observationId}`);
}
}
exports.ArchiveError = ArchiveError;
class ArchiverFactory {
constructor(userRepository, attachmentStore) {
this.userRepository = userRepository;
this.attachmentStore = attachmentStore;
}
createArchiver(format) {
if (format === ArchiveFormat.GeoJSON) {
return new geojson_1.GeoJsonFormatter(this.userRepository, this.attachmentStore);
}
else {
throw new Error('Unsupported Archive Format');
}
}
}
exports.ArchiverFactory = ArchiverFactory;
//# sourceMappingURL=entities.format.js.map