SeedCompany / cord-api-v3

Bible translation project management API
MIT License
18 stars 4 forks source link

WIP #3223

Closed atGit2021 closed 1 month ago

atGit2021 commented 1 month ago

Monday

CarsonF commented 1 month ago

Closing until we are closer to being done

github-actions[bot] commented 1 month ago

🗞 GraphQL Summary

View schema changes ```diff @@ -1604,8 +1604,28 @@ """ transition: ID } +input ExecuteProjectTransitionInput { + """Any additional user notes related to this transition""" + notes: RichText + + """The project ID to transition""" + project: ID! + + """ + Bypass the workflow, and go straight to this step. + `transition` is not required and ignored when using this. + """ + step: ProjectStep + + """ + The transition `key` to execute. + This is required unless specifying bypassing the workflow with a `step` input. + """ + transition: ID +} + """ First scripture that has been created but managed _outside_ of CORD. `hasFirst` will always be true. """ type ExternalFirstScripture implements FirstScripture { @@ -2229,8 +2249,9 @@ """The project members""" team(input: ProjectMemberListInput = {count: 25, filter: {}, order: ASC, page: 1, sort: "createdAt"}): SecuredProjectMemberList! type: ProjectType! + workflowEvents: [ProjectWorkflowEvent!]! } type InternshipProjectListOutput implements PaginatedList { """Whether the next page exists""" @@ -2724,8 +2745,9 @@ """The project members""" team(input: ProjectMemberListInput = {count: 25, filter: {}, order: ASC, page: 1, sort: "createdAt"}): SecuredProjectMemberList! type: ProjectType! + workflowEvents: [ProjectWorkflowEvent!]! } input MoveFileInput { """The file or directory's ID""" @@ -2840,8 +2862,9 @@ """The project members""" team(input: ProjectMemberListInput = {count: 25, filter: {}, order: ASC, page: 1, sort: "createdAt"}): SecuredProjectMemberList! type: ProjectType! + workflowEvents: [ProjectWorkflowEvent!]! } type Mutation { """Add a location to a language""" @@ -3094,8 +3117,9 @@ """ pinned: Boolean ): Boolean! transitionProgressReport(input: ExecuteProgressReportTransitionInput!): ProgressReport! + transitionProject(input: ExecuteProjectTransitionInput!): Project! """Update a budget""" updateBudget(input: UpdateBudgetInput!): UpdateBudgetOutput! @@ -4416,8 +4440,9 @@ """The project members""" team(input: ProjectMemberListInput = {count: 25, filter: {}, order: ASC, page: 1, sort: "createdAt"}): SecuredProjectMemberList! type: ProjectType! + workflowEvents: [ProjectWorkflowEvent!]! } type ProjectChangeRequest implements Changeset & Resource { """Whether the changes have been applied to live data""" @@ -4628,11 +4653,25 @@ Suspended Terminated } +""" +A transition for the project workflow. + +This is not a normalized entity. +A transition represented by its `key` can have different field values +based on the project's state. +""" type ProjectStepTransition { disabled: Boolean! disabledReason: String + + """ + An local identifier for this transition. + It cannot be used to globally identify a transition. + It is passed to `transitionProject`. + """ + key: ID! label: String! to: ProjectStep! type: TransitionType! } @@ -4665,8 +4704,19 @@ projectTypes: [ProjectType!]! user: ID! } +type ProjectWorkflowEvent { + at: DateTime! + id: ID! + notes: SecuredRichTextNullable! + to: ProjectStep! + + """The transition taken, null if workflow was bypassed""" + transition: ProjectStepTransition + who: SecuredUser! +} + type Prompt { """Whether the requesting user can delete this resource""" canDelete: Boolean! createdAt: DateTime! @@ -6160,9 +6210,9 @@ """ type SecuredProjectStep implements Secured { """ Is the current user allowed to bypass transitions entirely - and change the step to any other step? + and change the status to any other step? """ canBypassTransitions: Boolean! canEdit: Boolean! canRead: Boolean! @@ -6645,8 +6695,9 @@ """The project members""" team(input: ProjectMemberListInput = {count: 25, filter: {}, order: ASC, page: 1, sort: "createdAt"}): SecuredProjectMemberList! type: ProjectType! + workflowEvents: [ProjectWorkflowEvent!]! } type TranslationProjectListOutput implements PaginatedList { """Whether the next page exists""" ```