celeri-dev-engine
Version:
Fleetbase Developers extension provides a module for managing developer resources such as API keys, webhooks, sockets, events and logs.
86 lines (72 loc) • 2.52 kB
JavaScript
import Model, { attr } from '@ember-data/model';
import { computed } from '@ember/object';
import { format as formatDate, isValid as isValidDate, formatDistanceToNow } from 'date-fns';
export default class WebhookEndpointModel extends Model {
/** @ids */
company_uuid;
created_by_uuid;
updated_by_uuid;
/** @attributes */
api_credential_uuid;
api_credential_name;
url;
version;
description;
mode;
events;
is_listening_on_all_events;
status;
/** @dates */
deleted_at;
created_at;
updated_at;
/** @computed */
get receivingFromAllApiCredentials() {
return !this.api_credential_uuid;
}
get isEnabled() {
return this.status === 'enabled';
}
get isTestMode() {
return this.mode === 'test';
}
get eventTypes() {
return Array.from(this.events ?? []).join(', ');
}
get updatedAgo() {
if (!isValidDate(this.updated_at)) {
return null;
}
return formatDistanceToNow(this.updated_at);
}
get updatedAt() {
if (!isValidDate(this.updated_at)) {
return null;
}
return formatDate(this.updated_at, 'PPP p');
}
get updatedAtShort() {
if (!isValidDate(this.updated_at)) {
return null;
}
return formatDate(this.updated_at, 'PP');
}
get createdAgo() {
if (!isValidDate(this.created_at)) {
return null;
}
return formatDistanceToNow(this.created_at);
}
get createdAt() {
if (!isValidDate(this.created_at)) {
return null;
}
return formatDate(this.created_at, 'PPP p');
}
get createdAtShort() {
if (!isValidDate(this.created_at)) {
return null;
}
return formatDate(this.created_at, 'PP');
}
}