npm i @smartsoft001/domain-core
create - Creates a new entity in the storage system.
Param | Description |
item: T | The entity to be created. |
user: IUser | The user performing the operation. |
options?: IItemRepositoryOptions | Optional parameters for the operation, including transaction context. |
returns a Promise<void>
that resolves when the entity is successfully created.
createMany - Creates multiple entities in the storage system.
Param | Description |
list: T[] | The list of entities to be created. |
user: IUser | The user performing the operation. |
options?: IItemRepositoryOptions | Optional parameters for the operation, including transaction context. |
returns a Promise<void>
that resolves when all entities are successfully created.
update - Updates an existing entity in the storage system.
Param | Description |
item: T | The entity to be updated. |
user: IUser | The user performing the operation. |
options?: IItemRepositoryOptions | Optional parameters for the operation, including transaction context. |
returns a Promise<void>
that resolves when the entity is successfully updated.
updatePartial - Partially updates an existing entity in the storage system.
Param | Description |
item:
|
The partial entity data to be updated along with the entity's ID. |
user: IUser | The user performing the operation. |
options?: IItemRepositoryOptions | Optional parameters for the operation, including transaction context. |
returns a Promise<void>
that resolves when the entity is successfully updated.
updatePartialManyByCriteria - Partially updates multiple entities that match the specified criteria.
Param | Description |
criteria: any | The criteria used to select the entities to be updated. |
set:
|
The partial data to be set on the matching entities. |
user: IUser | The user performing the operation. |
options?: IItemRepositoryOptions | Optional parameters for the operation, including transaction context. |
returns a Promise<void>
that resolves when the entities are successfully updated.
updatePartialManyBySpecification - Partially updates multiple entities that match the specified specification.
Param | Description |
spec: ISpecification | The specification used to select the entities to be updated. |
set:
|
The partial data to be set on the matching entities. |
user: IUser | The user performing the operation. |
options?: IItemRepositoryOptions | Optional parameters for the operation, including transaction context. |
returns a Promise<void>
that resolves when the entities are successfully updated.
delete - Deletes an entity from the storage system by its ID.
Param | Description |
id: string | @param {string} id - The ID of the entity to be deleted. |
user: IUser | The user performing the operation. |
options?: IItemRepositoryOptions | Optional parameters for the operation, including transaction context. |
returns a Promise<void>
that resolves when the entity is successfully deleted.
getById - Retrieves an entity from the storage system by its ID.
Param | Description |
id: string | The ID of the entity to be deleted. |
repoOptions?: IItemRepositoryOptions | Optional parameters for the operation, including transaction context. |
returns a Promise<T>
that resolves to the retrieved entity.
getByCriteria - Retrieves entities from the storage system that match the specified criteria.
Param | Description |
criteria: any | The criteria used to select the entities. |
options?: any | Optional parameters for the operation, such as pagination or sorting. |
returns a Promise<{ data: T[]; totalCount: number }>
that resolves to an object containing the matching entities and the total count.
getBySpecification - Retrieves entities from the storage system that match the specified specification.
Param | Description |
spec: ISpecification | The specification used to select the entities. |
options?: any | Optional parameters for the operation, such as pagination or sorting. |
returns a Promise<{ data: T[]; totalCount: number }>
that resolves to an object containing the matching entities and the total count.
countBySpecification - Counts the number of entities in the storage system that match the specified specification.
Param | Description |
spec: ISpecification | The specification used to select the entities. |
returns a Promise<number>
that resolves to a count of matching entities.
clear - Counts the number of entities in the storage system that match the specified specification.
Param | Description |
user: IUser | IItemRepositoryOptions | The user performing the operation. |
returns a Promise<void>
that resolves when the storage system is cleared.
changesByCriteria - Returns an observable that emits changes to entities that match the specified criteria.
Param | Description |
criteria: any | The criteria used to select the entities to observe. |
returns a Observable<any>
that emits changes to the matching entities.
upload - Uploads a file to the storage system.
Param | Description |
data: Object | The data required to upload the file. |
data.id: string | A unique identifier for the file. |
data.fileName: string | The name of the file to be uploaded. |
data.stream: Stream | The stream of the file to be uploaded. |
data.mimeType: string | The MIME type of the file. |
data.encoding: string | The encoding of the file. |
options?:
|
A callback function that gets invoked with the upload stream. |
returns a Promise<void>
that when the upload is complete.
throws an error if the upload fails.
Example usage with MongoDB implementation:
const repository = new MongoAttachmentRepository(config);
const fileStream = fs.createReadStream('/path/to/file');
await repository.upload({
id: 'unique-file-id',
fileName: 'example.txt',
stream: fileStream,
mimeType: 'text/plain',
encoding: 'utf-8'
}, {
streamCallback: (writeStream) => {
console.log('Upload started');
}
});
console.log('File uploaded successfully');
getInfo - Retrieves metadata information about a file stored in the storage system.
Param | Description |
id: string | The unique identifier of the file. |
returns a Promise<{ fileName: string, contentType: string, length: number } | null>
that resolves to an object
containing file metadata, or null
if the file is not found.
throws an error if retrieving the file information fails.
getStream - Retrieves a stream for downloading a file from the storage system.
Param | Description |
id: string | The unique identifier of the file. |
options?:
|
The starting and ending byte positions for the stream. |
returns a Promise<any>
that resolves to a readable stream of the file.
throws an error if retrieving the file stream fails.
delete - Deletes a file from the storage system.
Param | Description |
id: string | The unique identifier of the file. |
returns a Promise<void>
that resolves when the file has been successfully deleted.
throws an error if the deletion fails.