Sha256: 0fe099a249c822103afa3b6c5ae4f5928b5face5febd77c63cc99bc9bca897f3

Contents?: true

Size: 809 Bytes

Versions: 7

Compression:

Stored size: 809 Bytes

Contents

module Ddr
  module Workflow
    class WorkflowState < ActiveRecord::Base

      PUBLISHED = "published"
      
      def self.workflow_state_for_object(obj)
        workflow_state_for_pid(obj.pid)
      end

      def self.workflow_state_for_pid(pid)
        for_pid(pid).present? ? for_pid(pid).first.workflow_state : nil
      end

      def self.set_for_object(obj, state)
        set_for_pid(obj.pid, state)
      end

      def self.set_for_pid(pid, state)
        if for_pid(pid).present?
          for_pid(pid).first.update(workflow_state: state)
        else
          create(pid: pid, workflow_state: state)
        end
      end

      private

      def self.for_object(obj)
        for_pid(obj.pid)
      end

      def self.for_pid(pid)
        where(pid: pid)
      end
      
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ddr-models-1.7.0 lib/ddr/workflow/workflow_state.rb
ddr-models-1.6.0 lib/ddr/workflow/workflow_state.rb
ddr-models-1.5.0 lib/ddr/workflow/workflow_state.rb
ddr-models-1.4.0 lib/ddr/workflow/workflow_state.rb
ddr-models-1.3.0 lib/ddr/workflow/workflow_state.rb
ddr-models-1.2.1 lib/ddr/workflow/workflow_state.rb
ddr-models-1.2.0 lib/ddr/workflow/workflow_state.rb