Class: LcpRuby::Workflow::Approval::ContractValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/lcp_ruby/workflow/approval/contract_validator.rb

Constant Summary collapse

REQUEST_FIELDS =
{
  "record_type" => "string",
  "record_id" => "integer",
  "workflow_name" => "string",
  "workflow_version" => "integer",
  "state_name" => "string",
  "strategy" => "string",
  "status" => "enum",
  "initiated_by_id" => "integer",
  "initiated_by_snapshot" => "json",
  "resolved_at" => "datetime"
}.freeze
{
  "previous_request_id" => "integer",
  "restart_count" => "integer"
}.freeze
STEP_FIELDS =
{
  "approval_request_id" => "integer",
  "step_name" => "string",
  "position" => "integer",
  "status" => "enum",
  "required_approvals" => "integer",
  "assignment" => "string"
}.freeze
{
  "label" => "string",
  "activated_at" => "datetime",
  "completed_at" => "datetime"
}.freeze
TASK_FIELDS =
{
  "approval_step_id" => "integer",
  "approver_id" => "integer",
  "status" => "enum"
}.freeze
{
  "approver_snapshot" => "json",
  "delegated_from_id" => "integer",
  "comment" => "text",
  "claimed_at" => "datetime",
  "decided_at" => "datetime"
}.freeze

Class Method Summary collapse

Class Method Details

.validate(request_def, step_def, task_def) ⇒ Object



52
53
54
55
56
57
58
59
60
61
# File 'lib/lcp_ruby/workflow/approval/contract_validator.rb', line 52

def self.validate(request_def, step_def, task_def)
  errors = []
  warnings = []

  validate_model(request_def, "approval_request", REQUEST_FIELDS, REQUEST_RECOMMENDED, errors, warnings)
  validate_model(step_def, "approval_step", STEP_FIELDS, STEP_RECOMMENDED, errors, warnings)
  validate_model(task_def, "approval_task", TASK_FIELDS, TASK_RECOMMENDED, errors, warnings)

  Metadata::ContractResult.new(errors: errors, warnings: warnings)
end