import { SendType } from "../../enums/sendType" ; import { Utils } from "../../misc/utils" ; import { Send } from "../domain/send" ; import { SymmetricCryptoKey } from "../domain/symmetricCryptoKey" ; import { SendFileView } from "./sendFileView" ; import { SendTextView } from "./sendTextView" ; import { View } from "./view" ; export class SendView implements View { id : string = null ; accessId : string = null ; name : string = null ; notes : string = null ; key : ArrayBuffer ; cryptoKey : SymmetricCryptoKey ; type : SendType = null ; text = new SendTextView ( ) ; file = new SendFileView ( ) ; maxAccessCount ? : number = null ; accessCount : number = 0 ; revisionDate : Date = null ; deletionDate : Date = null ; expirationDate : Date = null ; password : string = null ; disabled : boolean = false ; hideEmail : boolean = false ; constructor ( s ? ) { if ( ! s ) { return ; } this . id = s . id ; this . accessId = s . accessId ; this . type = s . type ; this . maxAccessCount = s . maxAccessCount ; this . accessCount = s . accessCount ; this . revisionDate = s . revisionDate ; this . deletionDate = s . deletionDate ; this . expirationDate = s . expirationDate ; this . disabled = s . disabled ; this . password = s . password ; this . hideEmail = s . hideEmail ; } get urlB64Key ( ) : string { return Utils . fromBufferToUrlB64 ( this . key ) ; } get maxAccessCountReached ( ) : boolean { if ( this . maxAccessCount == null ) { return false ; } return this . accessCount >= this . maxAccessCount ; } get expired ( ) : boolean { if ( this . expirationDate == null ) { return false ; } return this . expirationDate <= new Date ( ) ; } get pendingDelete ( ) : boolean { return this . deletionDate <= new Date ( ) ; } }