@fleetbase/dev-engine
Version:
Fleetbase Developers extension provides a module for managing developer resources such as API keys, webhooks, sockets, events and logs.
99 lines (82 loc) • 2.65 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 ApiCredentialModel extends Model {
/** @ids */
user_uuid;
company_uuid;
/** @attributes */
name;
key;
secret;
test_mode;
api;
browser_origins;
/** @dates */
last_used_at;
expires_at;
deleted_at;
created_at;
updated_at;
/** @computed */
get fullName() {
if (this.name) {
return `${this.name} (${this.key})`;
}
return `${this.key}`;
}
get isTestKey() {
return this.test_mode === true;
}
get environment() {
return this.test_mode ? 'Test' : 'Live';
}
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');
}
get lastUsed() {
if (!this.last_used_at || !isValidDate(this.last_used_at)) {
return 'Never used';
}
return formatDate(this.last_used_at, 'PPP p');
}
get expiresAt() {
if (!this.expires_at || !isValidDate(this.expires_at)) {
return 'Never';
}
return formatDate(this.expires_at, 'PPP p');
}
}