88 lines
2.5 KiB
TypeScript
88 lines
2.5 KiB
TypeScript
import { type Readable } from 'stream';
|
|
import FormData from 'form-data';
|
|
|
|
/**
|
|
* @class SaveFileRequest - Represents a request to save a file.
|
|
*/
|
|
export class SaveFileRequest {
|
|
/**
|
|
* @property {number} recordId - The id of the record that the file will be saved to.
|
|
*/
|
|
public recordId: number;
|
|
|
|
/**
|
|
* @property {number} fieldId - The id of the field that the file will be saved to.
|
|
*/
|
|
public fieldId: number;
|
|
|
|
/**
|
|
* @property {string} notes - The notes for the file.
|
|
*/
|
|
public notes: string;
|
|
|
|
/**
|
|
* @property {Date} modifiedDate - The modified date for the file.
|
|
*/
|
|
public modifiedDate: Date;
|
|
|
|
/**
|
|
* @property {string} fileName - The name of the file.
|
|
*/
|
|
public fileName: string;
|
|
|
|
/**
|
|
* @property {string} contentType - The content type of the file.
|
|
*/
|
|
public contentType: string;
|
|
|
|
/**
|
|
* @property {Readable} fileStream - The file stream.
|
|
*/
|
|
public fileStream: Readable;
|
|
|
|
/**
|
|
* @constructor - Creates a new SaveFileRequest.
|
|
* @param {number} recordId - The id of the record that the file will be saved to.
|
|
* @param {number} fieldId - The id of the field that the file will be saved to.
|
|
* @param {string} notes - The notes for the file.
|
|
* @param {Date} modifiedDate - The modified date for the file.
|
|
* @param {string} fileName - The name of the file.
|
|
* @param {string} contentType - The content type of the file.
|
|
* @param {Readable} fileStream - The file stream.
|
|
* @returns {SaveFileRequest} - A new SaveFileRequest.
|
|
*/
|
|
constructor(
|
|
recordId: number,
|
|
fieldId: number,
|
|
notes: string,
|
|
modifiedDate: Date,
|
|
fileName: string,
|
|
contentType: string,
|
|
fileStream: Readable
|
|
) {
|
|
this.recordId = recordId;
|
|
this.fieldId = fieldId;
|
|
this.notes = notes;
|
|
this.modifiedDate = modifiedDate;
|
|
this.fileName = fileName;
|
|
this.contentType = contentType;
|
|
this.fileStream = fileStream;
|
|
}
|
|
|
|
/**
|
|
* @method AsFormData - Converts the SaveFileRequest to a FormData object.
|
|
* @returns {FormData} - The SaveFileRequest as a FormData object.
|
|
*/
|
|
public asFormData(): FormData {
|
|
const formData = new FormData();
|
|
formData.append('recordId', this.recordId.toString());
|
|
formData.append('fieldId', this.fieldId.toString());
|
|
formData.append('notes', this.notes);
|
|
formData.append('modifiedDate', this.modifiedDate.toUTCString());
|
|
formData.append('fileName', this.fileName);
|
|
formData.append('contentType', this.contentType);
|
|
formData.append('file', this.fileStream, this.fileName);
|
|
return formData;
|
|
}
|
|
}
|