defmodule StepFlow.WorkflowDefinitionView do use StepFlow, :view alias StepFlow.WorkflowDefinitionView def render("index.json", %{ workflow_definitions: %{data: workflow_definitions, total: total, mode: mode} }) do %{ data: render_many( workflow_definitions, WorkflowDefinitionView, "workflow_definition_#{mode}.json" ), total: total } end def render("show.json", %{workflow_definition: workflow_definition}) do %{ data: render_one( workflow_definition, WorkflowDefinitionView, "workflow_definition_with_steps.json" ) } end def render("workflow_definition_full.json", %{workflow_definition: workflow_definition}) do %{ schema_version: workflow_definition.schema_version, id: workflow_definition.id, identifier: workflow_definition.identifier, label: workflow_definition.label, icon: workflow_definition.icon, is_live: workflow_definition.is_live, deleted: workflow_definition.deleted, version_major: workflow_definition.version_major, version_minor: workflow_definition.version_minor, version_micro: workflow_definition.version_micro, tags: workflow_definition.tags, start_parameters: workflow_definition.start_parameters, parameters: workflow_definition.parameters } end def render("workflow_definition_full_with_steps.json", %{ workflow_definition: workflow_definition }) do %{ schema_version: workflow_definition.schema_version, id: workflow_definition.id, identifier: workflow_definition.identifier, label: workflow_definition.label, icon: workflow_definition.icon, is_live: workflow_definition.is_live, deleted: workflow_definition.deleted, version_major: workflow_definition.version_major, version_minor: workflow_definition.version_minor, version_micro: workflow_definition.version_micro, tags: workflow_definition.tags, start_parameters: workflow_definition.start_parameters, parameters: workflow_definition.parameters, steps: workflow_definition.steps } end def render("workflow_definition_simple.json", %{workflow_definition: workflow_definition}) do %{ id: workflow_definition.id, identifier: workflow_definition.identifier, is_live: workflow_definition.is_live, label: workflow_definition.label, version_major: workflow_definition.version_major, version_minor: workflow_definition.version_minor, version_micro: workflow_definition.version_micro } end def render("workflow_definition.json", %{workflow_definition: workflow_definition}) do %{ schema_version: workflow_definition.schema_version, id: workflow_definition.id, identifier: workflow_definition.identifier, is_live: workflow_definition.is_live, label: workflow_definition.label, icon: workflow_definition.icon, version_major: workflow_definition.version_major, version_minor: workflow_definition.version_minor, version_micro: workflow_definition.version_micro, tags: workflow_definition.tags, start_parameters: workflow_definition.start_parameters, parameters: workflow_definition.parameters } end def render("workflow_definition_with_steps.json", %{workflow_definition: workflow_definition}) do %{ id: workflow_definition.id, identifier: workflow_definition.identifier, is_live: workflow_definition.is_live, label: workflow_definition.label, icon: workflow_definition.icon, version_major: workflow_definition.version_major, version_minor: workflow_definition.version_minor, version_micro: workflow_definition.version_micro, tags: workflow_definition.tags, start_parameters: workflow_definition.start_parameters, parameters: workflow_definition.parameters, steps: workflow_definition.steps } end def render("error.json", %{errors: errors}) do %{ errors: [ %{ reason: errors.reason, message: Map.get(errors, :message, "Incorrect parameters") } ] } end end