Class: MetabaseQuerySync::MetabaseApi::StubMetabaseApi

Inherits:
MetabaseQuerySync::MetabaseApi show all
Defined in:
lib/metabase_query_sync/metabase_api/stub_metabase_api.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from MetabaseQuerySync::MetabaseApi

#delete_card, #delete_pulse, #search

Constructor Details

#initialize(collections: [], pulses: [], cards: [], databases: []) ⇒ StubMetabaseApi

Returns a new instance of StubMetabaseApi.



9
10
11
12
13
14
15
# File 'lib/metabase_query_sync/metabase_api/stub_metabase_api.rb', line 9

def initialize(collections: [], pulses: [], cards: [], databases: [])
  @collections = collections
  @pulses = pulses
  @cards = cards
  @databases = databases
  @requests = []
end

Instance Attribute Details

#requestsObject (readonly)

Returns the value of attribute requests.



7
8
9
# File 'lib/metabase_query_sync/metabase_api/stub_metabase_api.rb', line 7

def requests
  @requests
end

Instance Method Details

#get_card(id) ⇒ Object



21
22
23
# File 'lib/metabase_query_sync/metabase_api/stub_metabase_api.rb', line 21

def get_card(id)
  find_by_id(@cards, id)
end

#get_collection(id) ⇒ Object



17
18
19
# File 'lib/metabase_query_sync/metabase_api/stub_metabase_api.rb', line 17

def get_collection(id)
  find_by_id(@collections, id)
end

#get_collection_items(collection_id) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/metabase_query_sync/metabase_api/stub_metabase_api.rb', line 46

def get_collection_items(collection_id)
  get_collection(collection_id).bind do
    Success(@collections.chain(@pulses, @cards).filter do |item|
      case item
      when Collection
        item.parent_id == collection_id
      when Pulse
        item.collection_id == collection_id
      when Card
        item.collection_id == collection_id
      else
        false
      end
    end.map do |item|
      Item.new(id: item.id, name: item.name, description: item.respond_to?(:description) ? item.description : nil, model: case item
      when Collection
        Collection::KEY
      when Pulse
        Pulse::KEY
      when Card
        Card::KEY
      end)
    end)
  end
end

#get_databasesObject



25
26
27
# File 'lib/metabase_query_sync/metabase_api/stub_metabase_api.rb', line 25

def get_databases
  Success(@databases)
end

#get_pulse(id) ⇒ Object



29
30
31
# File 'lib/metabase_query_sync/metabase_api/stub_metabase_api.rb', line 29

def get_pulse(id)
  find_by_id(@pulses, id)
end

#put_card(card_request) ⇒ Object



42
43
44
# File 'lib/metabase_query_sync/metabase_api/stub_metabase_api.rb', line 42

def put_card(card_request)
  put_req(Card, card_request, @cards) { |cards| @cards = cards }
end

#put_collection(collection_request) ⇒ Object



37
38
39
40
# File 'lib/metabase_query_sync/metabase_api/stub_metabase_api.rb', line 37

def put_collection(collection_request)
  @requests << collection_request
  Success(collection_request)
end

#put_pulse(pulse_request) ⇒ Object



33
34
35
# File 'lib/metabase_query_sync/metabase_api/stub_metabase_api.rb', line 33

def put_pulse(pulse_request)
  put_req(Pulse, pulse_request, @pulses) { |pulses| @pulses = pulses }
end