Skip to content

Commit e9c5a29

Browse files
committed
Tie source and ingested resources to a space
1 parent 73f76a6 commit e9c5a29

4 files changed

Lines changed: 29 additions & 1 deletion

File tree

app/controllers/sources_controller.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ def create
3939
authorize Source
4040
@source = @content_provider.sources.build(source_params)
4141
@source.user = current_user
42+
@source.space = current_space
4243

4344
respond_to do |format|
4445
if @source.save

app/models/source.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ class Source < ApplicationRecord
22
include LogParameterChanges
33
include HasTestJob
44
include HasAssociatedNodes
5+
include InSpace
56

67
APPROVAL_STATUS = {
78
0 => :not_approved,

lib/ingestors/ingestor.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ def write_resources(type, resources, user, provider, source: nil)
135135
# check for matched events
136136
resource.user_id ||= user.id
137137
resource.content_provider_id ||= provider.id
138+
resource.space_id ||= source&.space_id
138139
existing_resource = find_existing(type, resource)
139140

140141
update = existing_resource

test/unit/ingestors/ingestor_test.rb

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ class IngestorTest < ActiveSupport::TestCase
8989
assert_equal(event.language, 'de')
9090
end
9191

92-
test 'does not set event language when languare and source default language missing' do
92+
test 'does not set event language when language and source default language missing' do
9393
user = users(:scraper_user)
9494
provider = content_providers(:portal_provider)
9595

@@ -113,4 +113,29 @@ class IngestorTest < ActiveSupport::TestCase
113113
assert_nil(event.language)
114114
end
115115

116+
test 'sets event space from source space' do
117+
user = users(:scraper_user)
118+
provider = content_providers(:portal_provider)
119+
space = spaces(:plants)
120+
121+
# Source has default language set
122+
@source = Source.create!(url: 'https://somewhere.com/stuff', method: 'bioschemas',
123+
enabled: true, approval_status: 'approved',
124+
space: space, content_provider: provider, user: users(:admin))
125+
126+
ingestor = Ingestors::Ingestor.new
127+
128+
# Fake an event that was read ... no language set
129+
ingestor.instance_variable_set(:@events,
130+
[OpenStruct.new(url: 'https://some-course.ca',
131+
title: 'Some course',
132+
start: '2021-01-31 13:00:00',
133+
end:'2021-01-31 14:00:00')])
134+
assert_difference('provider.events.count', 1) do
135+
ingestor.write(user, provider, source: @source)
136+
end
137+
event = Event.find_by(title: 'Some course')
138+
assert_equal space, event.space
139+
end
140+
116141
end

0 commit comments

Comments
 (0)