Module: MicroService::Server::ClassMethods

Defined in:
lib/micro_service/server/class_methods.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



4
5
6
7
8
9
10
# File 'lib/micro_service/server/class_methods.rb', line 4

def self.extended(base)
  #base.belongs_to :add_on, :class_name => "Jive::AddOn", :foreign_key => :jive_add_on_id
  #base.validates :jive_add_on_id, :presence => true
  #base.has_one :oauth_token, :class_name => "Jive::OauthToken", :as => :owner
  #base.serialize :config, Hash
  #base.after_create :fetch_oauth_token
end

Instance Method Details

#install(server_install_url, client_install_url, client_uninstall_url = "") ⇒ Object

Requests installation with a service



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/micro_service/server/class_methods.rb', line 13

def install(server_install_url, client_install_url, client_uninstall_url = "")
  require "open-uri"
  require "net/http"
  require "openssl"

  uri = URI.parse(server_install_url.to_s)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true if uri.scheme == "https"

  request = Net::HTTP::Post.new(uri.request_uri)
  request["Content-Type"] = "application/json"
  request.body = {
    install_url: client_install_url,
    uninstall_url: client_uninstall_url
  }.to_json

  response = http.request(request)

  # Failed to register with external service
  if !response.kind_of? Net::HTTPSuccess
    raise ::MicroService::Server::InstallError
  end
end