module Ecoportal module API class Internal class Person def reset_account! doc["account"] = JSON.parse(original_doc["account"]) end def consolidate_account! original_doc["account"] = JSON.parse(doc["account"]) end def account=(value) case value when NilClass doc["account"] = nil when Internal::Account doc["account"] = JSON.parse(value.to_json) when Hash doc["account"] = value.slice(*%w[policy_group_ids landing_page_id permissions_preset permissions_custom preferences prefilter filter_tags login_provider_ids starred_ids]) else # TODO raise "Invalid set on account: Need nil, Account or Hash; got #{value.class}" end remove_instance_variable("@account") if defined?(@account) return account end end end end end