* chore: 🤖 Rename recording to session-recording * chore: 🤖 Update names for connection models * chore: 🤖 Update channel models to new name * chore: 🤖 Update remaining models after merge conflict
45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
import GeneratedSessionRecordingModel from '../generated/models/session-recording';
|
|
import { hasMany } from '@ember-data/model';
|
|
import { inject as service } from '@ember/service';
|
|
|
|
export const TYPE_SESSION_RECORDING_SSH = 'ssh';
|
|
export const TYPES_SESSION_RECORDING = Object.freeze([
|
|
TYPE_SESSION_RECORDING_SSH,
|
|
]);
|
|
|
|
export default class SessionRecordingModel extends GeneratedSessionRecordingModel {
|
|
@hasMany('connection-recording') connection_recordings;
|
|
|
|
@service store;
|
|
|
|
/**
|
|
* True if the session recording type is `ssh`.
|
|
* @type {boolean}
|
|
*/
|
|
get isSSH() {
|
|
return this.type === TYPE_SESSION_RECORDING_SSH;
|
|
}
|
|
|
|
/**
|
|
* True if the session recording is an unknown type.
|
|
* @type {boolean}
|
|
*/
|
|
get isUnknown() {
|
|
return !TYPES_SESSION_RECORDING.includes(this.type);
|
|
}
|
|
|
|
getAsciiCast({ connectionId, channelId, mimeType }) {
|
|
const adapter = this.store.adapterFor('application');
|
|
const options = { adapterOptions: { method: 'download' } };
|
|
const url = adapter.buildURL(
|
|
'session-recording',
|
|
this.id,
|
|
options,
|
|
'findRecord'
|
|
);
|
|
return adapter.ajax(url, 'GET', {
|
|
data: { connectionId, channelId, mimeType },
|
|
});
|
|
}
|
|
}
|