Class: Grist::Type::Base

Inherits:
Object
  • Object
show all
Includes:
Accessible, Rest, Searchable
Defined in:
lib/grist/type/base.rb

Direct Known Subclasses

Access, Doc, Organization, Record, Table, Workspace

Constant Summary collapse

PATH =
""
KEYS =
%w[].freeze

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Searchable

find_by

Methods included from Accessible

#access

Methods included from Rest

#create, #delete, #get, #list, #path, #request, #update

Constructor Details

#initialize(params = {}) ⇒ Base



14
15
16
17
18
19
# File 'lib/grist/type/base.rb', line 14

def initialize(params = {})
  keys.each do |key|
    instance_variable_set("@#{key}", params[key])
  end
  @deleted = params.delete(:deleted) || false
end

Class Method Details

.allArray

List all items



31
32
33
34
35
36
37
38
# File 'lib/grist/type/base.rb', line 31

def self.all
  grist_res = new.list

  return [] unless grist_res&.data.is_a?(Array)
  return [] unless grist_res&.data&.any?

  grist_res.data.map { |org| new(org) }
end

.delete(id) ⇒ Grist::Type::Base?

Deletes the item



64
65
66
67
68
69
# File 'lib/grist/type/base.rb', line 64

def self.delete(id)
  org = find(id)
  return unless org

  org.delete
end

.find(id) ⇒ Object

Finds an item by ID return [Grist::Type::Base, nil] The item or nil if not found



43
44
45
46
47
48
# File 'lib/grist/type/base.rb', line 43

def self.find(id)
  grist_res = new.get(id)
  return unless grist_res.success? && grist_res.data

  new(grist_res.data)
end

.update(id, data) ⇒ Grist::Type::Base?

Updates the item



54
55
56
57
58
59
# File 'lib/grist/type/base.rb', line 54

def self.update(id, data)
  org = find(id)
  return unless org

  org.update(data)
end

Instance Method Details

#deleted?Boolean



25
26
27
# File 'lib/grist/type/base.rb', line 25

def deleted?
  !!@deleted
end

#keysObject



21
22
23
# File 'lib/grist/type/base.rb', line 21

def keys
  self.class::KEYS
end