Skip to main content

@idpass/data-collect-core / ReviewService

Class: ReviewService

Defined in: services/ReviewService.ts:114

Service for managing the submission review pipeline.

Provides methods to submit forms for review, manage review queues, and approve or reject submissions based on configurable review policies.

The in-memory store is designed for client-side usage; the backend persists review data in PostgreSQL tables.

Constructors

Constructor

new ReviewService(eventApplierService): ReviewService

Defined in: services/ReviewService.ts:120

Parameters

eventApplierService

EventApplierService

Returns

ReviewService

Methods

getReviewConfig()

getReviewConfig(tenantId, eventType): ReviewConfig

Defined in: services/ReviewService.ts:130

Get the review configuration for a specific tenant and event type. Returns a default auto-approve config if none is explicitly set.

Parameters

tenantId

string

The tenant identifier.

eventType

string

The event type to look up.

Returns

ReviewConfig

The review configuration.


setReviewConfig()

setReviewConfig(tenantId, eventType, config): void

Defined in: services/ReviewService.ts:150

Set the review configuration for a specific tenant and event type.

Parameters

tenantId

string

The tenant identifier.

eventType

string

The event type to configure.

config

Omit<ReviewConfig, "tenantId" | "eventType">

The review policy configuration.

Returns

void


createPendingReview()

createPendingReview(tenantId, formData): SubmissionReview

Defined in: services/ReviewService.ts:180

Store a submission as a pending review record without applying entity events. Used for standalone form types (e.g. grievances, assistance requests) that don't map to entity updates.

Parameters

tenantId

string

formData

FormSubmission

Returns

SubmissionReview


submitForReview()

submitForReview(tenantId, formData): Promise<SubmissionReview>

Defined in: services/ReviewService.ts:200

Parameters

tenantId

string

formData

FormSubmission

Returns

Promise<SubmissionReview>


getReviewQueue()

getReviewQueue(tenantId, filters?): SubmissionReview[]

Defined in: services/ReviewService.ts:236

Get the review queue for a tenant with optional filters.

Parameters

tenantId

string

The tenant identifier.

filters?

ReviewQueueFilters

Optional filters for status and event type.

Returns

SubmissionReview[]

Array of submission reviews matching the criteria.


approve()

approve(reviewId, reviewerId): Promise<SubmissionReview>

Defined in: services/ReviewService.ts:266

Approve a pending submission, applying the form data to the entity projection.

Parameters

reviewId

string

The review record identifier.

reviewerId

string

The user performing the approval.

Returns

Promise<SubmissionReview>

The updated review record.

Throws

Error if the review is not found or is not in pending status.


reject()

reject(reviewId, reviewerId, reason): Promise<SubmissionReview>

Defined in: services/ReviewService.ts:294

Reject a pending submission with a reason.

Parameters

reviewId

string

The review record identifier.

reviewerId

string

The user performing the rejection.

reason

string

The reason for rejection.

Returns

Promise<SubmissionReview>

The updated review record.

Throws

Error if the review is not found or is not in pending status.


bulkApprove()

bulkApprove(reviewIds, reviewerId): Promise<BulkApproveResult>

Defined in: services/ReviewService.ts:321

Approve multiple pending submissions in bulk.

Processes each review individually. Failures for individual reviews do not prevent other reviews from being processed.

Parameters

reviewIds

string[]

Array of review record identifiers to approve.

reviewerId

string

The user performing the approvals.

Returns

Promise<BulkApproveResult>

Summary of the bulk operation.


getReviewById()

getReviewById(reviewId): SubmissionReview | null

Defined in: services/ReviewService.ts:346

Get a specific review by its identifier.

Parameters

reviewId

string

The review record identifier.

Returns

SubmissionReview | null

The review record, or null if not found.