Skip to content

Commit

Permalink
docs: add inline docs for the plain client Workflows interfaces [EXT-…
Browse files Browse the repository at this point in the history
…4927] (#2175)

* docs: add inline docs for the plain client Workflows Changelog interface [EXT-4927]

* docs: add inline docs for the plain client Workflow interface [EXT-4927]

* docs: add inline docs for the plain client Workflow Definition interface [EXT-4927]
  • Loading branch information
jjolton-contentful authored Feb 21, 2024
1 parent 61a2994 commit c2e9871
Show file tree
Hide file tree
Showing 6 changed files with 278 additions and 85 deletions.
6 changes: 4 additions & 2 deletions lib/common-types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ import {
CreateWorkflowDefinitionParams,
CreateWorkflowDefinitionProps,
DeleteWorkflowDefinitionParams,
UpdateWorkflowDefinitionProps,
WorkflowDefinitionProps,
WorkflowDefinitionQueryOptions,
} from './entities/workflow-definition'
Expand All @@ -124,6 +125,7 @@ import {
CreateWorkflowParams,
CreateWorkflowProps,
DeleteWorkflowParams,
UpdateWorkflowProps,
WorkflowProps,
WorkflowQueryOptions,
} from './entities/workflow'
Expand Down Expand Up @@ -1789,7 +1791,7 @@ export type MRActions = {
}
update: {
params: GetWorkflowDefinitionParams
payload: WorkflowDefinitionProps
payload: UpdateWorkflowDefinitionProps
headers?: RawAxiosRequestHeaders
return: WorkflowDefinitionProps
}
Expand All @@ -1813,7 +1815,7 @@ export type MRActions = {
}
update: {
params: GetWorkflowParams
payload: WorkflowProps
payload: UpdateWorkflowProps
headers?: RawAxiosRequestHeaders
return: WorkflowProps
}
Expand Down
88 changes: 6 additions & 82 deletions lib/plain/common-types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import {
GetBulkActionParams,
GetReleaseParams,
CursorPaginatedCollectionProp,
GetWorkflowDefinitionParams,
GetEnvironmentTemplateParams,
BasicCursorPaginationOptions,
EnvironmentTemplateParams,
Expand Down Expand Up @@ -78,29 +77,6 @@ import {
ReleaseValidatePayload,
} from '../entities/release'
import { ReleaseActionProps, ReleaseActionQueryOptions } from '../entities/release-action'
import {
CreateWorkflowDefinitionParams,
CreateWorkflowDefinitionProps,
DeleteWorkflowDefinitionParams,
UpdateWorkflowDefinitionParams,
UpdateWorkflowDefinitionProps,
WorkflowDefinitionProps,
WorkflowDefinitionQueryOptions,
} from '../entities/workflow-definition'
import {
CompleteWorkflowParams,
CreateWorkflowParams,
CreateWorkflowProps,
DeleteWorkflowParams,
UpdateWorkflowParams,
UpdateWorkflowProps,
WorkflowProps,
WorkflowQueryOptions,
} from '../entities/workflow'
import {
WorkflowsChangelogEntryProps,
WorkflowsChangelogQueryOptions,
} from '../entities/workflows-changelog-entry'
import {
CreateEnvironmentTemplateProps,
EnvironmentTemplateProps,
Expand Down Expand Up @@ -138,6 +114,9 @@ import { SpaceMembershipPlainClientAPI } from './entities/space-membership'
import { SpaceMemberPlainClientAPI } from './entities/space-member'
import { EnvironmentPlainClientAPI } from './entities/environment'
import { EnvironmentAliasPlainClientAPI } from './entities/environment-alias'
import { WorkflowsChangelogPlainClientAPI } from './entities/workflows-changelog'
import { WorkflowPlainClientAPI } from './entities/workflow'
import { WorkflowDefinitionPlainClientAPI } from './entities/workflow-definition'

export type PlainClientAPI = {
raw: {
Expand Down Expand Up @@ -679,62 +658,7 @@ export type PlainClientAPI = {
}
uiConfig: UIConfigPlainClientAPI
userUIConfig: UserUIConfigPlainClientAPI
workflowDefinition: {
get(
params: OptionalDefaults<GetWorkflowDefinitionParams>,
headers?: RawAxiosRequestHeaders
): Promise<WorkflowDefinitionProps>
getMany(
params: OptionalDefaults<
GetSpaceEnvironmentParams & { query?: WorkflowDefinitionQueryOptions }
>,
headers?: RawAxiosRequestHeaders
): Promise<CollectionProp<WorkflowDefinitionProps>>
create(
params: OptionalDefaults<CreateWorkflowDefinitionParams>,
rawData: CreateWorkflowDefinitionProps,
headers?: RawAxiosRequestHeaders
): Promise<WorkflowDefinitionProps>
update(
params: OptionalDefaults<UpdateWorkflowDefinitionParams>,
rawData: UpdateWorkflowDefinitionProps,
headers?: RawAxiosRequestHeaders
): Promise<WorkflowDefinitionProps>
delete(
params: OptionalDefaults<DeleteWorkflowDefinitionParams>,
headers?: RawAxiosRequestHeaders
): Promise<any>
}
workflow: {
getMany(
params: OptionalDefaults<GetSpaceEnvironmentParams & { query?: WorkflowQueryOptions }>,
headers?: RawAxiosRequestHeaders
): Promise<CollectionProp<WorkflowProps>>
create(
params: OptionalDefaults<CreateWorkflowParams>,
rawData: CreateWorkflowProps,
headers?: RawAxiosRequestHeaders
): Promise<WorkflowProps>
update(
params: OptionalDefaults<UpdateWorkflowParams>,
rawData: UpdateWorkflowProps,
headers?: RawAxiosRequestHeaders
): Promise<WorkflowProps>
delete(
params: OptionalDefaults<DeleteWorkflowParams>,
headers?: RawAxiosRequestHeaders
): Promise<void>
complete(
params: OptionalDefaults<CompleteWorkflowParams>,
headers?: RawAxiosRequestHeaders
): Promise<void>
}
workflowsChangelog: {
getMany(
params: OptionalDefaults<
GetSpaceEnvironmentParams & { query: WorkflowsChangelogQueryOptions }
>,
headers?: RawAxiosRequestHeaders
): Promise<CollectionProp<WorkflowsChangelogEntryProps>>
}
workflowDefinition: WorkflowDefinitionPlainClientAPI
workflow: WorkflowPlainClientAPI
workflowsChangelog: WorkflowsChangelogPlainClientAPI
}
1 change: 0 additions & 1 deletion lib/plain/entities/app-installation.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { RawAxiosRequestHeaders } from 'axios'
import {
CollectionProp,
GetAppDefinitionParams,
Expand Down
121 changes: 121 additions & 0 deletions lib/plain/entities/workflow-definition.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
import { RawAxiosRequestHeaders } from 'axios'
import {
GetWorkflowDefinitionParams,
GetSpaceEnvironmentParams,
CollectionProp,
} from '../../common-types'
import {
WorkflowDefinitionProps,
WorkflowDefinitionQueryOptions,
CreateWorkflowDefinitionParams,
CreateWorkflowDefinitionProps,
UpdateWorkflowDefinitionParams,
UpdateWorkflowDefinitionProps,
DeleteWorkflowDefinitionParams,
} from '../../export-types'
import { OptionalDefaults } from '../wrappers/wrap'
import { CreateOrUpdate } from './base'

export type WorkflowDefinitionPlainClientAPI = {
/**
* Fetch a Workflow Definition
* @param params entity IDs to identify the Workflow Definition
* @returns the Workflow Definition
* @throws if the request fails, or the Space/Environment is not found
* @example
* ```javascript
* const workflowDefinition = await client.workflowDefinition.get({
* spaceId: '<space_id>',
* environmentId: '<environment_id>',
* workflowDefinitionId: '<workflow_definition_id>',
* });
* ```
*/
get(
params: OptionalDefaults<GetWorkflowDefinitionParams>,
headers?: RawAxiosRequestHeaders
): Promise<WorkflowDefinitionProps>
/**
* Query Workflow Definitions with certain filters
* @param params entity IDs to identify the Space/Environment, optional query parameters to filter returned Workflow Definitions
* @returns an object containing the list of Workflow Definitions
* @throws if the request fails, or the Space/Environment is not found
* @example
* ```javascript
* const workflowDefinitions = await client.workflowDefinition.getMany({
* spaceId: '<space_id>',
* environmentId: '<environment_id>',
* query: {
* limit: 10,
* }
* });
* ```
* */
getMany(
params: OptionalDefaults<
GetSpaceEnvironmentParams & { query?: WorkflowDefinitionQueryOptions }
>,
headers?: RawAxiosRequestHeaders
): Promise<CollectionProp<WorkflowDefinitionProps>>
/**
* Create a new Workflow Definition
* @param params entity IDs to identify the Space/Environment to create the Workflow Definition in
* @param rawData the new Workflow Definition
* @throws if the request fails, or the Space/Environment is not found
* @example
* ```javascript
* const workflowDefinition = await client.workflowDefinition.create({
* spaceId: '<space_id>',
* environmentId: '<environment_id>',
* }, workflowDefinitionProps);
* ```
*/
create: CreateOrUpdate<
CreateWorkflowDefinitionParams,
CreateWorkflowDefinitionProps,
WorkflowDefinitionProps
>
/**
* Update a Workflow Definition
* @param params entity IDs to identify the Space/Environment and Workflow Definition
* @param rawData the updated Workflow Definition
* @throws if the request fails, or the Space/Environment is not found
* @example
* ```javascript
* const updatedWorkflowDefinition = await client.workflowDefinition.update({
* spaceId: '<space_id>',
* environmentId: '<environment_id>',
* workflowDefinitionId: '<workflow_definition_id>',
* }, {
* ...workflowDefinition,
* steps: [
* ...workflowDefinition.steps,
* newStep,
* ]
* });
* ```
*/
update: CreateOrUpdate<
UpdateWorkflowDefinitionParams,
UpdateWorkflowDefinitionProps,
WorkflowDefinitionProps
>
/**
* Delete a Workflow Definition
* @param params entity IDs to identify the Space/Environment and Workflow Definition version
* @throws if the request fails, or the Space/Environment is not found
* @example
* ```javascript
* await client.workflowDefinition.delete({
* spaceId: '<space_id>',
* environmentId: '<environment_id>',
* workflowDefinitionId: '<workflow_definition_id>',
* version: 1
* });
* ```
*/
delete(
params: OptionalDefaults<DeleteWorkflowDefinitionParams>,
headers?: RawAxiosRequestHeaders
): Promise<void>
}
121 changes: 121 additions & 0 deletions lib/plain/entities/workflow.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
import { RawAxiosRequestHeaders } from 'axios'
import { GetSpaceEnvironmentParams, CollectionProp } from '../../common-types'
import {
CreateWorkflowParams,
UpdateWorkflowParams,
CompleteWorkflowParams,
} from '../../entities/workflow'
import {
WorkflowQueryOptions,
WorkflowProps,
CreateWorkflowProps,
UpdateWorkflowProps,
DeleteWorkflowParams,
} from '../../export-types'
import { OptionalDefaults } from '../wrappers/wrap'
import { CreateOrUpdate } from './base'

export type WorkflowPlainClientAPI = {
/**
* Query Workflows with certain filters
* @param params entity IDs to identify the Space/Environment, optional query parameters to filter returned Workflows
* @returns an object containing the list of Workflows
* @throws if the request fails, or the Space/Environment is not found
* @example
* ```javascript
* const workflows = await client.workflow.getMany({
* spaceId: '<space_id>',
* environmentId: '<environment_id>',
* query: {
* limit: 10
* }
* });
* ```
*/
getMany(
params: OptionalDefaults<GetSpaceEnvironmentParams & { query?: WorkflowQueryOptions }>,
headers?: RawAxiosRequestHeaders
): Promise<CollectionProp<WorkflowProps>>
/**
* Start a Workflow
* @param params entity IDs to identify the Space/Environment
* @param rawData the Workflow configuration, including the entity to start the Workflow on and the Workflow Definition to use
* @returns the created Workflow
* @throws if the request fails
* @example
* ```javascript
* const workflow = await client.workflow.create({
* spaceId: '<space_id>',
* environmentId: '<environment_id>',
* }, {
* entity: {
* sys: {
* type: 'Link',
* linkType: 'Entry',
* id: '<entry_id>'
* }
* },
* workflowDefinition: {
* sys: {
* type: 'Link',
* linkType: 'WorkflowDefinition',
* id: <workflow_definition_id>
* }
* }
* });
* ```
*/
create: CreateOrUpdate<CreateWorkflowParams, CreateWorkflowProps, WorkflowProps>
/**
* Update a Workflow (i.e. move to another step)
* @param params entity IDs to identify the Space/Environment and Workflow
* @param rawData the step to move to
* @returns the updated Workflow
* @throws if the request fails
* @example
* ```javascript
* const workflow = await client.workflow.update({
* spaceId: '<space_id>',
* environmentId: '<environment_id>',
* workflowId: '<workflow_id>',
* }, {
* stepId: '<step_id>'
* });
* ```
*/
update: CreateOrUpdate<UpdateWorkflowParams, UpdateWorkflowProps, WorkflowProps>
/**
* Delete a Workflow
* @param params entity IDs to identify the Space/Environment and Workflow
* @throws if the request fails
* @example
* ```javascript
* await client.workflow.delete({
* spaceId: '<space_id>',
* environmentId: '<environment_id>',
* workflowId: '<workflow_id>',
* });
* ```
*/
delete(
params: OptionalDefaults<DeleteWorkflowParams>,
headers?: RawAxiosRequestHeaders
): Promise<void>
/**
* Complete a Workflow, allowing a new one to be created for the same entry
* @param params entity IDs to identify the Space/Environment and Workflow
* @throws if the request fails
* @example
* ```javascript
* await client.workflow.complete({
* spaceId: '<space_id>',
* environmentId: '<environment_id>',
* workflowId: '<workflow_id>',
* });
* ```
*/
complete(
params: OptionalDefaults<CompleteWorkflowParams>,
headers?: RawAxiosRequestHeaders
): Promise<void>
}
Loading

0 comments on commit c2e9871

Please sign in to comment.