class Appfront::API
Attributes
email[R]
host[R]
Public Class Methods
new(opts = {})
click to toggle source
# File lib/appfront/api.rb, line 7 def initialize(opts = {}) @host = opts[:host] || 'https://api.appfront.io/v1' if opts[:email] and opts[:password] @email, @pass = opts[:email], opts[:password] else @email, @pass = Appfront::Command::Auth.credentials end end
Public Instance Methods
login()
click to toggle source
# File lib/appfront/api.rb, line 17 def login return unless (@email && @pass) @pass = RestClient.post( "#{@host}/auth", email: @email, password: @pass ) rescue => e puts e.response exit 1 end
method_missing(m, *args, &block)
click to toggle source
# File lib/appfront/api.rb, line 41 def method_missing(m, *args, &block) unless ['get', 'post', 'put', 'delete'].include? m.to_s raise NoMethodError, "undefined method: #{m}" end res = self.send('req', m, args) #TODO Da capire JSON.parse res rescue "" JSON.parse res rescue res end
signup()
click to toggle source
# File lib/appfront/api.rb, line 29 def signup return unless (@email && @pass) @pass = RestClient.post( "#{@host}/signup", email: @email, password: @pass ) rescue => e puts e.response exit 1 end
Private Instance Methods
req(method, *args)
click to toggle source
# File lib/appfront/api.rb, line 53 def req(method, *args) raise if args.empty? args = args.shift path = args.shift resource = RestClient::Resource.new( "#{@host}#{path}", user: @pass, password: 'x' ) begin if path != '/flow.yaml' resource.send method, (args.first || {}) elsif path == '/flow2.yaml' file = args.first[:file] request = RestClient::Request.new( :method => method.to_sym, :url => "http://dev:8082/v1#{path}", :user => @pass, :password => 'x', :payload => { :multipart => true, :file => File.new(file, 'rb') }) response = request.execute else file = args.first[:file] request = RestClient::Request.new( :method => method.to_sym, :url => "#{host}#{path}", :user => @pass, :password => 'x', :payload => { :multipart => true, :file => File.new(file, 'rb') }) response = request.execute end rescue => e if e.respond_to? :response puts e.response else puts "Something went wrong, we have been notified." end exit 1 end end