You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mediarepo/mediarepo-ui/src/api/models/File.ts

43 lines
957 B
TypeScript

import {FileBasicData, FileStatus} from "../api-types/files";
import {BehaviorSubject, Observable} from "rxjs";
export class File {
private statusSubject: BehaviorSubject<FileStatus>;
constructor(
private basicData: FileBasicData,
) {
this.statusSubject = new BehaviorSubject(basicData.status);
}
public get rawData(): FileBasicData {
return this.basicData;
}
public get id(): number {
return this.basicData.id;
}
public get cd(): string {
return this.basicData.cd;
}
public get status(): Observable<FileStatus> {
return this.statusSubject.asObservable();
}
public get mimeType(): string {
return this.basicData.mime_type;
}
public setStatus(value: FileStatus) {
this.basicData.status = value;
this.statusSubject.next(value);
}
public getStatus(): FileStatus {
return this.basicData.status;
}
}