Class: Hyrax::AdminSetCreateService
- Inherits:
-
Object
- Object
- Hyrax::AdminSetCreateService
- Defined in:
- app/services/hyrax/admin_set_create_service.rb
Overview
Responsible for creating a Hyrax::AdministrativeSet and its corresponding data.
-
An associated permission template
-
Available workflows
-
An active workflow
Constant Summary collapse
- DEFAULT_ID =
rubocop:disable Metrics/ClassLength
'admin_set/default'
- DEFAULT_TITLE =
['Default Admin Set'].freeze
Instance Attribute Summary collapse
-
#admin_set ⇒ Object
readonly
Returns the value of attribute admin_set.
-
#creating_user ⇒ Object
readonly
Returns the value of attribute creating_user.
-
#workflow_importer ⇒ Object
readonly
Returns the value of attribute workflow_importer.
Class Method Summary collapse
- .call(admin_set:, creating_user:, **kwargs) ⇒ TrueClass, FalseClass deprecated Deprecated.
-
.call!(admin_set:, creating_user:, **kwargs) ⇒ Hyrax::AdministrativeSet
Creates a non-default Hyrax::AdministrativeSet and corresponding data.
- .create_default_admin_set(admin_set_id: DEFAULT_ID, title: DEFAULT_TITLE) ⇒ TrueClass deprecated Deprecated.
-
.default_admin_set?(id:) ⇒ Boolean
Is the admin_set the default Hyrax::AdministrativeSet.
-
.find_or_create_default_admin_set ⇒ Hyrax::AdministrativeSet
Finds the default AdministrativeSet if it exists; otherwise, creates it and corresponding data.
Instance Method Summary collapse
- #create ⇒ TrueClass, FalseClass deprecated Deprecated.
-
#create! ⇒ Hyrax::AdministrativeSet
Creates an admin set, setting the creator and the default access controls.
-
#initialize(admin_set:, creating_user:, workflow_importer: default_workflow_importer) ⇒ AdminSetCreateService
constructor
A new instance of AdminSetCreateService.
Constructor Details
#initialize(admin_set:, creating_user:, workflow_importer: default_workflow_importer) ⇒ AdminSetCreateService
Returns a new instance of AdminSetCreateService.
99 100 101 102 103 |
# File 'app/services/hyrax/admin_set_create_service.rb', line 99 def initialize(admin_set:, creating_user:, workflow_importer: default_workflow_importer) @admin_set = admin_set @creating_user = creating_user @workflow_importer = workflow_importer end |
Instance Attribute Details
#admin_set ⇒ Object (readonly)
Returns the value of attribute admin_set.
105 106 107 |
# File 'app/services/hyrax/admin_set_create_service.rb', line 105 def admin_set @admin_set end |
#creating_user ⇒ Object (readonly)
Returns the value of attribute creating_user.
105 106 107 |
# File 'app/services/hyrax/admin_set_create_service.rb', line 105 def creating_user @creating_user end |
#workflow_importer ⇒ Object (readonly)
Returns the value of attribute workflow_importer.
105 106 107 |
# File 'app/services/hyrax/admin_set_create_service.rb', line 105 def workflow_importer @workflow_importer end |
Class Method Details
.call(admin_set:, creating_user:, **kwargs) ⇒ TrueClass, FalseClass
Creates a non-default Hyrax::AdministrativeSet and corresponding data
63 64 65 66 67 68 69 70 71 |
# File 'app/services/hyrax/admin_set_create_service.rb', line 63 def call(admin_set:, creating_user:, **kwargs) Deprecation.warn("'##{__method__}' will be removed in Hyrax 4.0. " \ "Warning: This method may hide runtime errors. " \ "Instead, use 'Hyrax::AdminSetCreateService.call!'. ") call!(admin_set: admin_set, creating_user: creating_user, **kwargs).present? rescue RuntimeError => err raise err if default_admin_set?(id: admin_set.id) false end |
.call!(admin_set:, creating_user:, **kwargs) ⇒ Hyrax::AdministrativeSet
Creates a non-default Hyrax::AdministrativeSet and corresponding data
81 82 83 84 |
# File 'app/services/hyrax/admin_set_create_service.rb', line 81 def call!(admin_set:, creating_user:, **kwargs) raise "Use .find_or_create_default_admin_set to create a default admin set" if default_admin_set?(id: admin_set.id) new(admin_set: admin_set, creating_user: creating_user, **kwargs).create! end |
.create_default_admin_set(admin_set_id: DEFAULT_ID, title: DEFAULT_TITLE) ⇒ TrueClass
Creates the default Hyrax::AdministrativeSet and corresponding data TODO: When this deprecated method is removed, update private method
.create_default_admin_set! to remove the parameters.
29 30 31 32 33 34 35 |
# File 'app/services/hyrax/admin_set_create_service.rb', line 29 def create_default_admin_set(admin_set_id: DEFAULT_ID, title: DEFAULT_TITLE) Deprecation.warn("'##{__method__}' will be removed in Hyrax 4.0. " \ "Instead, use 'Hyrax::AdminSetCreateService.find_or_create_default_admin_set'.") create_default_admin_set!(admin_set_id: admin_set_id, title: title).present? rescue RuntimeError => _err false end |
.default_admin_set?(id:) ⇒ Boolean
Is the admin_set the default Hyrax::AdministrativeSet
51 52 53 |
# File 'app/services/hyrax/admin_set_create_service.rb', line 51 def default_admin_set?(id:) id.to_s == DEFAULT_ID end |
.find_or_create_default_admin_set ⇒ Hyrax::AdministrativeSet
Finds the default AdministrativeSet if it exists; otherwise, creates it and corresponding data
42 43 44 45 46 |
# File 'app/services/hyrax/admin_set_create_service.rb', line 42 def find_or_create_default_admin_set Hyrax.query_service.find_by(id: DEFAULT_ID) rescue Valkyrie::Persistence::ObjectNotFoundError create_default_admin_set! end |
Instance Method Details
#create ⇒ TrueClass, FalseClass
Creates an admin set, setting the creator and the default access controls.
110 111 112 113 114 115 116 117 |
# File 'app/services/hyrax/admin_set_create_service.rb', line 110 def create Deprecation.warn("'##{__method__}' will be removed in Hyrax 4.0. " \ "Warning: This method may hide runtime errors. " \ "Instead, use 'Hyrax::AdminSetCreateService.create!'. ") create!.persisted? rescue RuntimeError => _err false end |
#create! ⇒ Hyrax::AdministrativeSet
Creates an admin set, setting the creator and the default access controls.
122 123 124 |
# File 'app/services/hyrax/admin_set_create_service.rb', line 122 def create! admin_set.respond_to?(:valkyrie_resource) ? active_fedora_create! : valkyrie_create! end |