Skip to content
This repository has been archived by the owner on Feb 22, 2020. It is now read-only.

Commit

Permalink
Merge 56d050b into c05a979
Browse files Browse the repository at this point in the history
  • Loading branch information
peetucket committed Jul 21, 2017
2 parents c05a979 + 56d050b commit c6349af
Show file tree
Hide file tree
Showing 14 changed files with 122 additions and 48 deletions.
2 changes: 0 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,4 @@ rvm:
notifications:
email:
- pmangiafico@stanford.edu
- laneymcg@stanford.edu
- bess@stanford.edu
on_failure: change # default: always
20 changes: 20 additions & 0 deletions app/controllers/workflows_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
class WorkflowsController < ApplicationController
# API call to get a full list of all workflows
#
# @param [querystring] Parameters can be specified in the querystring
# * rows = number of results to return (set to 0 to only get count)
# * first_modified = datetime in UTC (default: earliest possible date)
# * last_modified = datetime in UTC (default: current time)
#
# Example:
# http://localhost:3000/workflows.json # gives all workflows in json format
# http://localhost:3000/workflows?rows=0 # returns only the count of workflows in json format
# http://localhost:3000/workflows.xml?first_modified=2014-01-01T00:00:00Z&last_modified=2014-02-01T00:00:00Z# returns only the workflows published in January of 2014 in XML format
# http://localhost:3000/workflows?first_modified=2014-01-01T00:00:00Z # returns only the workflows published SINCE January of 2014 up until today in json format
# http://localhost:3000/workflows?first_modified=2014-01-01T00:00:00Z&rows=0 # returns only the count of workflows published SINCE January of 2014 up until today in json format
def index
result = find_all_fedora_type(params, :workflow)
render_result(result)
end

end
2 changes: 2 additions & 0 deletions app/helpers/workflows_helper.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
module WorkflowsHelper
end
2 changes: 1 addition & 1 deletion config/application.rb
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ class Application < Rails::Application
Last_Changed_Field = Solr_terms['last_changed']
Fedora_Prefix = Solr_terms['fedora_prefix']
Druid_Prefix = Solr_terms['druid_prefix']
Fedora_Types = {:collection => Solr_terms['collection_type'], :apo => Solr_terms['apo_type'], :item => Solr_terms['item_type'], :set => Solr_terms['set_type']}.freeze
Fedora_Types = {:workflow => Solr_terms['workflow_type'], :collection => Solr_terms['collection_type'], :apo => Solr_terms['apo_type'], :item => Solr_terms['item_type'], :set => Solr_terms['set_type']}.freeze
Controller_Types = {:collection => Solr_terms['collection_field'], :apo => Solr_terms['apo_field'], :tag => Solr_terms['tag_field']}.freeze
rescue
puts 'WARNING: Could not configure solr terms'
Expand Down
2 changes: 1 addition & 1 deletion config/routes.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Rails.application.routes.draw do
# APO Routes
resources :apos, :tags, :collections, :defaults => { :format => 'json' }
resources :apos, :tags, :collections, :workflows, :defaults => { :format => 'json' }

root :controller => 'about', :action => 'index'
get 'about/version' => 'about#version'
Expand Down
1 change: 1 addition & 0 deletions config/solr_terms.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
defaults: &defaults
apo_type: "adminpolicy"
collection_type: "collection"
workflow_type: "workflow"
item_type: "item"
set_type: "set"
druid_prefix: "druid:"
Expand Down
62 changes: 18 additions & 44 deletions spec/features/apos_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,12 @@
VCR.use_cassette('all_apos_index_call') do
visit apos_path
response = JSON.parse(page.body)

# Ensure All APO Druids Are Present
result_should_contain_druids(@fixture_data.all_apo_druids, response[apos_key])

# Ensure No Other Druids Are Present
result_should_not_contain_druids(@fixture_data.accessioned_druids - @fixture_data.all_apo_druids, response[apos_key])

# Ensure No Items Were Returned
expect(response[items_key]).to be nil

# Ensure No Collections Were Returned
expect(response[collections_key]).to be nil

# Verify the Counts
verify_counts_section(response, {apos_key => @fixture_data.all_apo_druids.size})
result_should_contain_druids(@fixture_data.all_apo_druids, response[apos_key]) # Ensure All APO Druids Are Present
result_should_not_contain_druids(@fixture_data.accessioned_druids - @fixture_data.all_apo_druids, response[apos_key]) # Ensure No Other Druids Are Present
expect(response[items_key]).to be_nil # Ensure No Items Were Returned
expect(response[collections_key]).to be_nil # Ensure No Collections Were Returned
expect(response[workflows_key]).to be_nil # Ensure No Workflows Were Returned
verify_counts_section(response, {apos_key => @fixture_data.all_apo_druids.size}) # Verify the Counts
end
end

Expand All @@ -34,20 +25,12 @@
target_url = apos_path(solrparams)
visit target_url
response = JSON.parse(page.body)
# Ensure the Stafford Apo Druid is Present
result_should_contain_druids([@fixture_data.stafford_apo_druid], response[apos_key])

# Ensure No Other Apos Druids Are Present
result_should_not_contain_druids(@fixture_data.accessioned_druids - [@fixture_data.stafford_apo_druid], response[apos_key])

# Ensure No Items Were Returned
expect(response[items_key]).to be nil

# Ensure No Collections Were Returned
expect(response[collections_key]).to be nil

# Verify the Counts
verify_counts_section(response, {apos_key => 1})
result_should_contain_druids([@fixture_data.stafford_apo_druid], response[apos_key]) # Ensure the Stafford Apo Druid is Present
result_should_not_contain_druids(@fixture_data.accessioned_druids - [@fixture_data.stafford_apo_druid], response[apos_key]) # Ensure No Other Apos Druids Are Present
expect(response[items_key]).to be_nil # Ensure No Items Were Returned
expect(response[collections_key]).to be_nil # Ensure No Collections Were Returned
expect(response[workflows_key]).to be_nil # Ensure No Workflows Were Returned
verify_counts_section(response, {apos_key => 1}) # Verify the Counts
end
end

Expand All @@ -56,21 +39,12 @@
target_url = apos_path(:first_modified => mod_test_date_apos)
visit target_url
response = JSON.parse(page.body)

# Ensure the all Apo Druids are Present
result_should_contain_druids(@fixture_data.all_apo_druids, response[apos_key])

# Ensure No Other Druids Are Present
result_should_not_contain_druids(@fixture_data.accessioned_druids - @fixture_data.all_apo_druids, response[apos_key])

# Ensure No Items Were Returned
expect(response[items_key]).to be nil

# Ensure No Collections Were Returned
expect(response[collections_key]).to be nil

# Verify the Counts
verify_counts_section(response, {apos_key => @fixture_data.all_apo_druids.size})
result_should_contain_druids(@fixture_data.all_apo_druids, response[apos_key]) # Ensure the all Apo Druids are Present
result_should_not_contain_druids(@fixture_data.accessioned_druids - @fixture_data.all_apo_druids, response[apos_key]) # Ensure No Other Druids Are Present
expect(response[items_key]).to be_nil # Ensure No Items Were Returned
expect(response[collections_key]).to be_nil # Ensure No Collections Were Returned
expect(response[workflows_key]).to be_nil # Ensure No Workflows Were Returned
verify_counts_section(response, {apos_key => @fixture_data.all_apo_druids.size}) # Verify the Counts
end
end

Expand Down
3 changes: 3 additions & 0 deletions spec/features/collections_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
result_should_not_contain_druids(@fixture_data.accessioned_druids - @fixture_data.accessioned_collection_druids, response[collections_key])
expect(response[items_key]).to be_nil # Ensure No Items Were Returned
expect(response[apos_key]).to be_nil # Ensure No APOS Were Returned
expect(response[workflows_key]).to be_nil # Ensure No Workflows Were Returned
verify_counts_section(response, collections_key => @fixture_data.accessioned_collection_druids.size)
end
end
Expand All @@ -29,6 +30,7 @@
result_should_not_contain_druids(@fixture_data.accessioned_druids - @fixture_data.stafford_collections_druids, response[collections_key])
expect(response[items_key]).to be_nil # Ensure No Items Were Returned
expect(response[apos_key]).to be_nil # Ensure No APOS Were Returned
expect(response[workflows_key]).to be_nil # Ensure No Workflows Were Returned
verify_counts_section(response, collections_key => @fixture_data.stafford_collections_druids.size)
end
end
Expand All @@ -43,6 +45,7 @@
result_should_not_contain_druids(@fixture_data.accessioned_druids - @fixture_data.revs_collections_druids, response[collections_key])
expect(response[items_key]).to be_nil # Ensure No Items Were Returned
expect(response[apos_key]).to be_nil # Ensure No APOS Were Returned
expect(response[workflows_key]).to be_nil # Ensure No Workflows Were Returned
verify_counts_section(response, collections_key => @fixture_data.revs_collections_druids.size)
end
end
Expand Down
23 changes: 23 additions & 0 deletions spec/features/workflows_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
require 'rails_helper'

describe('Workflows Controller') do
before :each do
@fixture_data = FixtureData.new
end

it 'the index of workflows found should be all workflows when not supplied a date range and all their druids should be present' do
VCR.use_cassette('all_workflows_index_call') do
visit workflows_path
response = JSON.parse(page.body)
# Ensure All Four Collection Druids Are Present
result_should_contain_druids(@fixture_data.workflow_druids, response[workflows_key])
# Ensure No Other Druids Are Present
result_should_not_contain_druids(@fixture_data.accessioned_druids - @fixture_data.workflow_druids, response[workflows_key])
expect(response[items_key]).to be_nil # Ensure No Items Were Returned
expect(response[apos_key]).to be_nil # Ensure No APOS Were Returned
expect(response[collections_key]).to be_nil # Ensure No Collections Were Returned
verify_counts_section(response, workflows_key => @fixture_data.workflow_druids.size)
end
end

end
6 changes: 6 additions & 0 deletions spec/fixtures/oo000oo0001.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<doc>
<field name ="id">druid:oo000oo0001</field>
<field name ="title_ssim">assemblyWF</field>
<field name ="objectType_ssim">workflow</field>
<field name ="published_dttsim">2016-11-11T23:34:29Z</field>
</doc>
6 changes: 6 additions & 0 deletions spec/fixtures/oo000oo0002.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<doc>
<field name ="id">druid:oo000oo0002</field>
<field name ="title_ssim">accessionWF</field>
<field name ="objectType_ssim">workflow</field>
<field name ="published_dttsim">2016-12-11T23:34:29Z</field>
</doc>
7 changes: 7 additions & 0 deletions spec/rails_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,9 @@ class FixtureData

@@all_collection_druids = @@accessioned_collection_druids + @@not_accessioned_druid

# Workflows
@@workflow_druids = ['druid:oo000oo0001','druid:oo000oo0002']

def accessioned_druids
@@apo_druids + @@accessioned_collection_druids + @@items_druids
end
Expand Down Expand Up @@ -120,6 +123,10 @@ def all_apo_druids
@@apo_druids
end

def workflow_druids
@@workflow_druids
end

def revs_apo_druid
@@revs_apo
end
Expand Down
4 changes: 4 additions & 0 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,10 @@ def items_key
'items'
end

def workflows_key
'workflows'
end

def apos_key
'adminpolicies'
end
Expand Down
30 changes: 30 additions & 0 deletions spec/vcr_cassettes/all_workflows_index_call.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit c6349af

Please sign in to comment.