Class: GdsApi::Router

Inherits:
Base
  • Object
show all
Defined in:
lib/gds_api/router.rb

Instance Attribute Summary

Attributes inherited from Base

#options

Instance Method Summary collapse

Methods inherited from Base

#client, #create_client, #get_list, #initialize, #url_for_slug

Constructor Details

This class inherits a constructor from GdsApi::Base

Instance Method Details

#add_backend(id, url) ⇒ Object



10
11
12
# File 'lib/gds_api/router.rb', line 10

def add_backend(id, url)
  put_json("#{endpoint}/backends/#{CGI.escape(id)}", backend: { backend_url: url })
end

#add_gone_route(path, type, options = {}) ⇒ Object



50
51
52
53
54
# File 'lib/gds_api/router.rb', line 50

def add_gone_route(path, type, options = {})
  response = put_json("#{endpoint}/routes", route: { incoming_path: path, route_type: type, handler: "gone" })
  commit_routes if options[:commit]
  response
end

#add_redirect_route(path, type, destination, redirect_type = "permanent", options = {}) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/gds_api/router.rb', line 33

def add_redirect_route(path, type, destination, redirect_type = "permanent", options = {})
  response = put_json(
    "#{endpoint}/routes",
    route: {
      incoming_path: path,
      route_type: type,
      handler: "redirect",
      redirect_to: destination,
      redirect_type: redirect_type,
      segments_mode: options[:segments_mode]
    }
  )

  commit_routes if options[:commit]
  response
end

#add_route(path, type, backend_id, options = {}) ⇒ Object



27
28
29
30
31
# File 'lib/gds_api/router.rb', line 27

def add_route(path, type, backend_id, options = {})
  response = put_json("#{endpoint}/routes", route: { incoming_path: path, route_type: type, handler: "backend", backend_id: backend_id })
  commit_routes if options[:commit]
  response
end

#commit_routesObject



65
66
67
# File 'lib/gds_api/router.rb', line 65

def commit_routes
  post_json("#{endpoint}/routes/commit", {})
end

#delete_backend(id) ⇒ Object



14
15
16
# File 'lib/gds_api/router.rb', line 14

def delete_backend(id)
  delete_json("#{endpoint}/backends/#{CGI.escape(id)}")
end

#delete_route(path, hard_delete: false, commit: false) ⇒ Object



56
57
58
59
60
61
62
63
# File 'lib/gds_api/router.rb', line 56

def delete_route(path, hard_delete: false, commit: false)
  url = "#{endpoint}/routes?incoming_path=#{CGI.escape(path)}"
  url += "&hard_delete=true" if hard_delete

  response = delete_json(url)
  commit_routes if commit
  response
end

#get_backend(id) ⇒ Object

Backends



6
7
8
# File 'lib/gds_api/router.rb', line 6

def get_backend(id)
  get_json("#{endpoint}/backends/#{CGI.escape(id)}")
end

#get_route(path, type = nil) ⇒ Object

Routes



20
21
22
23
24
25
# File 'lib/gds_api/router.rb', line 20

def get_route(path, type = nil)
  if type
    $stderr.puts "DEPRECATION WARNING: passing type to GdsApi::Router#get_route is deprecated and will be removed in a future version. Caller: #{caller[0]}"
  end
  get_json("#{endpoint}/routes?incoming_path=#{CGI.escape(path)}")
end