CommitMongoDBStorage
Hierarchy
- CommitMongoDBStorage
Implements
- CommitStorage
- CommitStorage
Index
Methods
- findById
- findLastVersionById
- findOneAndUpdate
- flagAndResolveCommitAsTimeouted
- flagCommitAsFailed
- flagCommitAsPublished
- generateId
- getAllCommits
- getCommits
- hasBySourceId
- lockCommit
- save
Methods
findById
▸ findById(commitId: string): Promise‹Commit | undefined›
Implementation of CommitStorage
Returns commit by id from MongoDB collection.
Parameters:
| Name | Type | Description |
|---|---|---|
commitId | string | Identifier of Commit. |
Returns: Promise‹Commit | undefined›
Instance implementing Commit interface, else undefined.
findLastVersionById
▸ findLastVersionById(eventSourceableId: string | Guid): Promise‹number | undefined›
Implementation of CommitStorage
Returns last version of commit by event sourceable's id from MongoDB collection.
async
Parameters:
| Name | Type | Description |
|---|---|---|
eventSourceableId | string | Guid | Identifier as string or Guid instance. |
Returns: Promise‹number | undefined›
Last commit version as number, else undefined.
findOneAndUpdate
▸ findOneAndUpdate(filter?: FilterQuery‹any›, update?: UpdateQuery‹any›, options?: FindOneAndUpdateOption): Promise‹Commit | undefined›
Find one document and updates it on MongoDB collection.
async
Parameters:
| Name | Type | Description |
|---|---|---|
filter? | FilterQuery‹any› | The Filter used to select the document to update |
update? | UpdateQuery‹any› | The update operations to be applied to the document |
options? | FindOneAndUpdateOption | Optional settings |
Returns: Promise‹Commit | undefined›
Updated instance implementing Commit interface, else undefined.
flagAndResolveCommitAsTimeouted
▸ flagAndResolveCommitAsTimeouted(commitId: string, appId: string, workerId: string, failedAt: Date): Promise‹Commit | undefined›
Implementation of CommitStorage
Flags commit as timeouted on MongoDB collection.
async
Parameters:
| Name | Type | Description |
|---|---|---|
commitId | string | Identifier for Commit that should be locked. |
appId | string | Application identifer on which commit timeouted. |
workerId | string | Worker identifer on which commit timeouted. |
failedAt | Date | Date of commit processing timeout. |
Returns: Promise‹Commit | undefined›
Instance implementing Commit interface, else undefined.
flagCommitAsFailed
▸ flagCommitAsFailed(commitId: string, appId: string, workerId: string, failedAt: Date): Promise‹boolean›
Implementation of CommitStorage
Flags commit as failed on MongoDB collection.
async
throws {UpdatingCommitError}
Thrown if update operation on MongoDB is not successful.
Parameters:
| Name | Type | Description |
|---|---|---|
commitId | string | Identifier for Commit that should be locked. |
appId | string | Application identifer on which commit failed. |
workerId | string | Worker identifer on which commit failed. |
failedAt | Date | Date of commit processing fail. |
Returns: Promise‹boolean›
Returns true if commit was flagged successfully, else false.
flagCommitAsPublished
▸ flagCommitAsPublished(commitId: string, appId: string, workerId: string, publishedAt: Date): Promise‹boolean›
Implementation of CommitStorage
Flags commit as published on MongoDB collection.
async
throws {UpdatingCommitError}
Thrown if update operation on MongoDB is not successful.
Parameters:
| Name | Type | Description |
|---|---|---|
commitId | string | Identifier for Commit that should be locked. |
appId | string | Application identifer on which commit is published. |
workerId | string | Worker identifer on which commit is published. |
publishedAt | Date | Date of commit publication. |
Returns: Promise‹boolean›
Returns true if commit was flagged successfully, else false.
generateId
▸ generateId(): Promise‹string›
Implementation of CommitStorage
Generates commit's id.
Returns: Promise‹string›
Identifier for Commit compatible with MongoDB.
getAllCommits
▸ getAllCommits(): Promise‹Commit[]›
Implementation of CommitStorage
Returns all commits from MongoDB collection.
async
Returns: Promise‹Commit[]›
List of instances implementing Commit interface.
getCommits
▸ getCommits(eventSourceableId: string | Stringifiable, versionOffset: number): Promise‹Commit[]›
Implementation of CommitStorage
Returns commit from MongoDB collection if exists by event sourceable's id for specific version offset.
async
Parameters:
| Name | Type | Description |
|---|---|---|
eventSourceableId | string | Stringifiable | Identifier as string or Guid instance. |
versionOffset | number | Version number from which version events should be returned. |
Returns: Promise‹Commit[]›
List of instances implementing Commit interface.
hasBySourceId
▸ hasBySourceId(eventSourceableId: string | Guid): Promise‹boolean›
Implementation of CommitStorage
Evaluates whether event sourceable with id already exists.
async
Parameters:
| Name | Type | Description |
|---|---|---|
eventSourceableId | string | Guid | Identifier as string or Guid instance. |
Returns: Promise‹boolean›
Returns true if event sourceable exists, else false.
lockCommit
▸ lockCommit(commitId: string, appId: string, workerId: string, registeredAndNotReceivedYetFilter: Record‹string, any›): Promise‹Commit | undefined›
Implementation of CommitStorage
Locks(changes state to received) commit on MongoDB and publishes it through CommitPublisher
async
Parameters:
| Name | Type | Description |
|---|---|---|
commitId | string | Identifier for Commit that should be locked. |
appId | string | Application identifer that is handling(locking) Commit. |
workerId | string | Worker identifer that is handling(locking) Commit. |
registeredAndNotReceivedYetFilter | Record‹string, any› | Filter for MongoDB query argument which selects only commits that have not been yet received by current application. |
Returns: Promise‹Commit | undefined›
Instance implementing Commit interface, else undefined.
save
▸ save(commit: Commit): Promise‹string›
Implementation of CommitStorage
Adds commit to MongoDB collection.
async
throws {CommitConcurrencyError}
Thrown if commit with same id already exists on MongoDB collection.
throws {AddingCommitFailedError}
Thrown if commit with same id already exists on MongoDB collection.
Parameters:
| Name | Type | Description |
|---|---|---|
commit | Commit | Instance implementing Commit interface. |
Returns: Promise‹string›
Identifier for document(as Commit's id) on MongoDB collection.