Sha256: 20aeb43bea9d731eb907d521a0c46bd1c0e5b20b378a141a4a9c4c8e148bc427

Contents?: true

Size: 1.15 KB

Versions: 13

Compression:

Stored size: 1.15 KB

Contents

require 'bjond-app-definition'
require 'bjond-consequence'
require 'bjond-event'
require 'bjond-field'
require 'faraday'
require 'bjond-app/engine'
require 'bjond-app-config'
require 'bjond-jwt'
include BjondJwt

module BjondApi
  
  ##
  # Registers the given integration_app with a bjond-server.
  def self.register_app(integration_app, bjondhost=ENV['BJOND_SERVER'])
    conn = Faraday.new(:url => bjondhost)
    puts integration_app.to_json
    return conn.post do |req|
      req.url '/server-core/services/integrationmanager/register'
      req.headers['Content-Type'] = 'application/json'
      req.body = integration_app.to_json
    end
  end

  ##
  # Fires events to all bjond_registrations
  def fire_event(bjond_registration, payload, event_id)
    services = BjondService.where(:bjond_registration_id => bjond_registration.id)
    connections = []
    services.each do |bjond_svc|
      conn = Faraday.new(:url => bjond_svc.endpoint + "/#{event_id}")
      conn.post do |req|
        req.headers['Content-Type'] = 'application/json'
        req.body = BjondJwt::jwt_encode_payload(payload, bjond_registration)
      end
    end
    
    return connections
  end

end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
bjond-api-0.3.3 lib/bjond-api.rb
bjond-api-0.3.2 lib/bjond-api.rb
bjond-api-0.3.1 lib/bjond-api.rb
bjond-api-0.3.0 lib/bjond-api.rb
bjond-api-0.2.6 lib/bjond-api.rb
bjond-api-0.2.5 lib/bjond-api.rb
bjond-api-0.2.4 lib/bjond-api.rb
bjond-api-0.2.3 lib/bjond-api.rb
bjond-api-0.2.2 lib/bjond-api.rb
bjond-api-0.2.1 lib/bjond-api.rb
bjond-api-0.2.0 lib/bjond-api.rb
bjond-api-0.1.5 lib/bjond-api.rb
bjond-api-0.1.4 lib/bjond-api.rb