Class: WfsRails::WorkflowController

Inherits:
ApplicationController show all
Defined in:
app/controllers/wfs_rails/workflow_controller.rb

Overview

API for handling workflow request. Implemented as an isolated Rails::Engine controller, WfsRails::ApplicationController by default doesn’t inherit from a consuming application’s ‘ApplicationController`

Instance Method Summary collapse

Instance Method Details

#archiveObject



55
56
57
58
59
60
# File 'app/controllers/wfs_rails/workflow_controller.rb', line 55

def archive
  @objects = Workflow.where(
    repository: params[:repository],
    datastream: params[:workflow]
  ).count
end

#createObject



62
63
64
65
66
# File 'app/controllers/wfs_rails/workflow_controller.rb', line 62

def create
  @workflows = WfsRails::WorkflowParser.new(
    request.body.read, params[:druid], params[:repo]
  ).create_workflows
end

#destroyObject



46
47
48
49
50
51
52
53
# File 'app/controllers/wfs_rails/workflow_controller.rb', line 46

def destroy
  @processes = Workflow.where(
    repository: params[:repo],
    druid: params[:druid],
    datastream: params[:workflow]
  ).destroy_all
  head :no_content
end

#indexObject



15
16
17
18
19
# File 'app/controllers/wfs_rails/workflow_controller.rb', line 15

def index
  @processes = Workflow.where(
    repository: params[:repo], druid: params[:druid]
  ).order(:datastream, created_at: :asc).group_by(&:datastream)
end

#lifecycleObject



9
10
11
12
13
# File 'app/controllers/wfs_rails/workflow_controller.rb', line 9

def lifecycle
  @objects = Workflow.where(
    repository: params[:repo], druid: params[:druid]
  )
end

#showObject



21
22
23
24
25
26
27
28
# File 'app/controllers/wfs_rails/workflow_controller.rb', line 21

def show
  @processes = Workflow.where(
    repository: params[:repo],
    druid: params[:druid],
    datastream: params[:workflow]
  ).order(:datastream, created_at: :asc).group_by(&:datastream)
  render :index
end

#updateObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'app/controllers/wfs_rails/workflow_controller.rb', line 30

def update
   @process = Workflow.find_by!(
     repository: params[:repo],
     druid: params[:druid],
     datastream: params[:workflow],
     process: params[:process]
   )

   if params['current-status'].present?
     @process.update(status: params['current-status'])
   else
     @process.update(status: 'completed')
   end
   head :no_content
end