Options
All
  • Public
  • Public/Protected
  • All
Menu

Namespace approvalsService

Helper functions for handling approvals

import { approvalsService } from '@oneblink/apps'

Index

Type aliases

FormApprovalFlowInstanceHistory: { formApprovalFlowInstance: FormApprovalFlowInstance; formSubmissionApprovals: FormSubmissionApproval[]; formSubmissionMeta: FormSubmissionMeta }

Type declaration

FormApprovalFlowResponse: { forms: Form[] }

Type declaration

FormApprovalUsernamesResponse: { usernames: { username: string }[] }

Type declaration

  • usernames: { username: string }[]
FormSubmissionApprovalResponse: { form: Form; formApprovalFlowInstance: FormApprovalFlowInstance; formSubmissionApproval: FormSubmissionApproval; formSubmissionMeta: FormSubmissionMeta; history: FormApprovalFlowInstanceHistory[] }

Type declaration

FormSubmissionApprovalsResponse: { formApprovalFlowInstances: FormApprovalFlowInstance[]; formSubmissionApprovals: FormSubmissionApproval[]; formSubmissionMeta: FormSubmissionMeta[]; forms: Form[] }

Type declaration

FormSubmissionsAdministrationApprovalsResponse: { approvals: (FormApprovalFlowInstanceHistory & { history: FormApprovalFlowInstanceHistory[] })[]; meta: { limit: number; nextOffset?: number; offset: number } }

Type declaration

Functions

  • closeFormApprovalFlowInstance(options: { cannedResponseKey?: string; formApprovalFlowInstanceId: number; internalNotes?: string; notes?: string; notificationEmailAddress?: string[] }, abortSignal?: AbortSignal): Promise<FormSubmissionApproval>
  • As an administrator, close a submission that has been approved.

    Example

    await approvalsService.closeFormApprovalFlowInstance({
    formApprovalFlowInstanceId: 1,
    notificationEmailAddress: ['email@example.com'],
    notes: 'Great work!!!',
    internalNotes: 'It was not really that great...',
    cannedResponseKey: 'my_canned_response_key',
    })

    Parameters

    • options: { cannedResponseKey?: string; formApprovalFlowInstanceId: number; internalNotes?: string; notes?: string; notificationEmailAddress?: string[] }
      • Optional cannedResponseKey?: string
      • formApprovalFlowInstanceId: number
      • Optional internalNotes?: string
      • Optional notes?: string
      • Optional notificationEmailAddress?: string[]
    • Optional abortSignal: AbortSignal

    Returns Promise<FormSubmissionApproval>

  • Create an additional note for a form submission approval.

    Example

    const formSubmissionApprovalId = 'd96ff812-f263-4a66-868d-e259a1fe4157'
    const newFormSubmissionApprovalNote = {
    note: 'this is my note',
    }
    const createdFormSubmissionApprovalNote =
    await approvalsService.createApprovalAdditionalNote({
    formSubmissionApprovalId,
    newFormSubmissionApprovalNote,
    })

    Parameters

    Returns Promise<FormSubmissionApprovalNote>

  • deleteApprovalAdditionalNote(options: { abortSignal?: AbortSignal; formSubmissionApprovalId: string; formSubmissionApprovalNoteId: string }): Promise<void>
  • Delete an additional note for a form submission approval.

    Example

    const formSubmissionApprovalId = 'd96ff812-f263-4a66-868d-e259a1fe4157'
    const formSubmissionApprovalNoteId = '1e84dee3-0dc0-4abe-b2cf-d15d62fd9d0b',
    const updatedFormSubmissionApprovalNote =
    await approvalsService.deleteApprovalAdditionalNote({
    formSubmissionApprovalId,
    formSubmissionApprovalNoteId,
    })

    Parameters

    • options: { abortSignal?: AbortSignal; formSubmissionApprovalId: string; formSubmissionApprovalNoteId: string }
      • Optional abortSignal?: AbortSignal
      • formSubmissionApprovalId: string
      • formSubmissionApprovalNoteId: string

    Returns Promise<void>

  • getFormApprovalFlowInstanceSubmission(formApprovalFlowInstanceId: number, abortSignal?: AbortSignal): Promise<S3SubmissionData>
  • Retrieve the submission data associated with a FormApprovalFlowInstance.

    Example

    const formApprovalFlowInstanceId = 1
    const formSubmission =
    await approvalsService.getFormApprovalFlowInstanceSubmission(
    formApprovalFlowInstanceId,
    )

    Parameters

    • formApprovalFlowInstanceId: number
    • Optional abortSignal: AbortSignal

    Returns Promise<S3SubmissionData>

  • Get an array containing usernames that have updated approvals in the within the formsAppId associated with the passed formsAppId. Must be an Approvals Administrator.

    Example

    const formsAppId = 1
    const { usernames } =
    await approvalsService.getFormApprovalUsernames(formsAppId)

    Parameters

    • formsAppId: number
    • Optional abortSignal: AbortSignal

    Returns Promise<FormApprovalUsernamesResponse>

  • getFormSubmissionAdministrationApprovals(options: { externalId?: string; formApprovalFlowInstanceId?: number; formId?: number; formsAppId: number; lastUpdatedBy?: string[]; limit: number; offset: number; statuses?: string[]; submissionId?: string; submissionTitle?: string; submittedAfterDateTime?: string; submittedBeforeDateTime?: string; updatedAfterDateTime?: string; updatedBeforeDateTime?: string }, abortSignal?: AbortSignal): Promise<FormSubmissionsAdministrationApprovalsResponse>
  • Get an Object containing approvals for the app regardless of approval groups and meta for paging. Must be an Approvals Administrator.

    Example

    const formsAppId = 1
    const limit = 50
    const offset = 0
    const { approvals, meta } =
    await approvalsService.getFormSubmissionAdministrationApprovals({
    formAppId,
    limit,
    offset,
    })

    Parameters

    • options: { externalId?: string; formApprovalFlowInstanceId?: number; formId?: number; formsAppId: number; lastUpdatedBy?: string[]; limit: number; offset: number; statuses?: string[]; submissionId?: string; submissionTitle?: string; submittedAfterDateTime?: string; submittedBeforeDateTime?: string; updatedAfterDateTime?: string; updatedBeforeDateTime?: string }
      • Optional externalId?: string
      • Optional formApprovalFlowInstanceId?: number
      • Optional formId?: number
      • formsAppId: number
      • Optional lastUpdatedBy?: string[]
      • limit: number
      • offset: number
      • Optional statuses?: string[]
      • Optional submissionId?: string
      • Optional submissionTitle?: string
      • Optional submittedAfterDateTime?: string
      • Optional submittedBeforeDateTime?: string
      • Optional updatedAfterDateTime?: string
      • Optional updatedBeforeDateTime?: string
    • Optional abortSignal: AbortSignal

    Returns Promise<FormSubmissionsAdministrationApprovalsResponse>

  • Get a single FormSubmissionApproval belonging to the given id.

    Example

    const formSubmissionApprovalId = 'd27966cc-128d-48a2-b681-6ad52012e113'
    const {
    formSubmissionApproval,
    formApprovalFlowInstance,
    formSubmissionMeta,
    form,
    history,
    } = await approvalsService.getFormSubmissionApproval(
    formSubmissionApprovalId,
    )

    Parameters

    • formSubmissionApprovalId: string
    • Optional abortSignal: AbortSignal

    Returns Promise<FormSubmissionApprovalResponse>

  • getFormSubmissionApprovalSubmission(formSubmissionApprovalId: string, abortSignal?: AbortSignal): Promise<S3SubmissionData>
  • Retrieve the submission data associated with a FormSubmissionApproval.

    Example

    const formSubmissionApprovalId = '7145544d-853a-47e8-873c-1e849698e414'
    const formSubmission =
    await approvalsService.getFormSubmissionApprovalSubmission(
    formSubmissionApprovalId,
    )

    Parameters

    • formSubmissionApprovalId: string
    • Optional abortSignal: AbortSignal

    Returns Promise<S3SubmissionData>

  • Get an Object containing FormSubmissionApprovals assigned to the current user and the Form definitions in those approvals.

    Example

    const formsAppId = 1
    const {
    formSubmissionApprovals,
    formApprovalFlowInstances,
    forms,
    formSubmissionMeta,
    } = await approvalsService.getFormSubmissionApprovals(formAppId)

    Parameters

    • formsAppId: number
    • Optional abortSignal: AbortSignal

    Returns Promise<FormSubmissionApprovalsResponse>

  • reopenFormApprovalFlowInstance(options: { cannedResponseKey?: string; formApprovalFlowInstanceId: number; internalNotes?: string; notes: string; notificationEmailAddress: string }, abortSignal?: AbortSignal): Promise<FormSubmissionApproval>
  • As an administrator, reopen a submission that has been approved or denied.

    Example

    await approvalsService.reopenFormApprovalFlowInstance({
    formApprovalFlowInstanceId: 1,
    notificationEmailAddress: 'email@example.com',
    notes: 'Great work!!!',
    internalNotes: 'It was not really that great...',
    cannedResponseKey: 'my_canned_response_key',
    })

    Parameters

    • options: { cannedResponseKey?: string; formApprovalFlowInstanceId: number; internalNotes?: string; notes: string; notificationEmailAddress: string }
      • Optional cannedResponseKey?: string
      • formApprovalFlowInstanceId: number
      • Optional internalNotes?: string
      • notes: string
      • notificationEmailAddress: string
    • Optional abortSignal: AbortSignal

    Returns Promise<FormSubmissionApproval>

  • Update an additional note for a form submission approval.

    Example

    const formSubmissionApprovalId = 'd96ff812-f263-4a66-868d-e259a1fe4157'
    const formSubmissionApprovalNote = {
    id: '1e84dee3-0dc0-4abe-b2cf-d15d62fd9d0b',
    note: 'this is my note',
    createdAt: '2022-06-24T03:16:34.696Z',
    createdBy: {
    username: 'user@domain.com',
    },
    updatedAt: '2022-06-24T03:16:34.696Z',
    lastUpdatedBy: {
    username: 'user@domain.com',
    },
    }
    const updatedFormSubmissionApprovalNote =
    await approvalsService.updateApprovalAdditionalNote({
    formSubmissionApprovalId,
    formSubmissionApprovalNote,
    })

    Parameters

    Returns Promise<FormSubmissionApprovalNote>

  • Update a single FormSubmissionApproval assigned to the current user.

    Example

    const formSubmissionApproval = {
    id: 'd27966cc-128d-48a2-b681-6ad52012e113',
    status: 'APPROVED',
    username: 'email@example.com',
    formApprovalFlowInstanceId: 1,
    notificationEmailAddress: 'email@example.com',
    notes: 'Great work!!!',
    internalNotes: 'It was not really that great...',
    cannedResponseKey: 'my_canned_response_key',
    createdAt: '2021-02-21T22:57:56.257Z',
    updatedAt: '2021-02-21T22:57:56.257Z',
    }
    const updatedFormSubmissionApproval =
    await approvalsService.updateFormSubmissionApproval(
    formSubmissionApproval,
    )

    Parameters

    Returns Promise<FormSubmissionApproval>