Class: DefaultValues
  
  
  
  
    - Inherits:
 
    - 
      Sequel::Model
      
        
          - Object
 
          
            - Sequel::Model
 
          
            - DefaultValues
 
          
        
        show all
      
       
    
  
  
    
  
    
      - Includes:
 
      - ASModel
 
      
    
  
  
  
    - Defined in:
 
    - backend/app/model/default_values.rb,
  frontend/app/models/default_values.rb
 
  
  
    
      Class Method Summary
      (collapse)
    
    
  
    
      Instance Method Summary
      (collapse)
    
    
  
  
  
  
  
  
  
  
  
  Methods included from ASModel
  all_models, included, update_publish_flag, update_suppressed_flag
  
  
  
  
  
  
  
  
  Methods included from JSONModel
  JSONModel, #JSONModel, add_error_handler, all, allow_unmapped_enum_value, backend_url, client_mode?, custom_validations, destroy_model, enum_default_value, enum_values, handle_error, init, load_schema, #models, models, parse_jsonmodel_ref, parse_reference, repository, repository_for, schema_src, set_repository, strict_mode, strict_mode?, with_repository
  
  Constructor Details
  
    
  
  
    Returns a new instance of DefaultValues
   
 
  
  
    
      
20
21
22 
     | 
    
      # File 'frontend/app/models/default_values.rb', line 20
def initialize(json)
  @json = json
end
 
     | 
  
 
  
 
  
    Class Method Details
    
      
  
  
    + (Object) create_from_json(json, opts = {}) 
  
  
  
  
    
      
44
45
46 
     | 
    
      # File 'backend/app/model/default_values.rb', line 44
def self.create_from_json(json, opts = {})
  super(json, opts.merge('blob' => json.to_json))
end
     | 
  
 
    
      
  
  
    + (Object) create_or_update(json, repo_id, record_type) 
  
  
  
  
    
      
7
8
9
10
11
12
13
14
15
16
17 
     | 
    
      # File 'backend/app/model/default_values.rb', line 7
def self.create_or_update(json, repo_id, record_type)
  id = "#{repo_id}_#{record_type}"
  if self[id]
    self[id].update_from_json(json)
  else
    self.create_from_json(json, {:id => "#{repo_id}_#{record_type}"})
  end
  self[id]
end
     | 
  
 
    
      
  
  
    + (Object) from_hash(hash) 
  
  
  
  
    
      
15
16
17 
     | 
    
      # File 'frontend/app/models/default_values.rb', line 15
def self.from_hash(hash)
  self.new(JSONModel(:default_values).from_hash(hash))
end
 
     | 
  
 
    
      
  
  
    + (Object) get(record_type) 
  
  
  
  
    
      
4
5
6
7
8
9
10
11
12 
     | 
    
      # File 'frontend/app/models/default_values.rb', line 4
def self.get(record_type)
  uri = "/repositories/#{JSONModel.repository}/default_values/#{record_type}"
  result = JSONModel::HTTP.get_json(uri)
  if result
    self.new(JSONModel(:default_values).from_hash(result))
  else
    nil
  end
end
     | 
  
 
    
      
  
  
    + (Object) sequel_to_jsonmodel(objs, opts = {}) 
  
  
  
  
    
      
31
32
33
34
35
36
37
38
39
40
41 
     | 
    
      # File 'backend/app/model/default_values.rb', line 31
def self.sequel_to_jsonmodel(objs, opts = {})
  jsons = objs.map {|obj|
    json = JSONModel(:default_values).new(ASUtils.json_parse(obj[:blob]))
    json.uri = obj.uri
    json.lock_version = obj.lock_version
    json
  }
  jsons
end
     | 
  
 
    
      
  
  
    + (Object) to_jsonmodel(obj, opts = {}) 
  
  
  
  
    
      
20
21
22
23
24
25
26
27
28 
     | 
    
      # File 'backend/app/model/default_values.rb', line 20
def self.to_jsonmodel(obj, opts = {})
  if obj.is_a? String
    obj = DefaultValues[obj]
    raise NotFoundException.new("#{self} not found") unless obj
  end
  self.sequel_to_jsonmodel([obj], opts)[0]
end
     | 
  
 
    
   
  
    Instance Method Details
    
      
  
  
    We kind of cheat here: the form thinks ‘lock_version’ applies
to the archival record, but it’s really for the default_values
object
   
 
  
  
    
      
28
29
30 
     | 
    
      # File 'frontend/app/models/default_values.rb', line 28
def form_values
  values.merge({:lock_version => @json.lock_version})
end
     | 
  
 
    
      
  
  
    - (Object) save 
  
  
  
  
    
      
38
39
40
41
42
43
44
45
46
47
48
49 
     | 
    
      # File 'frontend/app/models/default_values.rb', line 38
def save
  uri = "/repositories/#{JSONModel.repository}/default_values/#{@json.record_type}"
  url = URI("#{JSONModel::HTTP.backend_url}#{uri}")
  response = JSONModel::HTTP.post_json(url, ASUtils.to_json((@json.to_hash)))
  if response.code != '200'
    raise response.body
  end
  response
end
     | 
  
 
    
      
  
  
    - (Object) update_from_json(json, opts = {}, apply_nested_records = false) 
  
  
  
  
    
      
49
50
51
52 
     | 
    
      # File 'backend/app/model/default_values.rb', line 49
def update_from_json(json, opts = {}, apply_nested_records = false)
  json['lock_version'] ||= 0
  super(json, opts.merge('blob' => json.to_json))
end
     | 
  
 
    
      
  
  
    - (Object) uri 
  
  
  
  
    
      
55
56
57 
     | 
    
      # File 'backend/app/model/default_values.rb', line 55
def uri
  "/repositories/#{self.repo_id}/default_values/#{self.record_type}"
end
     | 
  
 
    
      
  
  
    - (Object) values 
  
  
  
  
    
      
33
34
35 
     | 
    
      # File 'frontend/app/models/default_values.rb', line 33
def values
  @json.defaults || {}
end
     |