@janiscommerce/app-tracking-time
Version:
A package for managing the times of actions in applications
55 lines (45 loc) • 1.26 kB
JavaScript
import Helpers from "../utils/helpers";
import Validations from "../utils/validations";
class Event {
static create(id,type,time = '',payload = {}) {
const validTime = Validations.isValidISOString(time) ? time : new Date().toISOString();
const validPayload = Helpers.isObject(payload) ? payload : {};
return {
id: id,
type: type,
time: validTime,
payload: validPayload
}
}
static parseEventForDB(event) {
const {id, type, time, payload} = event || {};
let parsedPayload;
try {
parsedPayload = JSON.stringify(payload);
} catch(error) {
parsedPayload = JSON.stringify({})
}
return {
id,
type,
time,
payload: parsedPayload
}
}
static parseEventFromDB(event) {
const {id, type, time, payload} = event;
let parsedPayload;
try {
parsedPayload = JSON.parse(payload);
} catch(error) {
parsedPayload = payload;
}
return {
id,
type,
time,
payload: parsedPayload
}
}
}
export default Event;