Class: Ecoportal::API::Internal::Account

Inherits:
Common::BaseModel show all
Defined in:
lib/ecoportal/api/internal/account.rb

Constant Summary collapse

VALID_TAG_REGEX =
/^[A-Za-z0-9 &_'\/-]+$/

Instance Attribute Summary

Attributes inherited from Common::BaseModel

#doc

Instance Method Summary collapse

Methods inherited from Common::BaseModel

#as_update, build, #initialize, passthrough, #print, #to_json

Constructor Details

This class inherits a constructor from Ecoportal::API::Common::BaseModel

Instance Method Details

#as_jsonObject



29
30
31
32
33
34
35
36
37
38
# File 'lib/ecoportal/api/internal/account.rb', line 29

def as_json
  super.tap do |hash|
    if preset == "custom"
      hash["permissions_custom"] = permissions.as_json
    else
      hash.delete "permissions_custom"
    end
    hash["preferences"] = preferences.as_json
  end
end

#filter_tags=(value) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/ecoportal/api/internal/account.rb', line 13

def filter_tags=(value)
  unless value.is_a?(Array)
    raise "filter_tags= needs to be passed an Array, got #{value.class}"
  end
  doc["filter_tags"] = value.map do |tag|
    unless tag.match(VALID_TAG_REGEX)
      raise "Invalid filter tag #{tag.inspect}"
    end
    tag.upcase
  end
end

#permissionsObject



40
41
42
43
44
# File 'lib/ecoportal/api/internal/account.rb', line 40

def permissions
  return @permissions if defined?(@permissions)
  doc["permissions_custom"] ||= {}
  @permissions = Internal::Permissions.new(doc["permissions_custom"])
end

#preferencesObject



46
47
48
49
50
# File 'lib/ecoportal/api/internal/account.rb', line 46

def preferences
  return @preferences if defined?(@preferences)
  doc["preferences"] ||= {}
  @preferences = Internal::Preferences.new(doc["preferences"])
end

#presetObject



25
26
27
# File 'lib/ecoportal/api/internal/account.rb', line 25

def preset
  self.permissions_preset.nil? ? "custom" : self.permissions_preset
end

#preset=(value) ⇒ Object



9
10
11
# File 'lib/ecoportal/api/internal/account.rb', line 9

def preset=(value)
  self.permissions_preset = value == "custom" ? nil : value
end