Module: Heroku::API::App

Included in:
Model::AppList
Defined in:
lib/heroku/api/app.rb

Constant Summary collapse

RESOURCE_TYPE =
"APP"
@@etags =
{}

Instance Method Summary collapse

Instance Method Details

#app(name_or_id) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/heroku/api/app.rb', line 11

def app(name_or_id)
  Heroku::Properties.logger.info("[App] Fetching #{name_or_id}")

  etag, res =
    Heroku::Conn::Get(
      "/apps/#{name_or_id}",
      etag: @@etags[name_or_id],
      r_type: RESOURCE_TYPE
    )

  @@etags[res['id']]   = etag
  @@etags[res['name']] = etag
  Heroku::Model::App.new(res.merge("parent" => self))
end

#delete_app(app) ⇒ Object



54
55
56
57
58
# File 'lib/heroku/api/app.rb', line 54

def delete_app(app)
  Heroku::Properties.logger.info("[App] Deleting #{app.id}")
  Heroku::Conn::Delete(app.end_point, r_type: RESOURCE_TYPE)
  true
end

#new(params = {}) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/heroku/api/app.rb', line 26

def new(params = {})
  Heroku::Properties.logger.info("[App] New with parameters: #{params.inspect}")

  _, res =
    Heroku::Conn::Post(
      '/apps',
      r_type: RESOURCE_TYPE,
      body: params.to_json
    )

  Heroku::Model::App.new(res.merge("parent" => self))
end

#update_app(app) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/heroku/api/app.rb', line 39

def update_app(app)
  Heroku::Properties.logger.info("[App] Updating #{app.id}")

  etag, res =
    Heroku::Conn::Patch(
      app.end_point,
      r_type: RESOURCE_TYPE,
      body: app.patchable.to_json
    )

  @@etags[res['id']]   = etag
  @@etags[res['name']] = etag
  Heroku::Model::App.new(res.merge("parent" => self))
end