Class: Form::ModelDeserializer
- Inherits:
-
BaseDeserializer
- Object
- BaseDeserializer
- Form::ModelDeserializer
- Defined in:
- app/deserializers/form/model_deserializer.rb
Instance Method Summary collapse
Methods inherited from BaseDeserializer
Constructor Details
This class inherits a constructor from Form::BaseDeserializer
Instance Method Details
#deserialize ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'app/deserializers/form/model_deserializer.rb', line 3 def deserialize return nil unless @params allowed = @params.require(:model).permit( :preview_file_id, # i18n-tasks-use t("activerecord.attributes.model.preview_file") :creator_id, # i18n-tasks-use t("activerecord.attributes.model.creator_id") :library_id, # i18n-tasks-use t("activerecord.attributes.model.library_id") :name, # i18n-tasks-use t("activerecord.attributes.model.name") :caption, # i18n-tasks-use t("activerecord.attributes.model.caption") :notes, # i18n-tasks-use t("activerecord.attributes.model.notes") :license, # i18n-tasks-use t("activerecord.attributes.model.license") :sensitive, # i18n-tasks-use t("activerecord.attributes.model.sensitive") :indexable, # i18n-tasks-use t("activerecord.attributes.model.indexable") :ai_indexable, # i18n-tasks-use t("activerecord.attributes.model.ai_indexable") :entrypoint_id, # i18n-tasks-use t("activerecord.attributes.model.entrypoint") :entrypoint_fragment, # i18n-tasks-use t("activerecord.attributes.model.entrypoint_fragment") :q, :library, :creator, :tag, :organize, :missingtag, collection_ids: [], tag_list: [], links_attributes: [:id, :url, :text, :_destroy], # i18n-tasks-use t("activerecord.attributes.link.url") relationships_attributes: [:id, :predicate, :objekt_id, :_destroy] # i18n-tasks-use t("activerecord.attributes.model.relationships") ) if allowed[:relationships_attributes] allowed[:relationships_attributes] = allowed[:relationships_attributes].to_h.map do |k, attrs| attrs[:objekt] = ModelPolicy::Scope.new(@user, Model).resolve.find_param(attrs.delete(:objekt_id)) if attrs[:objekt_id] && attrs[:id].nil? attrs end end allowed[:collections] = CollectionPolicy::Scope.new(@user, Collection).resolve.where(public_id: allowed.delete(:collection_ids)) if allowed[:collection_ids] return allowed unless allowed.deep_merge(caber_relations_attributes(type: :model)) end |