lib/cocina/models/admin_policy.rb in cocina-models-0.19.0 vs lib/cocina/models/admin_policy.rb in cocina-models-0.20.0
- old
+ new
@@ -1,27 +1,23 @@
# frozen_string_literal: true
module Cocina
module Models
# An admin policy object.
- class AdminPolicy < Dry::Struct
+ class AdminPolicy < Struct
include Checkable
TYPES = [
Vocab.admin_policy
].freeze
# Subschema for access concerns
- class Access < Dry::Struct
- def self.from_dynamic(_dyn)
- params = {}
- Access.new(params)
- end
+ class Access < Struct
end
# Subschema for administrative concerns
- class Administrative < Dry::Struct
+ class Administrative < Struct
# This was copied from the ActiveFedora defaults: Dor::AdminPolicyObject.new.defaultObjectRights.content
DEFAULT_OBJECT_RIGHTS = <<~XML
<?xml version="1.0" encoding="UTF-8"?>
<rightsMetadata>
@@ -55,25 +51,16 @@
attribute :registration_workflow, Types::String.optional.default(nil)
# Allowing hasAdminPolicy to be omittable for now (until rolled out to consumers),
# but I think it's actually required for every Admin Policy
attribute :hasAdminPolicy, Types::Coercible::String.optional.default(nil)
-
- def self.from_dynamic(dyn)
- params = {
- default_object_rights: dyn['default_object_rights'],
- registration_workflow: dyn['registration_workflow']
- }
- params[:hasAdminPolicy] = dyn['hasAdminPolicy']
- Administrative.new(params)
- end
end
- class Identification < Dry::Struct
+ class Identification < Struct
end
- class Structural < Dry::Struct
+ class Structural < Struct
end
attribute :externalIdentifier, Types::Strict::String
attribute :type, Types::String.enum(*TYPES)
attribute :label, Types::Strict::String
@@ -85,10 +72,10 @@
attribute :description, Description.optional.default(nil)
attribute(:identification, Identification.default { Identification.new })
attribute(:structural, Structural.default { Structural.new })
def self.from_dynamic(dyn)
- AdminPolicyBuilder.build(self, dyn)
+ AdminPolicy.new(dyn)
end
def self.from_json(json)
from_dynamic(JSON.parse(json))
end