Class: Ecoportal::API::V1::Person
Instance Attribute Summary
#doc
Instance Method Summary
collapse
#as_update, #initialize, passthrough, #print, #to_json
Instance Method Details
#add_details(schema_or_id) ⇒ Object
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/ecoportal/api/v1/person.rb', line 42
def add_details(schema_or_id)
self.details = person_details_class.new
case schema_or_id
when person_schema_class
schema_or_id.initialize_details(self.details)
when String
self.details.schema_id = schema_id
end
self.details
end
|
#as_json ⇒ Object
17
18
19
|
# File 'lib/ecoportal/api/v1/person.rb', line 17
def as_json
super.merge "details" => details&.as_json
end
|
#details ⇒ Object
21
22
23
24
25
|
# File 'lib/ecoportal/api/v1/person.rb', line 21
def details
return @details if defined?(@details)
return @details = nil if doc["details"].nil?
@details = person_details_class.new(doc["details"])
end
|
#details=(value) ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/ecoportal/api/v1/person.rb', line 27
def details=(value)
case value
when NilClass
doc["details"] = nil
when person_details_class
doc["details"] = value.as_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") if defined?(@details)
return details
end
|
#supervisor(client) ⇒ Object
7
8
9
10
11
|
# File 'lib/ecoportal/api/v1/person.rb', line 7
def supervisor(client)
return @supervisor if defined?(@supervisor)
return @supervisor = nil if supervisor_id.nil?
@supervisor = client.people.get(supervisor_id).result
end
|
#supervisor=(person) ⇒ Object
13
14
15
|
# File 'lib/ecoportal/api/v1/person.rb', line 13
def supervisor=(person)
self.supervisor_id = person.id
end
|