90 lines
2.0 KiB
JavaScript
90 lines
2.0 KiB
JavaScript
import fs from 'fs';
|
|
const config = JSON.parse(fs.readFileSync('./config/settings.json', 'utf8'));
|
|
|
|
const EXPORT_STATUSES = Object.freeze({
|
|
COLLECTING: 'COLLECTING',
|
|
PROCESSING: 'PROCESSING',
|
|
});
|
|
|
|
class PresAnnStatusMsg {
|
|
constructor(exportJob, status = EXPORT_STATUSES.COLLECTING) {
|
|
this.message = {
|
|
envelope: {
|
|
name: config.log.msgName,
|
|
routing: {
|
|
sender: exportJob.module,
|
|
},
|
|
timestamp: (new Date()).getTime(),
|
|
},
|
|
core: {
|
|
header: {
|
|
name: config.log.msgName,
|
|
meetingId: exportJob.parentMeetingId,
|
|
userId: '',
|
|
},
|
|
body: {
|
|
presId: exportJob.presId,
|
|
pageNumber: 1,
|
|
totalPages: JSON.parse(exportJob.pages).length,
|
|
status,
|
|
error: false,
|
|
},
|
|
},
|
|
};
|
|
}
|
|
|
|
build = (pageNumber = 1) => {
|
|
this.message.core.body.pageNumber = pageNumber;
|
|
this.message.envelope.timestamp = (new Date()).getTime();
|
|
const event = JSON.stringify(this.message);
|
|
this.message.core.body.error = false;
|
|
return event;
|
|
};
|
|
|
|
setError = (error = true) => {
|
|
this.message.core.body.error = error;
|
|
};
|
|
|
|
setStatus = (status) => {
|
|
this.message.core.body.status = status;
|
|
};
|
|
|
|
static get EXPORT_STATUSES() {
|
|
return EXPORT_STATUSES;
|
|
}
|
|
};
|
|
|
|
class NewPresFileAvailableMsg {
|
|
constructor(exportJob, link) {
|
|
this.message = {
|
|
envelope: {
|
|
name: config.notifier.msgName,
|
|
routing: {
|
|
sender: exportJob.module,
|
|
},
|
|
timestamp: (new Date()).getTime(),
|
|
},
|
|
core: {
|
|
header: {
|
|
name: config.notifier.msgName,
|
|
meetingId: exportJob.parentMeetingId,
|
|
userId: '',
|
|
},
|
|
body: {
|
|
annotatedFileURI: link,
|
|
originalFileURI: '',
|
|
convertedFileURI: '',
|
|
presId: exportJob.presId,
|
|
fileStateType: 'Annotated',
|
|
},
|
|
},
|
|
};
|
|
}
|
|
|
|
build = () => {
|
|
return JSON.stringify(this.message);
|
|
};
|
|
};
|
|
|
|
export {PresAnnStatusMsg, NewPresFileAvailableMsg};
|