elixir-maru / maru_entity

parallelizable serializer inspired by grape-entity

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Extend

falood opened this issue · comments

To undefine an exposed field, use the extend option. Useful for modifying inherited entities.

    defmodule UserData do
      use Maru.Entity

      expose :name do
        expose :first_name
        expose :last_name
      end
      expose :address do
        expose :address1
        expose :address2
        expose :address_state
        expose :address_city
      end
      expose :email
      expose :phone
    end

    defmodule UserDataDetail do
      use Maru.Entity
      extend UserData
      expose :new_field1
    end

    defmodule MailingAddress do
      use Maru.Entity
      extend UserData, only: [
        :name, address: [:address1, :address2]
      ]
      expose :new_field2
    end

    defmodule BasicInfomation do
      use Maru.Entity
      extend UserData, except: [:address]
      expose :new_field3
    end