Sha256: 76953e908b09a76f0c9e61d3f0bcaa356e0e974e25a35a74e738183a374cbdcf
Contents?: true
Size: 1.32 KB
Versions: 2
Compression:
Stored size: 1.32 KB
Contents
module Ecoportal module API class V1 class Person < Common::BaseModel passthrough :id, :external_id, :name, :email, :supervisor_id, to: :doc def supervisor(client) return @supervisor if defined?(@supervisor) return @supervisor = nil if supervisor_id.nil? @supervisor = client.people.get(supervisor_id).result end def supervisor=(person) self.supervisor_id = person.id end def as_json super.merge "details" => details&.as_json end def details return @details if defined?(@details) return @details = nil if doc["details"].nil? @details = person_details_class.new(doc["details"]) end def details=(value) case value when NilClass doc["details"] = nil when V1::PersonDetails doc["details"] = JSON.parse(value.to_json) when Hash doc["details"] = value.slice("schema_id", "fields") else raise "Invalid set on details: Need nil, PersonDetails or Hash; got #{value.class}" end remove_instance_variable("@details") return details end private def person_details_class V1::PersonDetails end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ecoportal-api-0.1.1 | lib/ecoportal/api/v1/person.rb |
ecoportal-api-0.1.0 | lib/ecoportal/api/v1/person.rb |