Class: BulkImports::Common::Pipelines::MembersPipeline
- Inherits:
-
Object
- Object
- BulkImports::Common::Pipelines::MembersPipeline
- Includes:
- Pipeline
- Defined in:
- lib/bulk_imports/common/pipelines/members_pipeline.rb
Constant Summary
Constants included from Pipeline
Pipeline::CACHE_KEY_EXPIRATION, Pipeline::EMPTY_EXPORT_STATUS_TIMEOUT, Pipeline::ExpiredError, Pipeline::FailedError, Pipeline::NDJSON_EXPORT_TIMEOUT, Pipeline::NotAllowedError
Constants included from Pipeline::Runner
Pipeline::Runner::MarkedAsFailedError
Instance Method Summary collapse
Methods included from Pipeline
#current_user, #import_export_config, #initialize, #portable, #tracker
Methods included from Pipeline::Runner
Instance Method Details
#extract(context) ⇒ Object
12 13 14 |
# File 'lib/bulk_imports/common/pipelines/members_pipeline.rb', line 12 def extract(context) graphql_extractor.extract(context) end |
#load(_context, data) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/bulk_imports/common/pipelines/members_pipeline.rb', line 16 def load(_context, data) return unless data user_id = data[:user_id] # Current user is already a member return if user_id == current_user.id user_membership = existing_user_membership(user_id) # User is already a member with higher existing (inherited) membership return if user_membership && user_membership[:access_level] >= data[:access_level] # Create new membership for any other access level portable.members.create!(data) end |